CCT Version 3.0.0.0 2024-04-23 00:00:00 Time flies when you're having fun! File out: ..\..\..\OutputFiles\CCTOut_B_TESTSELECTEDVALUES.txt ======= TestSelectedValues() ======= ------------------------ Common Calendar Character Format (CCF) ---------------- Date Time UTC Offset | | | Zone (Tz time zone name) | | | | Abbreviation (Posix name) | | | | | Version (Tz Database release) | | | | | | Leap-seconds | | | | | | | Saving (DST) | | | | | | | |DST bias | | | | | | | || Mode (TOD count mode) | | | | | | | || | X terminator D2015-06-30T19:59:60U-04Zamerica/new_yorkAedtV2021aL25*S01cMuX -------------------------------------------------------------------------------- ---- Test some selected values and Ccf parsing ---- ---- Demonstrate various operations on various examples ---- Where two CCF lines are output: ---- 1st is the CCF generated from the CBF as set by SetYMDhms(YMDhms) ---- 2nd is that 1st CCF parsed and setting a CBF, and output as CCF ---- thus demonstrates deterministic round-trip of the formats == Set CLOCK_0 (one-second) rate == == Set TOD_LEAPSECOND_UTC_UTC TOD count mode == == Show m_CBFTodCountMode_et in use: TOD_LEAPSECOND_UTC_UTC == Set zone America/New_York == == Zone and Idx Params America/New_York [255] == Zone and Idx Loaded America/New_York [255] -- A Demo SetYMDhms() YMDhms range validation -- SetYMDhms() checks legitimate range inputs and may throw errors This example has a bogus month value (month == 0) ERROR CCct::SetYMDhmsd() iMM input out of range 1972-00-30 18:59:60 0 -- B Demo SetYMDhms() YMDhms DST Onset value validation -- SetYMDhms() checks legitimate range inputs and may throw errors This example has a disallowed hms value within the DST Onset that is, 2015-03-08 02:10:00 did not exist ERROR CCct::SetYMDhmsd() input YMDhms does not exist on the DST day. 2015-03-08 02:10:00.000000000 America/New_York D2015-03-08T03:10:00U-04Zamerica/new_yorkAedtV2021aL25S01t01a02cMuX -- C Demo SetYMDhms() YMDhms DST Onset value validation -- SetYMDhms() checks legitimate range inputs and may throw errors This example has a legitimate hms value before the DST transition D2015-03-08T01:59:59U-05Zamerica/new_yorkAestV2021aL25S00t01a02cMuX // UTC1970 1425798024 Day 16502 D2015-03-08T01:59:59U-05Zamerica/new_yorkAestV2021aL25S00t01a02cMuX // (UTC-05:00) Eastern Time (US & Canada) D2015-03-08T01:59:59U-05Zamerica/new_yorkAestV2021aL25S00t01a02cMuX // UTC1970 1425798024 Day 16502 -- D Demo SetYMDhms() YMDhms DST Onset value validation -- SetYMDhms() checks legitimate range inputs and may throw errors This example has a legitimate hms value after the DST transition D2015-03-08T03:00:00U-04Zamerica/new_yorkAedtV2021aL25S01t01a02cMuX // UTC1970 1425798025 Day 16502 D2015-03-08T03:00:00U-04Zamerica/new_yorkAedtV2021aL25S01t01a02cMuX // (UTC-05:00) Eastern Time (US & Canada) D2015-03-08T03:00:00U-04Zamerica/new_yorkAedtV2021aL25S01t01a02cMuX // UTC1970 1425798025 Day 16502 -- E Demo SetYMDhms() leap-second in zone validation -- This example is NOT a correct leap-second input value for America/New_York because its the wrong hour (hour == 18) (should be hour == 19) SetYMDhms() will detect this and throw a warning ERROR CCct::SetYMDhmsd() leap-second input not consistent with TOD_LEAPSECOND_UTC_UTC mode for this zone 1972-06-30 18:59:60.000000000 America/New_York D1972-06-30T19:00:00U-04Zamerica/new_yorkAedtV2021aL00+S01cMuX -- F 1972 leap-second America/New_York TOD_LEAPSECOND_UTC_UTC -- Example with correct leap-second YMDhms input D1972-06-30T19:59:60U-04Zamerica/new_yorkAedtV2021aL00*S01cMuX // UTC1970 0078796800 Day 911 D1972-06-30T19:59:60U-04Zamerica/new_yorkAedtV2021aL00*S01cMuX // (UTC-05:00) Eastern Time (US & Canada) D1972-06-30T19:59:60U-04Zamerica/new_yorkAedtV2021aL00*S01cMuX // UTC1970 0078796800 Day 911 -- G one second after 1972 leap-second America/New_York TOD_LEAPSECOND_UTC_UTC -- D1972-06-30T20:00:00U-04Zamerica/new_yorkAedtV2021aL01+S01cMuX // UTC1970 0078796801 Day 911 D1972-06-30T20:00:00U-04Zamerica/new_yorkAedtV2021aL01+S01cMuX // (UTC-05:00) Eastern Time (US & Canada) D1972-06-30T20:00:00U-04Zamerica/new_yorkAedtV2021aL01+S01cMuX // UTC1970 0078796801 Day 911 -- Set Etc/UTC zone TOD_LEAPSECOND_UTC_UTC -- -- H 1972 leap-second Etc/UTC TOD_LEAPSECOND_UTC_UTC -- D1972-06-30T23:59:60U+00Zetc/utcAutcV2021aL00*MuX // UTC1970 0078796800 Day 911 D1972-06-30T23:59:60U+00Zetc/utcAutcV2021aL00*MuX // (UTC) Coordinated Universal Time D1972-06-30T23:59:60U+00Zetc/utcAutcV2021aL00*MuX // UTC1970 0078796800 Day 911 -- I Convert Zone ETC_UTC to Europe/Berlin TOD_LEAPSECOND_UTC_UTC -- -- Set local instance of CCct CCctBERLIN to Europe/Berlin zone TOD_LEAPSECOND_UTC_UTC -- D1972-07-01T00:59:60U+01Zeurope/berlinAcetV2021aL00*MuX // UTC1970 0078796800 Day 912 D1972-07-01T00:59:60U+01Zeurope/berlinAcetV2021aL00*MuX // (UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna D1972-07-01T00:59:60U+01Zeurope/berlinAcetV2021aL00*MuX // UTC1970 0078796800 Day 912 -- Set Europe/Berlin zone TOD_LEAPSECOND_UTC_UTC -- -- J 2015 leap-second Europe/Berlin TOD_LEAPSECOND_UTC_UTC -- D2015-07-01T01:59:60U+02Zeurope/berlinAcestV2021aL25*S01cMuX // UTC1970 1435708825 Day 16617 D2015-07-01T01:59:60U+02Zeurope/berlinAcestV2021aL25*S01cMuX // (UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna D2015-07-01T01:59:60U+02Zeurope/berlinAcestV2021aL25*S01cMuX // UTC1970 1435708825 Day 16617 -- K The same instant in Europe/Moscow TOD_LEAPSECOND_UTC_UTC -- Accomplished by calling CCct::ConvertToZoneUtil() D1972-07-01T00:59:60U+01Zeurope/berlinAcetV2021aL00*MuX // UTC1970 0078796800 Day 912 D1972-07-01T00:59:60U+01Zeurope/berlinAcetV2021aL00*MuX // UTC1970 0078796800 Day 912 D1972-07-01T02:59:60U+03Zeurope/moscowAmskV2021aL00*MuX // UTC1970 0078796800 Day 912 D1972-07-01T02:59:60U+03Zeurope/moscowAmskV2021aL00*MuX // (UTC+03:00) Moscow, St. Petersburg D1972-07-01T02:59:60U+03Zeurope/moscowAmskV2021aL00*MuX // UTC1970 0078796800 Day 912 i64ZonesFromToOffset 7200s 002:00hm -- L The same instant in America/Los_Angeles TOD_LEAPSECOND_UTC_UTC -- Accomplished by calling CCct::ConvertToZoneUtil() D1972-07-01T00:59:60U+01Zeurope/berlinAcetV2021aL00*MuX // UTC1970 0078796800 Day 912 D1972-07-01T00:59:60U+01Zeurope/berlinAcetV2021aL00*MuX // UTC1970 0078796800 Day 912 D1972-06-30T16:59:60U-07Zamerica/los_angelesApdtV2021aL00*S01cMuX // UTC1970 0078796800 Day 911 D1972-06-30T16:59:60U-07Zamerica/los_angelesApdtV2021aL00*S01cMuX // (UTC-08:00) Pacific Time (US & Canada) D1972-06-30T16:59:60U-07Zamerica/los_angelesApdtV2021aL00*S01cMuX // UTC1970 0078796800 Day 911 i64ZonesFromToOffset -28800s -08:00hm -- M The same instant in America/New_York TOD_LEAPSECOND_UTC_UTC -- Accomplished by calling CCct::ConvertToZoneUtil() D1972-06-30T16:59:60U-07Zamerica/los_angelesApdtV2021aL00*S01cMuX // UTC1970 0078796800 Day 911 D1972-06-30T16:59:60U-07Zamerica/los_angelesApdtV2021aL00*S01cMuX // UTC1970 0078796800 Day 911 D1972-06-30T19:59:60U-04Zamerica/new_yorkAedtV2021aL00*S01cMuX // UTC1970 0078796800 Day 911 D1972-06-30T19:59:60U-04Zamerica/new_yorkAedtV2021aL00*S01cMuX // (UTC-05:00) Eastern Time (US & Canada) D1972-06-30T19:59:60U-04Zamerica/new_yorkAedtV2021aL00*S01cMuX // UTC1970 0078796800 Day 911 i64ZonesFromToOffset 10800s 003:00hm == J Switch to TOD_LEAPSECOND_MIDNIGHT TOD count mode == == m_CBFTodCountMode_et in use TOD_LEAPSECOND_MIDNIGHT == -- N Demo SetYMDhms() YMDhms DST Onset value validation -- SetYMDhms() checks legitimate range inputs and may throw errors This example has a disallowed hms value within the DST Onset that is, 2015-03-29 02:10:00 did not exist -- Set America/New_York zone TOD_LEAPSECOND_MIDNIGHT -- -- O 2015 leap-second America/New_York TOD_LEAPSECOND_MIDNIGHT -- D2015-06-30T23:59:60U-04Zamerica/new_yorkAedtV2021aL25*S01cMmX // UTC1970 1435723225 Day 16616 D2015-06-30T23:59:60U-04Zamerica/new_yorkAedtV2021aL25*S01cMmX // (UTC-05:00) Eastern Time (US & Canada) D2015-06-30T23:59:60U-04Zamerica/new_yorkAedtV2021aL25*S01cMmX // UTC1970 1435723225 Day 16616 -- Set Europe/Berlin zone TOD_LEAPSECOND_MIDNIGHT -- -- P 2015 leap-second Europe/Berlin TOD_LEAPSECOND_MIDNIGHT -- D2015-06-30T23:59:60U+02Zeurope/berlinAcestV2021aL25*S01cMmX // UTC1970 1435701625 Day 16616 D2015-06-30T23:59:60U+02Zeurope/berlinAcestV2021aL25*S01cMmX // (UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna D2015-06-30T23:59:60U+02Zeurope/berlinAcestV2021aL25*S01cMmX // UTC1970 1435701625 Day 16616 -- Set America/New_York zone TOD_LEAPSECOND_MIDNIGHT -- -- Q 2016-10-27 2:30 PM in America/New_York TOD_LEAPSECOND_MIDNIGHT -- D2016-10-27T14:30:00U-04Zamerica/new_yorkAedtV2021aL26S01cMmX // UTC1970 1477593026 Day 17101 D2016-10-27T14:30:00U-04Zamerica/new_yorkAedtV2021aL26S01cMmX // (UTC-05:00) Eastern Time (US & Canada) D2016-10-27T14:30:00U-04Zamerica/new_yorkAedtV2021aL26S01cMmX // UTC1970 1477593026 Day 17101 -- R The same instant in America/Los_Angeles TOD_LEAPSECOND_MIDNIGHT -- Accomplished by calling CCct::ConvertToZoneUtil() D2016-10-27T11:30:00U-07Zamerica/los_angelesApdtV2021aL26S01cMmX // UTC1970 1477593026 Day 17101 D2016-10-27T11:30:00U-07Zamerica/los_angelesApdtV2021aL26S01cMmX // UTC1970 1477593026 Day 17101 i64ZonesFromToOffset -10800s -03:00hm --------------------- --------------------- == S Each of the CLOCK_x rates in America/New_York count mode TOD_LEAPSECOND_UTC_UTC -- -- CLOCK_0 rate -- D2024-06-30T19:59:59U-04Zamerica/new_yorkAedtV2021aL27S01cMuX // UTC1970 1719792026 Day 19904 D2024-06-30T19:59:59U-04Zamerica/new_yorkAedtV2021aL27S01cMuX // UTC1970 1719792026 Day 19904 -- CLOCK_1 (1/10th second) rate -- D2024-06-30T20:00:00d0U-04Zamerica/new_yorkAedtV2021aL27S01cMuX // UTC1970 1719792027.0 Day 19904 D2024-06-30T20:00:00d0U-04Zamerica/new_yorkAedtV2021aL27S01cMuX // UTC1970 1719792027.0 Day 19904 -- CLOCK_2 (1/100th second) rate -- D2024-06-30T20:00:01c00U-04Zamerica/new_yorkAedtV2021aL27S01cMuX // UTC1970 1719792028.00 Day 19904 D2024-06-30T20:00:01c00U-04Zamerica/new_yorkAedtV2021aL27S01cMuX // (UTC-05:00) Eastern Time (US & Canada) D2024-06-30T20:00:01c00U-04Zamerica/new_yorkAedtV2021aL27S01cMuX // UTC1970 1719792028.00 Day 19904 -- CLOCK_3 (millisecond) rate -- D2024-06-30T20:00:02m000U-04Zamerica/new_yorkAedtV2021aL27S01cMuX // UTC1970 1719792029.000 Day 19904 D2024-06-30T20:00:02m000U-04Zamerica/new_yorkAedtV2021aL27S01cMuX // (UTC-05:00) Eastern Time (US & Canada) D2024-06-30T20:00:02m000U-04Zamerica/new_yorkAedtV2021aL27S01cMuX // UTC1970 1719792029.000 Day 19904 -- CLOCK_6 (microsecond) rate -- D2024-06-30T20:00:03u000000U-04Zamerica/new_yorkAedtV2021aL27S01cMuX // UTC1970 1719792030.000000 Day 19904 D2024-06-30T20:00:03u000000U-04Zamerica/new_yorkAedtV2021aL27S01cMuX // (UTC-05:00) Eastern Time (US & Canada) D2024-06-30T20:00:03u000000U-04Zamerica/new_yorkAedtV2021aL27S01cMuX // UTC1970 1719792030.000000 Day 19904 -- CLOCK_7 (100-nanosecond) rate -- D2024-06-30T20:00:04h0000000U-04Zamerica/new_yorkAedtV2021aL27S01cMuX // UTC1970 1719792031.0000000 Day 19904 D2024-06-30T20:00:04h0000000U-04Zamerica/new_yorkAedtV2021aL27S01cMuX // (UTC-05:00) Eastern Time (US & Canada) D2024-06-30T20:00:04h0000000U-04Zamerica/new_yorkAedtV2021aL27S01cMuX // UTC1970 1719792031.0000000 Day 19904 -- CLOCK_9 (nanosecond) rate -- D2024-06-30T20:00:05n000000000U-04Zamerica/new_yorkAedtV2021aL27S01cMuX // UTC1970 1719792032.000000000 Day 19904 D2024-06-30T20:00:05n000000000U-04Zamerica/new_yorkAedtV2021aL27S01cMuX // (UTC-05:00) Eastern Time (US & Canada) D2024-06-30T20:00:05n000000000U-04Zamerica/new_yorkAedtV2021aL27S01cMuX // UTC1970 1719792032.000000000 Day 19904 -- CLOCK_12 (picosecond) rate -- D2024-06-30T20:00:06p000000000000U-04Zamerica/new_yorkAedtV2021aL27S01cMuX // UTC1970 1719792033.000000000000 Day 19904 D2024-06-30T20:00:06p000000000000U-04Zamerica/new_yorkAedtV2021aL27S01cMuX // (UTC-05:00) Eastern Time (US & Canada) D2024-06-30T20:00:06p000000000000U-04Zamerica/new_yorkAedtV2021aL27S01cMuX // UTC1970 1719792033.000000000000 Day 19904 == T Advance by picosecond unit to midnight roll-over == D2024-06-30T23:59:59p999999999998U-04Zamerica/new_yorkAedtV2021aL27S01cMuX // UTC1970 1719806426.999999999998 Day 19904 D2024-06-30T23:59:59p999999999998U-04Zamerica/new_yorkAedtV2021aL27S01cMuX // UTC1970 1719806426.999999999998 Day 19904 D2024-06-30T23:59:59p999999999998U-04Zamerica/new_yorkAedtV2021aL27S01cMuX // UTC1970 1719806426.999999999998 Day 19904 D2024-06-30T23:59:59p999999999998U-04Zamerica/new_yorkAedtV2021aL27S01cMuX // UTC1970 1719806426.999999999998 Day 19904 D2024-06-30T23:59:59p999999999999U-04Zamerica/new_yorkAedtV2021aL27S01cMuX // UTC1970 1719806426.999999999999 Day 19904 D2024-06-30T23:59:59p999999999999U-04Zamerica/new_yorkAedtV2021aL27S01cMuX // UTC1970 1719806426.999999999999 Day 19904 D2024-07-01T00:00:00p000000000000U-04Zamerica/new_yorkAedtV2021aL27S01cMuX // UTC1970 1719806427.000000000000 Day 19905 D2024-07-01T00:00:00p000000000000U-04Zamerica/new_yorkAedtV2021aL27S01cMuX // UTC1970 1719806427.000000000000 Day 19905 D2024-07-01T00:00:00p000000000001U-04Zamerica/new_yorkAedtV2021aL27S01cMuX // UTC1970 1719806427.000000000001 Day 19905 D2024-07-01T00:00:00p000000000001U-04Zamerica/new_yorkAedtV2021aL27S01cMuX // UTC1970 1719806427.000000000001 Day 19905 == U Reverse by picosecond unit == D2024-07-01T00:00:00p000000000001U-04Zamerica/new_yorkAedtV2021aL27S01cMuX // UTC1970 1719806427.000000000001 Day 19905 D2024-07-01T00:00:00p000000000001U-04Zamerica/new_yorkAedtV2021aL27S01cMuX // UTC1970 1719806427.000000000001 Day 19905 D2024-07-01T00:00:00p000000000000U-04Zamerica/new_yorkAedtV2021aL27S01cMuX // UTC1970 1719806427.000000000000 Day 19905 D2024-07-01T00:00:00p000000000000U-04Zamerica/new_yorkAedtV2021aL27S01cMuX // UTC1970 1719806427.000000000000 Day 19905 D2024-06-30T23:59:59p999999999999U-04Zamerica/new_yorkAedtV2021aL27S01cMuX // UTC1970 1719806426.999999999999 Day 19904 D2024-06-30T23:59:59p999999999999U-04Zamerica/new_yorkAedtV2021aL27S01cMuX // UTC1970 1719806426.999999999999 Day 19904 D2024-06-30T23:59:59p999999999998U-04Zamerica/new_yorkAedtV2021aL27S01cMuX // UTC1970 1719806426.999999999998 Day 19904 D2024-06-30T23:59:59p999999999998U-04Zamerica/new_yorkAedtV2021aL27S01cMuX // UTC1970 1719806426.999999999998 Day 19904 -- CLOCK_12 (picosecond) i64AddUnit = -999999999997 -- D2024-06-30T23:59:59p000000000001U-04Zamerica/new_yorkAedtV2021aL27S01cMuX // UTC1970 1719806426.000000000001 Day 19904 D2024-06-30T23:59:59p000000000001U-04Zamerica/new_yorkAedtV2021aL27S01cMuX // UTC1970 1719806426.000000000001 Day 19904 -- CLOCK_12 (picosecond) i64AddUnit = -1 -- D2024-06-30T23:59:59p000000000000U-04Zamerica/new_yorkAedtV2021aL27S01cMuX // UTC1970 1719806426.000000000000 Day 19904 D2024-06-30T23:59:59p000000000000U-04Zamerica/new_yorkAedtV2021aL27S01cMuX // UTC1970 1719806426.000000000000 Day 19904 D2024-06-30T23:59:58p999999999999U-04Zamerica/new_yorkAedtV2021aL27S01cMuX // UTC1970 1719806425.999999999999 Day 19904 D2024-06-30T23:59:58p999999999999U-04Zamerica/new_yorkAedtV2021aL27S01cMuX // UTC1970 1719806425.999999999999 Day 19904 D2024-06-30T23:59:58p999999999998U-04Zamerica/new_yorkAedtV2021aL27S01cMuX // UTC1970 1719806425.999999999998 Day 19904 D2024-06-30T23:59:58p999999999998U-04Zamerica/new_yorkAedtV2021aL27S01cMuX // UTC1970 1719806425.999999999998 Day 19904 == V CCT with location - Geostamp == ----------------------------------------------------------------------------------- CCT Geostamp CCT timestamps with geographic coordinates ----------------------------------------------------------------------------------- ------------------------ Common Calendar Character Format (CCF) ------------------- Date Time UTC Offset | | | Zone (Tz time zone name) | | | | Abbreviation (Posix name) | | | | | Version (Tz Database release) | | | | | | Leap-seconds | | | | | | | Saving (DST) | | | | | | | |DST bias | | | | | | | || Mode (TOD count mode) | | | | | | | || | X terminator D2015-06-30T19:59:60U-04Zamerica/new_yorkAedtV2021aL25*S01cMuX Coordinates | Latitude | | Longitude | | | term X D2015-06-30T19:59:60U-04Zamerica/new_yorkAedtV2021aL25*S01cMuCzt+4042+51g-07400+23X ----------------------------------------------------------------------------------- D2024-04-01T12:00:00U-04Zamerica/new_yorkAedtV2021aL27S01cMuCzt+4042+51g-07400+23X // UTC1970 1711987227 Day 19814 D2024-04-01T12:00:00U-04Zamerica/new_yorkAedtV2021aL27S01cMuCzt+4042+51g-07400+23X // UTC1970 1711987227 Day 19814 -- ConvertToZone America/Los_Angeles D2024-04-01T09:00:00U-07Zamerica/los_angelesApdtV2021aL27S01cMuCzt+3403+8g-11814+34X // UTC1970 1711987227 Day 19814 D2024-04-01T09:00:00U-07Zamerica/los_angelesApdtV2021aL27S01cMuCzt+3403+8g-11814+34X // (UTC-08:00) Pacific Time (US & Canada) D2024-04-01T09:00:00U-07Zamerica/los_angelesApdtV2021aL27S01cMuCzt+3403+8g-11814+34X // UTC1970 1711987227 Day 19814 i64ZonesFromToOffset -10800s -03:00hm ==== TestSelectedTimePointsAndIntervals() ==== ------------------------------------------------------------------------------------------------ ---- Populate CBF as time points without date and intervals ---- ------------------------------------------------------------------------------------------------ Common Calendar Character Format (CCF) // seconds -- CLOCK_9 nanoseconds -- -- A CCT as interval ((I)nterval) < 86400s -- I23:59:59n000000000X // UTC1970 0000086399.000000000 Day 0 I23:59:59n000000000X // UTC1970 0000086399.000000000 Day 0 -- B CCT as interval ((P)eriod) >= 86400s -- P1I23:59:59n000000000X // UTC1970 0000172799.000000000 Day 1 P1I23:59:59n000000000X // UTC1970 0000172799.000000000 Day 1 -- C CCT as time-point ((T)ime) without date < 86400s -- T23:59:59n000000000X // UTC1970 0000086399.000000000 Day 0 T23:59:59n000000000X // UTC1970 0000086399.000000000 Day 0 -- D CCT as time-point ((E)vent) without date >= 86400s -- E1T23:59:59n000000000X // UTC1970 0000172799.000000000 Day 1 E1T23:59:59n000000000X // UTC1970 0000172799.000000000 Day 1 -- CLOCK_12 picoseconds -- -- E CCT as interval ((I)nterval) < 86400s -- I23:59:59p000000000000X // UTC1970 0000086399.000000000000 Day 0 I23:59:59p000000000000X // UTC1970 0000086399.000000000000 Day 0 -- F CCT as interval ((P)eriod) >= 86400s -- P1I23:59:59p000000000000X // UTC1970 0000172799.000000000000 Day 1 P1I23:59:59p000000000000X // UTC1970 0000172799.000000000000 Day 1 -- G CCT as time-point ((T)ime) without date < 86400s -- T23:59:59p000000000000X // UTC1970 0000086399.000000000000 Day 0 T23:59:59p000000000000X // UTC1970 0000086399.000000000000 Day 0 -- H CCT as time-point ((E)vent) without date >= 86400s -- E1T23:59:59p000000000000X // UTC1970 0000172799.000000000000 Day 1 E1T23:59:59p000000000000X // UTC1970 0000172799.000000000000 Day 1 -- I CCT as interval ((P)eriod) >= 86400s as difference between two Date-time points -- D2019-09-30T13:42:00n000000000U-04Zamerica/new_yorkAedtV2021aL27S01cMuX D2019-12-24T12:00:00n000000000U-05Zamerica/new_yorkAestV2021aL27MuX P84I22:18:00n000000000X Your time is up.