2016-04-11 2 views
0

UNIX cal и ncal программы показаны 1700 CE в високосный год: $ cal 1700 (Feb показывает 29 дней). Общий алгоритм для целочисленной делимости на 4, 100 и 400 дает 1700 как общий год - Check if year is leap year in javascript (см. Ответ Меерсмана). С 1700 года после принятия григорианского календаря, что такое объяснение? Я использую Ubuntu точно.Почему программы unix cal и ncal показывают 1700 CE как високосный год?

+0

Вы знаете, что [Gregorian switch] (http://www.timeanddate.com/calendar/julian-gregorian-switch.html) не произошло одновременно во всех странах? Например, в Швеции это произошло до 1700 года (http://www.timeanddate.com/calendar/?year=1700&country=21), но в [Великобритании это произошло после] (http://www.timeanddate.com/calendar /? year = 1700 & country = 9) –

+0

Я этого не знал. Благодаря! –

+0

Иоахим, это был ответ, который мне нужен. Еще раз спасибо! –

ответ

0

Как и многие другие программы, JavaScript модели proleptic Gregorian Calendar для простоты. Так делают спецификации, такие как ISO 8601. Однако, похоже, что программное обеспечение cal этого не делает. Она моделирует Джулиан григорианскому переключения на, как описано in the docs:

калибровочная утилита должны написать календарь на стандартный вывод, используя юлианский календарь для дат с 1 января с 1 по 2 сентября 1752 года и григорианский календарь для даты с 14 сентября 1752 по 31 декабря 9999, как будто григорианский календарь был принят 14 сентября 1752 года

по the Julian calendar, високосный год происходит просто каждые четыре года, и, таким образом, 1700 действительно скачок год.

Также обратите внимание, что авторы cal решили использовать дату 1752 года, когда Британская империя приняла григорианский календарь, но this date varies considerably by country.

+0

Спасибо, Мэтт. Не знаю, почему я не читал документы !? Очень информативный ответ. –