*
This commit is contained in:
@@ -0,0 +1,137 @@
|
||||
#ifndef DayTime_h__
|
||||
#define DayTime_h__
|
||||
|
||||
class DayTime
|
||||
{
|
||||
public:
|
||||
static const int MaxSeconds = 24 * 3600;
|
||||
int Hours, Minutes, Seconds;
|
||||
|
||||
DayTime(int hours, int minutes, int seconds)
|
||||
{
|
||||
Hours = hours;
|
||||
Minutes = minutes;
|
||||
Seconds = seconds;
|
||||
}
|
||||
|
||||
DayTime()
|
||||
{
|
||||
Hours = 0;
|
||||
Minutes = 0;
|
||||
Seconds = 0;
|
||||
}
|
||||
|
||||
DayTime(int time)
|
||||
{
|
||||
int dc1 = time % 3600;
|
||||
int dc2 = dc1 % 60;
|
||||
Hours = ((time - dc1) / 3600) % 24;
|
||||
Minutes = (dc1 - dc2) / 60;
|
||||
Seconds = dc2;
|
||||
}
|
||||
|
||||
int ToSeconds() const
|
||||
{
|
||||
return Hours * 3600 + Minutes * 60 + Seconds;
|
||||
}
|
||||
|
||||
bool operator >=(const DayTime& right) const
|
||||
{
|
||||
return ToSeconds() >= right.ToSeconds();
|
||||
}
|
||||
|
||||
bool operator <=(const DayTime& right) const
|
||||
{
|
||||
return ToSeconds() <= right.ToSeconds();
|
||||
}
|
||||
|
||||
bool operator >(const DayTime& right) const
|
||||
{
|
||||
return ToSeconds() > right.ToSeconds();
|
||||
}
|
||||
|
||||
bool operator <(const DayTime& right) const
|
||||
{
|
||||
return ToSeconds() < right.ToSeconds();
|
||||
}
|
||||
|
||||
bool operator !=(const DayTime& right) const
|
||||
{
|
||||
return ToSeconds() != right.ToSeconds();
|
||||
}
|
||||
|
||||
bool operator ==(const DayTime& right) const
|
||||
{
|
||||
return ToSeconds() == right.ToSeconds();
|
||||
}
|
||||
|
||||
DayTime operator +(const DayTime& right) const
|
||||
{
|
||||
int sum = ToSeconds() + right.ToSeconds();
|
||||
return DayTime(sum);
|
||||
}
|
||||
|
||||
DayTime operator +(int time) const
|
||||
{
|
||||
int sum = ToSeconds() + time;
|
||||
return DayTime(sum);
|
||||
}
|
||||
|
||||
DayTime operator -(const DayTime& right) const
|
||||
{
|
||||
int t1 = ToSeconds();
|
||||
int t2 = right.ToSeconds();
|
||||
int s = 0;
|
||||
if (t1 < t2)
|
||||
{
|
||||
s = MaxSeconds - t2 + t1;
|
||||
}
|
||||
else
|
||||
s = t1 - t2;
|
||||
return DayTime(s);
|
||||
}
|
||||
|
||||
DayTime operator -(int time)
|
||||
{
|
||||
int t1 = ToSeconds();
|
||||
int t2 = time;
|
||||
int s = 0;
|
||||
if (t1 < t2)
|
||||
{
|
||||
s = MaxSeconds - t2 + t1;
|
||||
}
|
||||
else
|
||||
s = t1 - t2;
|
||||
return DayTime(s);
|
||||
}
|
||||
|
||||
DayTime operator /(int divider) const
|
||||
{
|
||||
return DayTime(ToSeconds() / divider);
|
||||
}
|
||||
|
||||
DayTime operator /(const DayTime& divider) const
|
||||
{
|
||||
return DayTime(ToSeconds() / divider.ToSeconds());
|
||||
}
|
||||
|
||||
void Add(const DayTime& time)
|
||||
{
|
||||
SetTime(ToSeconds() + time.ToSeconds());
|
||||
}
|
||||
|
||||
void Add(int time)
|
||||
{
|
||||
SetTime(ToSeconds() + time);
|
||||
}
|
||||
|
||||
void SetTime(int time)
|
||||
{
|
||||
int dc1 = time % 3600;
|
||||
int dc2 = dc1 % 60;
|
||||
Hours = ((time - dc1) / 3600) % 24;
|
||||
Minutes = (dc1 - dc2) / 60;
|
||||
Seconds = dc2;
|
||||
}
|
||||
};
|
||||
#endif // DayTime_h__
|
||||
Reference in New Issue
Block a user