35 Заблуждений о Дате и Времени. Начало
Дата и время – наверняка «любимый» тип данных очень многих программистов. В этой серии постов рассмотрим заблуждения о дате и времени. Просто факты, без объяснений, которые возможно и не пригодятся вам в повседневной работе, но всё-таки, думаю, что будет полезно иметь в виду.
1. Все используют один и тот же календарь
Не все страны перешли на григорианский календарь одновременно. Франция, Испания, Италия и некоторые другие страны перешли 15 октября 1582 года. Британская империя - в сентябре 1752. Россия не переходила до 1917, Греция - до 1923, а Садовская Аравия и вовсе перешла только в 2016 году.
В некоторых культурах используются разные календари, основанные на лунных, а не на солнечных циклах, или на комбинации лунных и солнечных.
2. 1 год = 12 месяцев
В некоторых календарях используются високосные месяцы, поэтому в году может быть 13 месяцев. В .NET BCL DateTimeFormat.GetMonthName принимает значение от 1 до 13 для поддержки календарных систем с високосными месяцами, например реализованных классами
JewishCalendar и EastAsianLunisolarCalendar. В еврейском календаре Адар является 6-м месяцем обычного года, который становятся Адар 1 и Адар 2 (месяцы 6 и 7) в еврейском високосном году.3. В году 365 дней
В високосном году 366 дней.
4. В году 365 или 366 дней
В прошлом были различные примеры, когда некоторые страны меняли свой календарь. В этом случае год может быть короче. Например, Великобритания изменила свой календарь в 1752 году, и в сентябре не хватает нескольких дней:
Su Mo Tu We Th Fr SaДругим примером является Самоа, где изменили часовой пояс в 2011. В этом году пятницы, 30 декабря, не существует. Поскольку 2011 год не високосный, в том году было всего 364 дня.
1 2 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
TimeZoneInfoЕврейский календарь является лунным календарем. Лунные месяцы короче солнечных. Таким образом, каждые несколько лет они добавляют дополнительный месяц. Таким образом, вы получаете год короче 365 дней, а затем год с дополнительным месяцем в 380 с чем-то дней.
.FindSystemTimeZoneById("Pacific/Apia")
.IsInvalidTime(new DateTime(2011, 12, 30)));
// True
5. Дни идут подряд
Если вы посмотрите на календарь из п.4 то увидите, что это не так. После 2го сентября идёт 14е.
6. За пятницей всегда следует суббота
Опять же, в календаре из п.4 дни идут не подряд. За пятницей 16 идёт воскресенье 17.
7. Високосные года идут каждые 4 года
Год должен делиться на 4 без остатка. Если год также можно без остатка разделить на 100, это не високосный год. Если только год не делится на 400 без остатка. Тогда это високосный год:
1900 год не високосный
2000 год високосный
2020 год високосный
8. Кто угодно может правильно реализовать логику високосных годов
Excel ошибочно предполагает, что 1900 год является високосным, и причина этой ошибки хорошо объяснена в документации.
9. GMT совпадает с UTC
Всемирное координированное время (UTC) — это международная шкала времени, рекомендованная Международным бюро мер и весов (BIPM) в качестве базисного времени.
Среднее время по Гринвичу (GMT) — это часовой пояс, который является средним солнечным временем в Королевской обсерватории в Гринвиче, Лондон. Это соответствует UT1, солнечному времени на 0° долготы.
Разница во времени между UTC и GMT составляет доли секунды. Поэтому для общих целей оба времени считаются одинаковыми. Но эта разница важна для научных целей.
Продолжение следует…
Источник: https://www.meziantou.net/misconceptions-about-date-and-time.htm