chrono utils: Make public constants signed

This commit is contained in:
Martchus 2017-08-23 23:14:18 +02:00
parent b178bb086c
commit 8b919250e3
3 changed files with 33 additions and 41 deletions

View File

@ -72,7 +72,7 @@ DateTime DateTime::fromTimeStamp(time_t timeStamp)
*/
DateTime DateTime::fromTimeStampGmt(time_t timeStamp)
{
return DateTime(DateTime::unixEpochStart().totalTicks() + static_cast<uint64>(timeStamp) * TimeSpan::m_ticksPerSecond);
return DateTime(DateTime::unixEpochStart().totalTicks() + static_cast<uint64>(timeStamp) * TimeSpan::ticksPerSecond);
}
/*!
@ -320,7 +320,7 @@ DateTime DateTime::exactGmtNow()
struct timespec t;
clock_gettime(CLOCK_REALTIME, &t);
return DateTime(
DateTime::unixEpochStart().totalTicks() + static_cast<uint64>(t.tv_sec) * TimeSpan::m_ticksPerSecond + static_cast<uint64>(t.tv_nsec) / 100);
DateTime::unixEpochStart().totalTicks() + static_cast<uint64>(t.tv_sec) * TimeSpan::ticksPerSecond + static_cast<uint64>(t.tv_nsec) / 100);
}
#endif
@ -344,7 +344,7 @@ uint64 DateTime::dateToTicks(int year, int month, int day)
const auto passedDays = static_cast<unsigned int>(day - 1);
return (passedYears * m_daysPerYear + passedYears / 4 - passedYears / 100 + passedYears / 400
+ static_cast<unsigned int>(daysToMonth[passedMonth]) + passedDays)
* TimeSpan::m_ticksPerDay;
* TimeSpan::ticksPerDay;
}
/*!
@ -364,8 +364,8 @@ uint64 DateTime::timeToTicks(int hour, int minute, int second, double millisecon
if (!inRangeExclMax(millisecond, 0.0, 1000.0)) {
throw ConversionException("millisecond is out of range");
}
return static_cast<uint64>(hour * TimeSpan::m_ticksPerHour) + static_cast<uint64>(minute * TimeSpan::m_ticksPerMinute)
+ static_cast<uint64>(second * TimeSpan::m_ticksPerSecond) + static_cast<uint64>(millisecond * TimeSpan::m_ticksPerMillisecond);
return static_cast<uint64>(hour * TimeSpan::ticksPerHour) + static_cast<uint64>(minute * TimeSpan::ticksPerMinute)
+ static_cast<uint64>(second * TimeSpan::ticksPerSecond) + static_cast<uint64>(millisecond * TimeSpan::ticksPerMillisecond);
}
/*!
@ -374,7 +374,7 @@ uint64 DateTime::timeToTicks(int hour, int minute, int second, double millisecon
*/
int DateTime::getDatePart(DatePart part) const
{
const int fullDays = m_ticks / TimeSpan::m_ticksPerDay;
const int fullDays = m_ticks / TimeSpan::ticksPerDay;
const int full400YearBlocks = fullDays / m_daysPer400Years;
const int daysMinusFull400YearBlocks = fullDays - full400YearBlocks * m_daysPer400Years;
int full100YearBlocks = daysMinusFull400YearBlocks / m_daysPer100Years;

View File

@ -267,7 +267,7 @@ inline int DateTime::dayOfYear() const
*/
constexpr inline DayOfWeek DateTime::dayOfWeek() const
{
return static_cast<DayOfWeek>((m_ticks / TimeSpan::m_ticksPerDay) % 7l);
return static_cast<DayOfWeek>((m_ticks / TimeSpan::ticksPerDay) % 7l);
}
/*!
@ -275,7 +275,7 @@ constexpr inline DayOfWeek DateTime::dayOfWeek() const
*/
constexpr inline int DateTime::hour() const
{
return m_ticks / TimeSpan::m_ticksPerHour % 24ul;
return m_ticks / TimeSpan::ticksPerHour % 24ul;
}
/*!
@ -283,7 +283,7 @@ constexpr inline int DateTime::hour() const
*/
constexpr inline int DateTime::minute() const
{
return m_ticks / TimeSpan::m_ticksPerMinute % 60ul;
return m_ticks / TimeSpan::ticksPerMinute % 60ul;
}
/*!
@ -291,7 +291,7 @@ constexpr inline int DateTime::minute() const
*/
constexpr inline int DateTime::second() const
{
return m_ticks / TimeSpan::m_ticksPerSecond % 60ul;
return m_ticks / TimeSpan::ticksPerSecond % 60ul;
}
/*!
@ -299,7 +299,7 @@ constexpr inline int DateTime::second() const
*/
constexpr inline int DateTime::millisecond() const
{
return m_ticks / TimeSpan::m_ticksPerMillisecond % 1000ul;
return m_ticks / TimeSpan::ticksPerMillisecond % 1000ul;
}
/*!
@ -334,7 +334,7 @@ constexpr inline bool DateTime::isNull() const
*/
constexpr inline TimeSpan DateTime::timeOfDay() const
{
return TimeSpan(m_ticks % TimeSpan::m_ticksPerDay);
return TimeSpan(m_ticks % TimeSpan::ticksPerDay);
}
/*!
@ -374,7 +374,7 @@ inline int DateTime::daysInMonth(int year, int month)
*/
constexpr inline bool DateTime::isSameDay(const DateTime &other) const
{
return (m_ticks / TimeSpan::m_ticksPerDay) == (other.m_ticks / TimeSpan::m_ticksPerDay);
return (m_ticks / TimeSpan::ticksPerDay) == (other.m_ticks / TimeSpan::ticksPerDay);
}
/*!

View File

@ -77,21 +77,13 @@ public:
constexpr bool isNegativeInfinity() const;
constexpr bool isInfinity() const;
// TODO: make those public constants signed in next major release and remove private ones then
static constexpr int64 nanosecondsPerTick = 100uL;
static constexpr int64 ticksPerMicrosecond = 10uL;
static constexpr uint64 ticksPerMillisecond = 10000uL;
static constexpr uint64 ticksPerSecond = 10000000uL;
static constexpr uint64 ticksPerMinute = 600000000uL;
static constexpr uint64 ticksPerHour = 36000000000uL;
static constexpr uint64 ticksPerDay = 864000000000uL;
private:
static constexpr int64 m_ticksPerMillisecond = 10000L;
static constexpr int64 m_ticksPerSecond = 10000000L;
static constexpr int64 m_ticksPerMinute = 600000000L;
static constexpr int64 m_ticksPerHour = 36000000000L;
static constexpr int64 m_ticksPerDay = 864000000000L;
static constexpr int64 ticksPerMillisecond = 10000uL;
static constexpr int64 ticksPerSecond = 10000000uL;
static constexpr int64 ticksPerMinute = 600000000uL;
static constexpr int64 ticksPerHour = 36000000000uL;
static constexpr int64 ticksPerDay = 864000000000uL;
private:
int64 m_ticks;
@ -118,7 +110,7 @@ constexpr inline TimeSpan::TimeSpan(int64 ticks)
*/
constexpr inline TimeSpan TimeSpan::fromMilliseconds(double milliseconds)
{
return TimeSpan(static_cast<int64>(milliseconds * static_cast<double>(m_ticksPerMillisecond)));
return TimeSpan(static_cast<int64>(milliseconds * static_cast<double>(ticksPerMillisecond)));
}
/*!
@ -126,7 +118,7 @@ constexpr inline TimeSpan TimeSpan::fromMilliseconds(double milliseconds)
*/
constexpr inline TimeSpan TimeSpan::fromSeconds(double seconds)
{
return TimeSpan(static_cast<int64>(seconds * static_cast<double>(m_ticksPerSecond)));
return TimeSpan(static_cast<int64>(seconds * static_cast<double>(ticksPerSecond)));
}
/*!
@ -134,7 +126,7 @@ constexpr inline TimeSpan TimeSpan::fromSeconds(double seconds)
*/
constexpr inline TimeSpan TimeSpan::fromMinutes(double minutes)
{
return TimeSpan(static_cast<int64>(minutes * static_cast<double>(m_ticksPerMinute)));
return TimeSpan(static_cast<int64>(minutes * static_cast<double>(ticksPerMinute)));
}
/*!
@ -142,7 +134,7 @@ constexpr inline TimeSpan TimeSpan::fromMinutes(double minutes)
*/
constexpr inline TimeSpan TimeSpan::fromHours(double hours)
{
return TimeSpan(static_cast<int64>(hours * static_cast<double>(m_ticksPerHour)));
return TimeSpan(static_cast<int64>(hours * static_cast<double>(ticksPerHour)));
}
/*!
@ -150,7 +142,7 @@ constexpr inline TimeSpan TimeSpan::fromHours(double hours)
*/
constexpr inline TimeSpan TimeSpan::fromDays(double days)
{
return TimeSpan(static_cast<int64>(days * static_cast<double>(m_ticksPerDay)));
return TimeSpan(static_cast<int64>(days * static_cast<double>(ticksPerDay)));
}
/*!
@ -211,7 +203,7 @@ constexpr double TimeSpan::totalMicroseconds() const
*/
constexpr inline double TimeSpan::totalMilliseconds() const
{
return static_cast<double>(m_ticks) / static_cast<double>(m_ticksPerMillisecond);
return static_cast<double>(m_ticks) / static_cast<double>(ticksPerMillisecond);
}
/*!
@ -219,7 +211,7 @@ constexpr inline double TimeSpan::totalMilliseconds() const
*/
constexpr inline double TimeSpan::totalSeconds() const
{
return static_cast<double>(m_ticks) / static_cast<double>(m_ticksPerSecond);
return static_cast<double>(m_ticks) / static_cast<double>(ticksPerSecond);
}
/*!
@ -227,7 +219,7 @@ constexpr inline double TimeSpan::totalSeconds() const
*/
constexpr inline double TimeSpan::totalMinutes() const
{
return static_cast<double>(m_ticks) / static_cast<double>(m_ticksPerMinute);
return static_cast<double>(m_ticks) / static_cast<double>(ticksPerMinute);
}
/*!
@ -235,7 +227,7 @@ constexpr inline double TimeSpan::totalMinutes() const
*/
constexpr inline double TimeSpan::totalHours() const
{
return static_cast<double>(m_ticks) / static_cast<double>(m_ticksPerHour);
return static_cast<double>(m_ticks) / static_cast<double>(ticksPerHour);
}
/*!
@ -243,7 +235,7 @@ constexpr inline double TimeSpan::totalHours() const
*/
constexpr inline double TimeSpan::totalDays() const
{
return static_cast<double>(m_ticks) / static_cast<double>(m_ticksPerDay);
return static_cast<double>(m_ticks) / static_cast<double>(ticksPerDay);
}
/*!
@ -269,7 +261,7 @@ constexpr int TimeSpan::microseconds() const
*/
constexpr inline int TimeSpan::milliseconds() const
{
return (m_ticks / m_ticksPerMillisecond) % 1000l;
return (m_ticks / ticksPerMillisecond) % 1000l;
}
/*!
@ -277,7 +269,7 @@ constexpr inline int TimeSpan::milliseconds() const
*/
constexpr inline int TimeSpan::seconds() const
{
return (m_ticks / m_ticksPerSecond) % 60l;
return (m_ticks / ticksPerSecond) % 60l;
}
/*!
@ -285,7 +277,7 @@ constexpr inline int TimeSpan::seconds() const
*/
constexpr inline int TimeSpan::minutes() const
{
return (m_ticks / m_ticksPerMinute) % 60l;
return (m_ticks / ticksPerMinute) % 60l;
}
/*!
@ -293,7 +285,7 @@ constexpr inline int TimeSpan::minutes() const
*/
constexpr inline int TimeSpan::hours() const
{
return (m_ticks / m_ticksPerHour) % 24l;
return (m_ticks / ticksPerHour) % 24l;
}
/*!
@ -301,7 +293,7 @@ constexpr inline int TimeSpan::hours() const
*/
constexpr inline int TimeSpan::days() const
{
return (m_ticks / m_ticksPerDay);
return (m_ticks / ticksPerDay);
}
/*!