Simple Decimal Calendar

Unix days make for a good decimal calendar.

报道

The concept of a decimal calendar has been attempted throughout history but never adopted widely. Yet.

(introducing:) Unix days!

TL;DR: Normalizing Unix seconds by the number of seconds in a day, results in Unix day, which has convenient properties, such as 5th digit after decimal point corresponding to decimal second (0.864 length of traditional second). So, dividing UNIX SECOND by 86400, we get a decimal Unix day, for example, if UNIX SECOND = 1688897360, then UNIX DAY = 19547.42315, and displaying this number with time formatting, makes it extremely easy for our time-trained eyes to interpret:
19,547 4:23:15, meaning:
  • 19th Unix decimal year (19 thousand days)
  • 547th day of the year (5-dmonth, 4-dweek, 7-dweekday)
  • 4:23:15 decimal time (4-dhour, 23-dminute, 15-dsecond)

Try in terminal

function edate {
    secs=$(date +%s); days=$(($secs/86400))
    hour=$(printf "%05d" "$((($secs-($days*86400))*1000/864))")
    printf "%'.0f %s:%s:%s\n" "$days" "${hour:0:1}" "${hour:1:2}" "${hour:3:2}"
}

Julian Days

Some scientists use it. In fact, there are good reasons why astronomers use days (namely, Julian Days, JDs) for date calendar computations: simplicity, uniformity, continuity. However, incidentally, decimal fractions of days define decimal time, where hours define the 1st decimal digit after point, decimal minutes represent the 2nd and 3rd decimal digit, and the decimal seconds define the 4th and 5th digit, and the fractions of the second the remaining digits.

Such time is sometimes used in scientific equipment, because of convenience for conversions, and decimal second is very close to traditional second (just 0.864 of it), so it comes in handy: to convert it into day fractions - all you do, is assemble digits into decimal fraction. However, what most scientists seem to care that much about, is whether the Julian Days are culturally neutral or not (and they are not: Joseph Scaliger in the 16th century, who named it "Julian" in reference to the Julian calendar, which was introduced by Julius Caesar in 45 BCE), and probably not caring to get people use it, because the number of Julian Days is quite large. For example, today is the 2460135th Julian day.

Unix time

Unix days, on the other hand, are not that culturally biased. If anything, the starting point of the start of year 1970 isn't so far from the time when first electronic computers back in the 1950s. One could argue, that Unix time starting point approximates the rise of electronic computers, or silicon era. The dividing line between carbon stack and silicon stack of life, is of geological importance, rather than of something that some king or pope had proclaimed.

However, Unix time is traditionally tracked in seconds. For example, now it is the 1688897360th Unix second. Due such long expressions, the Unix time did not get adopted for daily use by ordinary people either.

What if an unambiguous, useful, and culturally neutral decimal time and calendar could be obtained by a simple division of Unix seconds by 86400?

Unix day

It can be quite simple: just normalize the Unix seconds by the number of seconds in a day:

$$UnixSeconds/86400$$

Following this, we can define a calendar like this: https://0oo.li/calendar


安静地
(可选) 请,登录

如果地球日是“eday”,那么火星日就是“mday”?

If earth day is eday, then mars day would be mday?


所以,这实际上已经演变为 Python 中的“eday”包。:)

So, this actually has evolved to "eday" package in Python. :)