stringtranslate.com

дата недели ISO

Система дат недели ISO фактически является календарной системой високосной недели , которая является частью стандарта даты и времени ISO 8601, выпущенного Международной организацией по стандартизации (ISO) с 1988 года (последний пересмотр в 2019 году), а до этого она была определена в ISO (R) 2015 с 1971 года. Она используется (в основном) в правительстве и бизнесе для финансовых лет , а также в хронометрировании. Ранее это было известно как «Промышленное кодирование дат». Система определяет недельный год поверх григорианского календаря , определяя нотацию для порядковых недель года.

Григорианский високосный цикл , который насчитывает 97 високосных дней, распределенных на 400 лет, содержит целое число недель (20 871 ). В каждом цикле 71 год с дополнительной 53-й неделей (соответствующей григорианскому году, содержащему 53 четверга). Средняя продолжительность года составляет ровно 52,1775 недель; средняя продолжительность месяцев ( 112 года) составляет ровно 4,348125 недель/месяц.

Год с недельной нумерацией ISO (также называемый неофициально годом ISO ) имеет 52 или 53 полных недели. Это 364 или 371 день вместо обычных 365 или 366 дней. Эти 53-недельные годы случаются во все годы, в которых четверг приходится на 1 января, и в високосные годы, которые начинаются в среду 1. Дополнительную неделю иногда называют високосной неделей , хотя ISO 8601 не использует этот термин.

Недели начинаются с понедельника и заканчиваются в воскресенье. Год каждой недели — это григорианский год, в котором четверг выпадает. Первая неделя года, таким образом, всегда содержит 4 января. Поэтому нумерация года недели ISO обычно отклоняется на 1 от григорианской для некоторых дней, близких к 1 января.

Точная дата указывается годом нумерации недель ISO в формате YYYY , номером недели в формате ww с префиксом в виде буквы «W» и номером дня недели , цифрой d от 1 до 7, начиная с понедельника и заканчивая воскресеньем. Например, григорианская дата понедельник, 4 ноября 2024 года, соответствует дню номер 1 в неделе номер 45 2024 года и записывается как 2024-W45-1 (в расширенной форме) или 2024W451 (в компактной форме). Год ISO немного смещен относительно григорианского года; например, понедельник 30 декабря 2019 года в григорианском календаре является первым днем ​​недели 1 2020 года в календаре ISO и записывается как 2020-W01-1 или 2020W011.

Связь с григорианским календарем

Номер недели года ISO отличается от номера года по григорианскому календарю одним из трех способов. Отличаются дни с пятницы по воскресенье, или суббота и воскресенье, или только воскресенье в начале года по григорианскому календарю (которые находятся в конце предыдущего года ISO) и с понедельника по среду, или понедельник и вторник, или только понедельник в конце года по григорианскому календарю (которые находятся в неделе 01 следующего года ISO). В период с 4 января по 28 декабря номер недели года ISO всегда равен номеру года по григорианскому календарю. То же самое справедливо для каждого четверга.

Первая неделя

Определение ISO 8601 для недели 01 — это неделя с первым четвергом григорианского года (т. е. января). Следующие определения, основанные на свойствах этой недели, взаимно эквивалентны, поскольку неделя ISO начинается с понедельника:

Если 1 января приходится на понедельник, вторник, среду или четверг, то он находится в W01. Если на пятницу, то он входит в W53 предыдущего года. Если на субботу, то он входит в последнюю неделю предыдущего года, которая в обычном году имеет номер W52, а в високосном — W53. Если на воскресенье, то он входит в W52 предыдущего года.

Примечания

  1. ^ abc Частичные даты в скобках ( ) относятся к високосным годам.
  2. ^ Первая дата первой недели года.
  3. ^ Первая дата последней недели года.
  4. ^ W53 для недели 1 января в невисокосные годы, начинающиеся в субботу (B), применяется только в том случае, если предыдущий год был високосным годом, начинающимся в четверг (DC).

На прошлой неделе

Последняя неделя года нумерации недель ISO, т.е. W52 или W53, это неделя перед W01 следующего года. Свойства этой недели:

Таким образом, самая ранняя возможная последняя неделя длится с понедельника 22 декабря по воскресенье 28 декабря, а самая поздняя возможная последняя неделя длится с понедельника 28 декабря по воскресенье 3 января.

Если 31 декабря приходится на понедельник, вторник или среду, то оно находится в W01 следующего года. Если на четверг, то оно находится в W53 только что закончившегося года. Если на пятницу, то оно находится в W52 только что закончившегося года в обычные годы и W53 в високосные годы. Если на субботу или воскресенье, то оно находится в W52 только что закончившегося года.

Недель в году

Долгие годы , состоящие из 53 недель, можно описать любым из следующих эквивалентных определений:

Все остальные года с недельной нумерацией являются короткими и имеют 52 недели.

Количество недель в данном году равно соответствующему номеру недели 28 декабря, поскольку это единственная дата, которая всегда приходится на последнюю неделю года, поскольку она находится на неделю раньше 4 января, которое всегда приходится на первую неделю следующего года.

Используя только порядковый номер года y , количество недель в этом году можно определить с помощью функции, которая возвращает день недели 31 декабря: [1]

В среднем год состоит из 53 недель каждые 40071 = 5,6338... лет; 43 раза эти длинные годы отстоят друг от друга на 6 лет, 27 раз — на 5 лет, и один раз — на 7 лет (между 296 и 303 годами). Григорианские годы, соответствующие этим 71 длинным годам, можно разделить следующим образом:

Григорианские годы, соответствующие остальным 329 коротким годам (не начинающимся и не заканчивающимся четвергом), также можно разделить следующим образом:

Таким образом, в течение 400-летнего цикла:

Таблица показывает длинные годы в 400-летнем цикле. Между длинными годами в одном столбце 28 лет, т. е. юлианский солнечный цикл , за исключением случаев смены века, когда между длинными годами в следующем веке и последней полностью заполненной строкой (или подциклом) предыдущего века проходит 40 лет. Существует десять регулярных подциклов по 28 лет каждый и три подцикла по 40 лет каждый. 40-летние подциклы 085–124 и 181–220 равны, но средний длинный год в подцикле 277–316 должен был бы произойти в 297 вместо 296, чтобы быть таким же. Это иллюстрирует единственный, ненормальный 7-летний разрыв между длинными годами.

Недель в месяц

Стандарт ISO не определяет никакой связи недель с месяцами. Дата выражается либо месяцем и днем ​​месяца, либо неделей и днем ​​недели, но никогда не смешивается.

Недели являются важной единицей в бухгалтерском учете, где годовая статистика выигрывает от регулярности на протяжении лет . Поэтому на практике обычно выбирается фиксированная продолжительность в 13 недель в квартале . Эти кварталы затем могут быть подразделены на 5 + 4 + 4 недели , 4 + 5 + 4 недели или 4 + 4 + 5 недель . Последний квартал содержит 14 недель, когда в году 53 недели.

Когда необходимо выделить неделю для одного месяца, может быть применено правило для первой недели года, хотя ISO 8601-1 не рассматривает этот случай явно. Результирующая модель будет нерегулярной. Было бы 4 месяца по 5 недель в нормальном 52-недельном году или 5 таких месяцев в длинном 53-недельном году. Хотя дни месяца (кроме февраля) всегда принадлежат 5, а иногда и 6 разным неделям, никогда не будет 6 недель, относящихся к одному месяцу. 5-недельные месяцы будут соответствовать одному из следующих трех критериев:

Даты с фиксированным номером недели

Для всех лет 8 дней имеют фиксированный номер недели ISO (между W01 и W08) в январе и феврале. За исключением високосных лет, начинающихся в четверг, даты с фиксированными номерами недель встречаются во всех месяцах года (по 1 дню каждой недели ISO W01 по W52).

В високосные годы, начинающиеся в четверг (т. е. 13 лет с номерами 004, 032, 060, 088, 128, 156, 184, 224, 252, 280, 320, 348, 376 в 400-летнем цикле), номера недель ISO увеличиваются на 1 с марта до конца года. В последний раз это произошло в 1976 и 2004 годах, а в следующий раз это произойдет в 2032 году. Эти исключения происходят между годами, которые чаще всего отстоят друг от друга на 28 лет или на 40 лет для 3 пар последовательных лет: с 088 по 128 год, с 184 по 224 год и с 280 по 320 год. Они никогда не будут отстоять друг от друга на 12 лет. Единственные високосные годы, которые могут отстоять друг от друга на 12 лет, — это високосные годы, начинающиеся в воскресенье, вторник, среду и пятницу.

День недели для этих дней связан с алгоритмом "Судного дня" , который вычисляет день недели, на который приходится последний день февраля. Даты, перечисленные в таблице, все наступают через один день после Судного дня, за исключением января и февраля високосных лет, когда даты сами являются Судными днями. В високосные годы номер недели является порядковым номером ее Судного дня .

Равные недели

Некоторые пары и тройки недель ISO имеют одинаковые дни месяца:

Некоторые другие недели, например, W09, W19–W26, W31 и W35, никогда не делят порядковые номера дней месяца с другими неделями того же года.

Преимущества

Отличия от других календарей

Солнечные астрономические явления, такие как равноденствия и солнцестояния , изменяются в григорианском календаре в диапазоне, охватывающем три дня, в течение каждого 400-летнего цикла, в то время как календарь ISO Week Date имеет диапазон, охватывающий 9 дней. Например, мартовские равноденствия приходятся на 1920-W12-6 и 2077-W11-5 в UT.

Номер года недели ISO очень часто отличается от номера года по григорианскому календарю для дат, близких к 1 января. Например, 29 декабря 1986 года — это ISO 1987-W01-1, т. е. это 1987 год, а не 1986. Ошибка программирования, путающая эти два номера года, вероятно, является причиной того, что некоторые пользователи Android Twitter не могут войти в систему около полуночи 29 декабря 2014 года по UTC . [2]

Недельный календарь ISO опирается на григорианский календарь , который он дополняет, чтобы определить день нового года (понедельник недели 01). В результате дополнительные недели распределяются по 400-летнему циклу в сложной, на первый взгляд случайной схеме. (Однако относительно простой алгоритм для определения того, имеет ли год 53 недели только по его порядковому номеру, показан в разделе «Недели в году» выше.) Большинство предложений по реформе календаря, использующих дизайн високосных недель, стремятся упростить и гармонизировать эту схему, некоторые выбирают другой високосный цикл (например, 293 года).

Не во всех частях света неделя начинается с понедельника. Например, в некоторых мусульманских странах обычная рабочая неделя начинается в субботу, а в Израиле — в воскресенье. В большинстве стран Америки, хотя рабочая неделя обычно определяется как начинающаяся в понедельник, календарная неделя часто считается начинающейся в воскресенье.

Алгоритмы

Вычисление номера недели по порядковой дате

Номер недели (WW или woy для week of year ) любой даты можно вычислить, учитывая ее порядковую дату (т. е. день года, doy или DDD, 1–365 или 366) и ее день недели (D или dow , 1–7). При использовании серийных номеров для дат (например, в электронных таблицах), doy — это серийный номер даты за вычетом серийного номера 31 декабря предыдущего года или, в качестве альтернативы, за вычетом серийного номера 1 января того же года плюс один.

Алгоритм
  1. Вычтите номер дня недели из порядкового номера дня в году.
  2. Добавьте 10.
  3. Разделите на 7, остаток отбросьте.
    • Если полученный таким образом номер недели равен 0, это означает, что данная дата относится к предыдущему (недельному) году.
    • Если получен номер недели 53, необходимо проверить, не попадает ли дата на первую неделю следующего года.
Формула

Расчет номера недели по месяцу и дню месяца

Если порядковая дата неизвестна, ее можно вычислить по месяцу (MM или moy ) и дню месяца (DD или dom ) любым из нескольких методов, например, с помощью таблицы, подобной следующей.

Пример
Найдите номер недели субботы 5 ноября 2016 года (високосный год):
  • Сначала найдите порядковый номер дня:
moy = 11 dom = 5 leap = 1 add = 305, из таблицы doy = 305 + 5 = 310.
  • В качестве альтернативы можно использовать порядковые номера дней в электронной таблице:
off = 42369, т.е. 31 декабря 2015 г. день = 42679 doy = 42679 − 42369 = 310.
  • Наконец, найдите номер недели:
dow = 6, т.е. суббота woy = (10 + 310 − 6) div 7 woy = (320 − 6) div 7 woy = 314 div 7 = 44.

Вычисление порядковой или месячной даты из недельной даты

Алгоритм
  1. Умножьте номер недели на 7.
  2. Затем добавьте номер дня недели.
  3. Из этой суммы вычтите поправку за год:
    • Получите будний день 4 января.
    • Добавьте 3.
  4. Результатом является порядковая дата, которую можно преобразовать в календарную дату.
    • Если полученная таким образом порядковая дата равна нулю или отрицательна, то дата относится к предыдущему календарному году;
    • если оно больше количества дней в году, то оно относится к следующему году.
Формула

Другие системы нумерации недель

В системе США недели идут с воскресенья по субботу, а также неполные недели в начале и конце года, то есть 52 полных и 1 неполная неделя из 1 или 2 дней, если год начинается в воскресенье или заканчивается в субботу, 52 полных и 2 однодневные недели, если високосный год начинается в субботу и заканчивается в воскресенье, в противном случае 51 полная и 2 неполные недели. Преимущество заключается в том, что не требуется отдельная нумерация лет, как в году ISO. Соответствие лексикографического порядка и хронологического порядка сохраняется (как и в нумерации ISO год-неделя-день недели), но неполные недели делают некоторые вычисления еженедельной статистики или платежей неточными в конце декабря или начале января или в обоих случаях.

Календарь вещания США определяет неделю, содержащую 1 января (и начинающуюся с понедельника), как первую неделю года, но в остальном работает как нумерация недель ISO без частичных недель. До шести дней предыдущего декабря могут быть частью первой недели года.

В бухгалтерском учете США используется сочетание этих двух вариантов, когда недели начинаются в воскресенье, а «содержащая 1 января» определяет первую неделю, в результате чего получается система, в которой год также имеет 52 или 53 недели.

Ссылки

  1. ^ Гент, Роберт Х. "Математика календаря ISO 8601". Архивировано из оригинала 2018-12-24 . Получено 2011-08-17 .
  2. ^ «Twitter выгоняет пользователей приложения Android на пять часов из-за ошибки даты 2015 года». The Guardian . 29 декабря 2014 г.

Внешние ссылки