.note | Leap Years

Долго размышлял отчего 2000ый год был високосным (ибо по моим соображениям он НЕ должен был им быть, так как в любой средней школе детям всегда вбивали в голову, что все что одновременно делится на 4 и на 100 високосным не является).

Оказывается, в Григорианском календаре високосность года определяется по следующему логическому заключению:

  • Если год делится на 4, то это високосный год 
  • Кроме тех, что делятся на 100 (пр. 1800 — НЕ високосный год)
  • Кроме тех, где тысяча лет делится на 4 (пр. 2000 — високосный)
  • Кроме тех, что делятся на 4000 (пр. 4000 или 8000 — НЕ високосный год)

Всё это потому, что в году всего 365.2425 дней, и надо время от времени корректировать календарь. Не будем вдаваться в сложности постепенного замедления вращения планеты и прочие мелочи :)

Кстати, многим точнее являются лунные календари, например Мусульманский и Еврейский, но, алас, там логика многим сложнее!

Top

Слова: думки

Комментарии Отключены

Stanislav

Год является високосным, если он кратен 4 и из того, что он кратен 100, следует, что он кратен 400. Год не является високосным, если из того, что он кратен 4, следует, что он кратен 100 и не кратен 400.
ссылка ]

16.01.2006 // 02:55 [ ссылка ]

Латрек

1. вИсокосный

2. 2000г заканчиват 2е тысячелетие. 2 на 4 не делится. Очевидно речь шла о столетиях

16.01.2006 // 03:09 [ ссылка ]

Ответ от Автора

2000 делится на 4 :) после столетий применяется двойная коррекция в тысячилетиям, потом каждые 4000 лет

16.01.2006 // 10:08 [ ссылка ]

Kolo

Как все запутанно...

16.01.2006 // 07:24 [ ссылка ]

Дмитрий К

В коде на C:

is_leap = year%4==0 && (year%100!=0

year%400==0)
ссылка ]

is_leap = YEAR%4==0 && YEAR%100!= 0

YEAR%400==0
ссылка ]

Собственно, выражения тождественные, поскольку любое число, делящееся на 400, будет делиться и на 4.

16.01.2006 // 09:02 [ ссылка ]

Ответ от Автора

2000ый получается не должен быть високосным :-) а был

16.01.2006 // 11:17 [ ссылка ]

rAlex

Вот поэтому и возникала шумиха с Y2K... помнишь? :)

16.01.2006 // 11:34 [ ссылка ]

Дмитрий К

Блин, в сообщении выкусили логический оператор "или" (две вертикальные палочки).

To author: надо бы сделать предпросмотр постов.

is_leap = year%4==0 and (year%100!=0 or year%400==0)

is_leap = YEAR%4==0 and YEAR%100!= 0 or YEAR%400==0

17.01.2006 // 09:43 [ ссылка ]

Oleg Мартuk

Вроде как, еще есть дополнительные секунды. И 31 февраля было 3 раза в истории

16.01.2006 // 10:28 [ ссылка ]

Латрек

В тексте было "где тысячелетие делится на 4"

Тысячелетие - ВТОРОЕ

2 на 4 не делится

16.01.2006 // 11:16 [ ссылка ]

Ответ от Автора

тысяча лет :)

16.01.2006 // 11:17 [ ссылка ]

Комментарий Удалён

Ответ от Автора

эээ — что-то только hello стало больше положенного — как это — можно подробнее?

16.01.2006 // 16:42 [ ссылка ]

whatever

О, значит заинтересовало ! Смотри: если в теге <b> прописать стиль <b> style="font-size:90px"> Ля-Ля-Ля </> То InTerra его схавает. Второй пример я не стал вставлять кодом, потому что это было-бы просто западло, если интересно, вставь его в качестве комментария, а потом попробуй перейти по ссылке, по-моему поможет только Ctrl+Alt+Del. Я думаю нужно закрыть такую возможность, и разрешить только полное совпадение с <b> . Я новичок в PHP и взял твой движок в качестве примера кода, а он не прошёл проверку на вшив... не, всё нормально, даже кое-что для себя взял хорошего.

18.01.2006 // 16:21 [ ссылка ]

Ответ от Автора

странно это, потому как комменты вроде проходят через парсер safeHTML :)

пойду жаловаться кукутцу %)

18.01.2006 // 16:41 [ ссылка ]