20 TimeSpan(
int hours,
int minutes,
int seconds) :
TimeSpan(0, hours, minutes, seconds) { }
21 TimeSpan(
int days,
int hours,
int minutes,
int seconds) {
22 seconds_ = seconds % 60;
23 minutes += (seconds / 60);
24 minutes_ = minutes % 60;
25 hours += (minutes / 60);
27 days_ = days + (hours / 24);
29 inline int Days() {
return days_; }
30 inline int Hours() {
return hours_; }
31 inline int Minutes() {
return minutes_; }
32 inline int Seconds() {
return seconds_; }
55 DateTime(
int year,
int month,
int day,
int hour,
int minute,
int second)
66 operator const ::tm*()
const {
return &date_; }
68 inline int GetDay()
const {
return date_.
tm_mday; }
69 inline int GetMonth()
const {
return date_.
tm_mon; }
70 inline int GetYear()
const {
return date_.
tm_year+1900; }
71 inline int GetHour()
const {
return date_.
tm_hour; }
72 inline int GetMinute()
const {
return date_.
tm_min; }
73 inline int GetSecond()
const {
return date_.
tm_sec; }
74 inline DayOfWeek GetDayOfWeek()
const {
return (DayOfWeek)date_.
tm_wday; }
75 inline time_t GetTimestamp()
const {
return mktime(
const_cast<tm*
>(&date_)); }
77 inline DateTime AddYears(
int years)
const {
return DateTime(GetYear()+years, GetMonth(), GetDay(), GetHour(), GetMinute(), GetSecond()); }
78 inline DateTime AddMonths(
int months)
const {
return DateTime(GetYear(), GetMonth()+months, GetDay(), GetHour(), GetMinute(), GetSecond()); }
79 inline DateTime AddDays(
int days)
const {
return DateTime(GetYear(), GetMonth(), GetDay()+days, GetHour(), GetMinute(), GetSecond()); }
80 inline DateTime AddHours(
int hours)
const {
return DateTime(GetYear(), GetMonth(), GetDay(), GetHour()+hours, GetMinute(), GetSecond()); }
81 inline DateTime AddMinutes(
int minutes)
const {
return DateTime(GetYear(), GetMonth(), GetDay(), GetHour(), GetMinute()+minutes, GetSecond()); }
82 inline DateTime AddSeconds(
int seconds)
const {
return DateTime(GetYear(), GetMonth(), GetDay(), GetHour(), GetMinute(), GetSecond()+seconds); }
84 inline size_t Format(
char* s,
size_t max,
const char* fmt)
const {
return strftime(s, max, fmt, &date_); }
89 inline void Normalize()
91 time_t timestamp = GetTimestamp();