Форум: "Прочее";
Текущий архив: 2014.10.05;
Скачать: [xml.tar.bz2];
ВнизДень недели Найти похожие ветки
← →
Дмитрий СС (2014-02-27 17:01) [0]Попалась мне статья Алгоритм_вычисления_дня_недели:
http://ru.wikibooks.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%B2%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B4%D0%BD%D1%8F_%D0%BD%D0%B5%D0%B4%D0%B5%D0%BB%D0%B8
Там Код:
function WhatDay(Year: Integer; Month: Integer; Day: Integer):integer;
var a,y,m: integer;
begin
a := (14 - Month) div 12;
y := year - a;
m := month + 12 * a - 2;
Result := (7000 + (day + y + y div 4 - y div 100 + y div 400 + (31 * m) div 12)) mod 7;
end;
Бросилось в глаза: (7000 + x) mod 7.
Какой смысл прибавлять 7000, если на результат не влияет?
← →
clickmaker © (2014-02-27 17:06) [1]а откуда магическое число 14?
← →
clickmaker © (2014-02-27 17:08) [2]очередной велосипед с квадратными колесами? есть же DayOfTheWeek
← →
Inovet © (2014-02-27 17:15) [3]Удалено модератором
← →
Дмитрий СС (2014-02-27 19:45) [4]
> а откуда магическое число 14?
Все с той же ссылки. Там несколько примеров на разных языках. Вот меня и интересует зачем это писать.
← →
antonn © (2014-02-27 19:50) [5]
> а откуда магическое число 14?
видимо такой финт для выделения февраля и "високосности"
← →
MBo © (2014-02-27 21:18) [6]>Какой смысл прибавлять 7000, если на результат не влияет?
От отрицательных чисел страховка
← →
Дмитрий СС (2014-02-28 01:54) [7]
> От отрицательных чисел страховка
Но в данном случае второе слагаемое не может быть отрицательным. (если не принимать в расчет отрицательные года, конечно, но при достаточно маленьком годе и 7000 не спасет)
← →
MBo © (2014-02-28 08:32) [8]От сотворения мира, наверное, пляшут :)
Других причин вводить 7000 я не вижу.
← →
clickmaker © (2014-02-28 08:42) [9]> Других причин вводить 7000 я не вижу
возможно, автор - фанат Валерия Сюткина
← →
Inovet © (2014-02-28 09:59) [10]> [9] clickmaker © (28.02.14 08:42)
> возможно, автор - фанат Валерия Сюткина
Это что там? Посмотрел - действительно 7000, это для размера впихнуто, подходят также 5000 и 6000, видимо максимальное взято. Можно было более реальное 11500 одиннадцать пятьсот, и не уточнять "над землёй", и так дальше понятно. И в целое влазит, даже в короткое знаковое.
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2014.10.05;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.002 c