Порядковая дата

Дата, записанная как количество дней с первого дня года
Сегодняшняя дата ( UTC ) (в нотации ISO 8601 ) это:[ обновить ]
Дата2025-01-18
Порядковая дата2025-018
Верхняя строка табло гласит GMT 295: 11:31:54 (GMT было синонимом UTC).
Табло центра управления полетами с данными о времени, отображающее всемирное координированное время с порядковой датой (без года) в начале,  22 октября 2013 г. (т.е.2013-295)

Порядковая дата — это календарная дата , обычно состоящая из года и порядкового числа в диапазоне от 1 до 366 (начиная с 1 января), представляющая собой кратные дня , называемые днем ​​года или порядковым номером дня (также известные как порядковый день или номер дня ). Две части даты могут быть отформатированы как «ГГГГ-ДДД» для соответствия порядковому формату даты ISO 8601. Год иногда может быть опущен, если это подразумевается контекстом; день может быть обобщен из целых чисел, чтобы включить десятичную часть, представляющую часть дня.

Номенклатура

Порядковая дата — это предпочтительное название для того, что раньше называлось « юлианской датой » или JD , или JDATE , которая все еще встречается в старых языках программирования и программах для работы с электронными таблицами. Старые названия устарели, поскольку их легко спутать с более ранней системой датирования, называемой « юлианским числом дня » или JDN , которая использовалась ранее и остается повсеместной в астрономических и некоторых исторических расчетах.

Американские военные иногда используют систему, которую они называют «Юлианский формат даты», [1] , которая указывает год и номер дня (из 365 или 366 дней года). Например, «11 декабря 1999» можно записать как «1999345» или «99345», для 345-го дня 1999 года. [2]

Расчет

Вычисление порядкового дня в течение года является частью вычисления порядкового дня на протяжении лет от опорной даты , такой как юлианская дата. Это также часть вычисления дня недели , хотя для этой цели могут быть сделаны упрощения по модулю 7.

В следующем тексте представлено несколько алгоритмов для вычисления порядкового дня O. Входными данными являются целые числа y , m и d для года, месяца и дня даты по григорианскому или юлианскому календарю.

Тривиальные методы

Самый простой метод расчета порядкового дня заключается в подсчете всех прошедших дней согласно определению:

  1. Пусть О будет 0.
  2. Из i = 1 .. m - 1 прибавьте длину месяца i к O , учитывая високосный год в соответствии с используемым календарем.
  3. Добавьте d к O.

Аналогичным образом тривиальным является использование таблицы поиска, например, той, на которую ссылаются. [3]

Целлер-подобный

Таблицу длин месяцев можно заменить, следуя методу кодирования вариации длины месяца в сравнении Целлера . Как и в Целлере, m изменяется на m + 12, если m ≤ 2. Можно показать (см. ниже), что для номера месяца m общее количество дней предыдущих месяцев равно ⌊(153 * ( m − 3) + 2) / 5⌋ . В результате порядковый номер дня, основанный на 1 марта, равен O Mar = ⌊(153 × ( m − 3) + 2) / 5⌋ + d .

Формула отражает тот факт, что любые пять последовательных месяцев в диапазоне март–январь имеют общую продолжительность 153 дня из-за фиксированного шаблона 31–30–31–30–31, повторяющегося дважды. Это похоже на кодирование смещения месяца (которое было бы той же последовательностью по модулю 7) в сравнении Целлера. Как 153/5 равен 30,6, последовательность колеблется в желаемом режиме с желаемым периодом 5.

Чтобы перейти от порядкового дня, основанного на 1 марта, к порядковому дню, основанному на 1 января:

  • Для m ≤ 12 (с марта по декабрь) O = O Mar + 59 + isLeap( y ) , где isLeap — функция, возвращающая 0 или 1 в зависимости от того, является ли входной год високосным.
  • Для января и февраля можно использовать два метода:
    1. Самый простой метод — пропустить расчет O Mar и сразу перейти к O = d для января и O = d + 31 для февраля.
    2. Менее избыточный метод — использовать O = O Mar − 306 , где 306 — это число дат с марта по декабрь. Это позволяет использовать тот факт, что формула правильно дает длину месяца 31 для января.

Свойства " Судного дня ":

С и дает m = 2 n {\displaystyle m=2n} d = m {\displaystyle d=m}

O = 63.2 n 91.4 {\displaystyle O=\left\lfloor 63.2n-91.4\right\rfloor }

что дает последовательные различия в 63 (9 недель) для n = 2, 3, 4, 5 и 6, т. е. между 4/4, 6/6, 8/8, 10/10 и 12/12.

m = 2 n + 1 {\displaystyle m=2n+1} и дает d = m + 4 {\displaystyle d=m+4}

O = 63.2 n 56 + 0.2 {\displaystyle O=\left\lfloor 63.2n-56+0.2\right\rfloor }

и с заменой m и d

O = 63.2 n 56 + 119 0.4 {\displaystyle O=\left\lfloor 63.2n-56+119-0.4\right\rfloor }

что дает разницу 119 (17 недель) для n = 2 (разница между 5/9 и 9/5), а также для n = 3 (разница между 7/11 и 11/7).

Стол

В этот день13
янв.
14
февр.
3
марта
4
апр.
5
мая
6
июня
7
июля
8
авг.
9
сен.
10
окт.
11
нояб.
12
дек.
я
Добавлять03159901201511812122432733043343
Високосные годы03160911211521822132442743053352
Алгоритм 30 ( m 1 ) + 0.6 ( m + 1 ) i {\displaystyle 30(m-1)+\left\lfloor 0.6(m+1)\right\rfloor -i}

Например, порядковая дата 15 апреля в обычном году составляет 90 + 15 = 105 , а в високосном году — 91 + 15 = 106 .

Месяц–день

Номер месяца и даты задается как

m = o d / 30 + 1 {\displaystyle m=\left\lfloor od/30\right\rfloor +1}
d = mod ( o d , 30 ) + i 0.6 ( m + 1 ) {\displaystyle d={\bmod {\!}}\!(od,30)+i-\left\lfloor 0.6(m+1)\right\rfloor }

термин также можно заменить на порядковую дату. mod ( o d , 30 ) {\displaystyle {\bmod {\!}}\!(od,30)} o d 30 ( m 1 ) {\displaystyle od-30(m-1)} o d {\displaystyle od}

  • 100-й день обычного года:
m = 100 / 30 + 1 = 4 {\displaystyle m=\left\lfloor 100/30\right\rfloor +1=4}
d = mod ( 100 , 30 ) + 3 0.6 ( 4 + 1 ) = 10 + 3 3 = 10 {\displaystyle d={\bmod {\!}}\!(100,30)+3-\left\lfloor 0.6(4+1)\right\rfloor =10+3-3=10}
10 апреля.
  • 200-й день обычного года:
m = 200 / 30 + 1 = 7 {\displaystyle m=\left\lfloor 200/30\right\rfloor +1=7}
d = mod ( 200 , 30 ) + 3 0.6 ( 7 + 1 ) = 20 + 3 4 = 19 {\displaystyle d={\bmod {\!}}\!(200,30)+3-\left\lfloor 0.6(7+1)\right\rfloor =20+3-4=19}
19 июля.
  • 300-й день високосного года:
m = 300 / 30 + 1 = 11 {\displaystyle m=\left\lfloor 300/30\right\rfloor +1=11}
d = mod ( 300 , 30 ) + 2 0.6 ( 11 + 1 ) = 0 + 2 7 = 5 {\displaystyle d={\bmod {\!}}\!(300,30)+2-\left\lfloor 0.6(11+1)\right\rfloor =0+2-7=-5}
Ноябрь - 5 = 26 октября (31 - 5).

Таблица преобразования помощника


дата заказа
общий
год
високосный
год
0011 янв.
01010 янв.
02020 янв.
03030 янв.
0321 февр.
040 9 февр.
05019 февр.
0601 мар29 февр.
061 2 мар.1 мар
07011 мар.10 мар.
08021 мар.20 мар.
09031 марта30 мар.
0911 апр.31 марта
092 2 апр.1 апр.
10010 апр. 9 апр.

дата заказа

год общения
високосный
год
11020 апр.19 апр.
12030 апр.29 апр.
1211 мая30 апр.
122 2 мая1 мая
13010 мая 9 мая
14020 мая19 мая
15030 мая29 мая
1521 июн.31 мая
153 2 июня1 июн.
160 9 июня 8 июня
17019 июня18 июня
18029 июня28 июня
1821 июля30 июня
183 2 июля1 июля
190 9 июля 8 июля

дата заказа

год общения
високосный
год
20019 июля18 июля
21029 июля28 июля
2131 авг.31 июля
214 2 авг.1 авг.
220 8 авг. 7 авг.
23018 авг.17 авг.
24028 авг.27 авг.
2441 сен31 авг.
245 2 сен1 сен
250 7 сен 6 сен
26017 сен.16 сен.
27027 сен.26 сен.
2741 окт.30 сен.
275 2 окт.1 окт.
280 7 окт. 6 окт.

дата заказа

год общения
високосный
год
29017 окт.16 окт.
30027 окт.26 окт.
3051 нояб.31 окт.
306 2 нояб.1 нояб.
310 6 нояб. 5 нояб.
32016 нояб.15 нояб.
33026 нояб.25 нояб.
3351 дек.30 нояб.
336 2 дек.1 дек.
340 6 дек. 5 дек.
35016 дек.15 дек.
36026 дек.25 дек.
36531 дек.30 дек.
36631 дек.

Смотрите также

Ссылки

  1. ^ Хайнс, Джон. «Обзор форматов и стандартов времени». www.decimaltime.hynes.net . Получено 09.02.2011 .
  2. ^ "Международная стандартная нотация даты и времени". Кафедра компьютерных наук и технологий, Кембриджский университет . Получено 2024-05-01 .
  3. ^ "Таблица порядковых номеров дней для различных календарных дат" . Получено 2021-04-08 .
Retrieved from "https://en.wikipedia.org/w/index.php?title=Ordinal_date&oldid=1265013618"