Практика программирования (Бейсик, Си, Паскаль)


         

Обратите внимание на специфику перехода


Обратите внимание на специфику перехода от летоисчисления до новой эры. Первый год новой эры (эры Дионисия), последовавший после первого года до новой эры, отсчитывается от даты рождества Христова. С точки зрения математики, ему должен предшествовать нулевой год, которого не было. Поэтому в алгоритмах исчисления непрерывных календарных дат номера лет до новой эры следует считать отрицательными и увеличивать их на 1.

В конце того же XVI века астроном Джозеф Скалигер предложил новый способ отсчета времени. Начинался он от некоторого условного нуля (12 часов дня всемирного времени в понедельник 1 января 4713 года до новой эры, а с учетом приведенного выше замечания начальный год равен —4712) и представлялся в виде постоянно работающего таймера, отсчитывающего сутки и текущее время. Целая часть Юлианской даты JD (она была так названа в честь отца Скалигера) определяла количество суток, прошедших от начала отсчета, а дробная часть от 0,0 до 0,99999 соответствовала показанию суточных часов. Переход к следующей единице отсчета происходил в 12 часов очередного дня.

Например:

1 января 4712 г. до н.э. в 12 часов дня JD = 0.00000

2 января 4712 г. до н.э. в 12 часов дня JD = 1.00000

3 января 4712 г. до н.э. в 18 часов вечера JD = 2.25000

1 января 1900 г. в 12 часов дня JD = 2415021.0

22 июня 1941 г. в 4 часа утра JD = 2430167.66667

9 мая 1945 г. в 12 часов дня JD = 2431585.0

1 января 1999 г. в 12 часов дня JD = 2451180.0

1 января 2000 г. в 12 часов дня JD = 2451545.0

Следует заметить, что предложенная идея отсчета времени используется не только астрономами. В системах визуального программирования Borland C++ Builder и Delphi появился класс данных типа TDateTime, в объектах которого хранится обобщенное значение даты и времени в формате вещественного числа с двойной точностью (double). Его целая часть равна количеству дней, прошедших с полуночи 30 декабря 1899 года, а дробная часть соответствует времени дня. По сравнению с юлианской датой изменилась только точка начала отсчета.


Содержание  Назад  Вперед