EDT is a command-line application to display time in decimal format, and to convert from standard time to decimal time. EDT is decimal time based on the Earth's rotation about its axis and around the sun. EDT format is: *YYYY-DDD+TTT.TTT, where YYYY is the Gregorian year, DDD is the day of the year, ranging from 001 to 365, and TTT.TTT is fractions of a day. The main TTT are 1000ths of a day, from 0 to 999, and .TTT are fractions thereof. +000 is midnight, Grenwich, and there is no adjustment for daylight savings time. EDT provides a common way of referencing absolute times worldwide.
edt contains utilities for Ruby. See my other EDT page for a Java implementation.
The concept of a Universal Time format is not new, and there are many different projects attempting to provide a universal format. In any definition af a time format, concessions must be made; time, as used in everyday life by mankind, is a very subjective thing. The EDT has been defined based on the following assumptions:
Based on the previous assumptions, where possible EDT attempts to be as close to the common standard, and to cooincide with the common standard as much as possible. Therefore, time is defined as: Year, Day in year, Thousandth of a Day, and (where neccessary), fractions of a Thousandth of a Day. The usefullness of a Year and a Day has already been discussed. Thousandths of a Day was chosen because 1/1000th of a Day is close to equal to a minute (86 seconds, or 1.44 minutes), which is very useful for a base time unit. Other likely candidates are useful in many cases, but not of appropriate granularity for most uses. The best argument for using something close to a minute is the fact that the Minute is indeed a defacto base time unit. This point could be debated, but in the end, all arguments boil down to aesthetics. We name these units "Ticks", which has become a common name for minute-equivalents in decimal time schemes.
The 0 year point has been chosen to cooincide with the 0 year of the Gregorian calendar. The only reason for this is that the Gregorian calendar is one of the most widely used calendars. As any 0 point is as arbitrary as any other, this was chosen as being the most useful for the people likely to use it.
The 0 time point has been chosen to cooincide with midnight, GMT. The reasons for this are the same as for the year: all choices are equally arbitrary, but cooinciding with midnight GMT is extremely practical.
The format of time has been defined as "*YYYY-DDD+TTT.TTT". Again, the punctuation was chosen arbitrarily; the key point is that any fraction of this format may be used unambiguously, as long as a single punctuation point is used. The year is the obvious exception -- 2020 is obviously a year, since none of the other fields in the time format have four digits. 132+334 is the 132nd day in the year, at about 4pm GMT.
We define a global time. On the North American Pacific coast, the sun crosses the zenith at about 833. There is no reconciliation between local and global time -- there is no good solution, and one is not universally better than the other. We have chosen to define global, rather than local, time only because it is less ambiguous. More information is needed to describe local time in an unambiguous way. Perhaps, then, EDT will only find use in global environments: business, the internet, and so on. We do believe that there is less reason to define a decimal system that is based on local time, since the French tried this and it failed, and because there is one less reason to change from the standard system already in use.
Please note a number of things: EDT is based on the premise that there can be no such thing as a practical, truely "Universal" time. Any practical system breaks down as soon as humans begin living off Earth. If we should, for example, colonize Mars, an Earth-based system of measurement will be extremely impractical for the Martians, as neither the days nor the years will be the same length. How do you manage when 12:00 accurs at different times in your day? Furthermore, any Universal system, such as the number of seconds since the Epoch, is impractical for daily human use.
This edt package a class for use within Ruby and a command line script for doing conversions and printing out times.
Run the 'edtc' script. It will return something like *2001-284+617.658, which is the time in EDT format.
Run the script with '-h' to see a list of all of the options.
NEED TO FILL THIS IN WITH CLASS USAGE