41 class CLASS_DECL_ACME datetime:
128 ~datetime()
override;
132 void destroy()
override;
135 ::i64 get_timestamp(::i32 year, ::i32 month, ::i32
day);
138 ::i32 get_month_day_count(::i32 year, ::i32 month);
141 ::i32 get_weekday(::i32 year, ::i32 month, ::i32
day);
144 posix_time strtotime(const ::text::context * pcontext, const ::scoped_string & scopedstr,
posix_time time,::i32 iPath,::i32 & iPathCount,
const class ::time& timezone = {});
145 posix_time strtotime(const ::text::context * pcontext, const ::scoped_string & scopedstr, ::i32 iPath,::i32 & iPathCount,
const class ::time& timezone = {});
148 ::earth::time from_string(const ::text::context* pcontext, const ::scoped_string & scopedstr,
const class ::time& timezone = {});
152 string get_week_day_str(const ::text::context * pcontext,::i32 iWeekDay);
154 string get_tiny_week_day_str(const ::text::context * pcontext,::i32 iWeekDay);
155 string get_month_str(const ::text::context * pcontext,::i32 iMonth);
156 string get_short_month_str(const ::text::context * pcontext,::i32 iMonth);
158 static posix_time s_mktime(::i32 iHour,::i32 iMinute,::i32 iSecond,::i32 iMonth,::i32 iDay,::i32 iYear,
const class ::time& timezone = {});
166 ::i32 SWN(::i32 y,::i32 m,::i32 d);
167 ::i32 DP(::i32 y,::i32 m);
168 ::i32 ML(::i32 y,::i32 m);
170 ::i32 dayofweek(::i32 y,::i32 m,::i32 d);
171 ::i32 SDOW(::i32 y,::i32 m,::i32 d);
172 ::i32 DOW(::i32 y,::i32 m,::i32 d);
173 ::i32 getDayOfWeek(::i32 month,::i32
day,::i32 year,::i32 CalendarSystem);
174 ::i32 ISO_WN(::i32 y,::i32 m,::i32 d);
176 virtual string to_string(const ::text::context* pcontext, const ::datetime::result&
result,
const class ::time& timeshift = {});
178 virtual result span_parse_time(const ::text::context* pcontext, const ::scoped_string & scopedstr,
const class ::time& timeshift = {});
180 virtual result parse_time(const ::text::context* pcontext, const ::scoped_string & scopedstr, ::i32& iPath, ::i32& iPathCount,
const class ::time& timeshift = {});
184 virtual string _001FriendTime(const ::text::context* pcontext, const ::earth::time& timeNow, const ::earth::time&
time,
const class ::time& timeshift = {});
186 virtual ::string friendly_elapsed(
const class ::time&
time);
190 void parse_text(const ::scoped_string & scopedstr, ::property_set & set);
205 string get_date_time_for_file_with_no_spaces(
const class ::time& timeshift = {}, const ::earth::time&
time = ::earth::time::now());
209 virtual string format(const ::scoped_string& strFormat, const ::earth::time&
time = ::time::now(),
const class ::time& timeshift = {});
213 inline string date_time_text(const ::earth::time&
time,
const class ::time& timeshift = {}) {
return format(INTERNATIONAL_DATE_TIME_FORMAT,
time, timeshift); }
214 inline string date_time_text(
const class ::time & timeshift = {}) {
return date_time_text(::time::now(), timeshift); }
215 inline string date_time_text_for_file(const ::earth::time&
time,
const class ::time& timeshift = {}) {
return format(INTERNATIONAL_DATE_TIME_FORMAT_FOR_FILE,
time, timeshift); }
216 inline string date_time_text_for_file(
const class ::time& timeshift = {}) {
return date_time_text_for_file(::time::now(), timeshift); }
217 inline string date_time_text_for_file_with_no_spaces(const ::earth::time&
time,
const class ::time& timeshift = {}) {
return format(INTERNATIONAL_DATE_TIME_FORMAT_FOR_FILE_WITH_NO_SPACES,
time, timeshift); }
218 inline string date_time_text_for_file_with_no_spaces(
const class ::time& timeshift = {}) {
return date_time_text_for_file_with_no_spaces(::time::now(), timeshift); }
221 inline ::string date_text(const ::earth::time&
time, const ::scoped_string & scopedstrFormat = INTERNATIONAL_DATE_FORMAT,
const class ::time& timeshift = {}) {
return format(scopedstrFormat,
time, timeshift); }
222 inline ::string date_text(const ::scoped_string & scopedstrFormat = INTERNATIONAL_DATE_FORMAT,
const class ::time& timeshift = {}) {
return format(scopedstrFormat, ::time::now(), timeshift); }
223 inline ::string date_text_for_file(
const class ::time& timeshift = {}, const ::earth::time&
time = ::earth::time::now()) {
return format(INTERNATIONAL_DATE_FORMAT_FOR_FILE,
time, timeshift); }
236virtual ::string elapsed_nanoseconds_text(::i64 iNanoseconds);
239virtual ::string elapsed_time_text(
const class ::time &
time);