18#pragma pack(push, _CRT_PACKING)
28#define _EPOCH_BIAS 116444736000000000ll
30#define _DAY_SEC (24 * 60 * 60)
31#define _YEAR_SEC (365 * _DAY_SEC)
32#define _FOUR_YEAR_SEC (1461 * _DAY_SEC)
37#define _MAX_LOCAL_TIME (14 * 60 * 60)
40#define _MIN_LOCAL_TIME (-12 * 60 * 60)
42#define _TZ_STRINGS_SIZE 64
55 extern int const _days[];
67template <
typename TimeType>
78 max_time_t = 0x7fffd27f,
98 max_time_t = 0x793582affLL,
101 enum :
unsigned long long
115template <
typename TimeType,
typename Character>
152template <
typename TimeType>
155 if (yr % 4 == 0 && yr % 100 != 0)
158 if ((yr + 1900) % 400 == 0)
167template <
typename TimeType>
170 static TimeType
const leap_years_between_1900_and_1970 = 17;
172 TimeType
const elapsed_leap_years = ((yr - 1) / 4) - ((yr - 1) / 100) + ((yr + 299) / 400);
174 return elapsed_leap_years - leap_years_between_1900_and_1970;
183 int const days_in_month =
_days[mo + 1] -
_days[mo];
184 if (
dy <= days_in_month)
196 return (1900 + year) % 100;
201 return (1900 + year) / 100;
__time32_t __cdecl __loctotime32_t(int, int, int, int, int, int, int)
_Check_return_ _Deref_ret_z_ wchar_t **__cdecl __wide_tzname()
_In_ size_t _In_z_ wchar_t const _In_ tm const _In_opt_ void * lc_time_arg
__time64_t __cdecl __loctotime64_t(int, int, int, int, int, int, int)
int __cdecl _isindst(_In_ tm *_Time)
bool __cdecl __crt_time_is_leap_year(TimeType const yr)
TimeType __cdecl __crt_time_elapsed_leap_years(TimeType const yr)
tm *__cdecl __getgmtimebuf()
bool __cdecl __crt_time_is_day_valid(int const yr, int const mo, int const dy)
int __crt_get_century(int const year)
int __crt_get_2digit_year(int const year)
_In_ size_t _In_z_ wchar_t const _In_ tm const * timeptr
#define _Out_writes_z_(s)
_In_ size_t _In_ const __time32_t * _Time
_timespec32 timespec_type
_timespec64 timespec_type
size_t __cdecl _Wcsftime_l(wchar_t *const string, size_t const max_size, wchar_t const *const format, tm const *const timeptr, void *const lc_time_arg, _locale_t const locale)