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



         

Немного истории - часть 2


Обратите внимание на специфику перехода от летоисчисления до новой эры. Первый год новой эры (эры Дионисия), последовавший после первого года до новой эры, отсчитывается от даты рождества Христова. С точки зрения математики, ему должен предшествовать нулевой год, которого не было. Поэтому в алгоритмах исчисления непрерывных календарных дат номера лет до новой эры следует считать отрицательными и увеличивать их на 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 года, а дробная часть соответствует времени дня. По сравнению с юлианской датой изменилась только точка начала отсчета.




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