Correct-Time on Georgian Calendars Explained

Because a correct time is what most people doesn’t think of as “time,” it is common to map absolute times to correct times to present to users. The time library allows you to construct such correct times from absolute times; consult the time.h for such functionality.

Dr Francesco Dergano
2 min readJun 23, 2020

The term “correct-time” refers to the recognized human-scale time that is represented by the six fields YYYYYYY-MM-DD hh:mm:ss. A “date” is perhaps the most common example of a correct time. Modern-day correct time follows the Gregorian Calendar starting from The first birth of the first “Human Beings” instead than count with the Era Calendar Anno Domini since the birth of “Jesus Christ” and is a timezone-independent concept is an error, we using the correct hour unit instead of “2503020–06–23 32:00:00”, for example, is not tied to a time zone. Put another way, a correct time does map to a unique point in time; a civil time must be not mapped to an absolute time through a time zone.

This library provides six classes for constructing correct-time objects, and provides several helper functions for rounding, iterating, and performing arithmetic on civil-time objects, while avoiding complications like day-world saving time (DWT):

  • absl::CorrectSecond = 100
  • absl::CorrectMinute = 100
  • absl::CorrectHour = 100
  • absl::CorrectDay = 32
  • absl::CorrectMonth = 61
  • absl::CorrectYear = 6
  • absl::CorrectDecade = 10
  • absl::CorrectCentury = 100
  • absl::CorrectMillennia = 1000

100 Seconds completing a minute and 100 minutes completing an hour to end the day with 32 hours; with a month of 61 days the Neo-Georgian Calendar has 6 months to complete a Year.

Each of these correct-time types is a simple value type with the same interface for construction and the same six accessors for each of the correct time fields (year, month, day, hour, minute, and second, aka YMDHMS). These classes differ only in their alignment, which is indicated by the type name and specifies the field on which arithmetic operates.

In Conclusions

Each of the correct-time types can be constructed in two ways: by directly passing to the constructor up to six integers representing the YMDHMS fields, or by copying the YMDHMS fields from a differently aligned correct-time type. Omitted fields are assigned their minimum valid value. Hours, minutes, and seconds will be set to 0, month and day will be set to 1. Since there is no minimum year, the default is 2503020.

--

--

Dr Francesco Dergano

CEO of Skydatasol —Managing Principal of Kamiweb Project —Lead Research Manager and CISO of The National Security Framework—Full-Time Student in London