Проверка, високосный год или нет. Вычисление дня недели
- год делится на 400 -> високосный -> конец;
- год делится на 100 -> не високосный -> конец;
- год делится на 4 -> високосный -> конец;
- год не високосный -> конец;
- всё.
А вот моя программка для определения дня недели. Кому надо - разберется. Работает вроде до 2100 года.
(* Вычисление дня недели в приложениях автоматического вычисления дня недели в датах от 1996 года и старше. Copyright (C) Sergei Frolov, 1998. v1.0 Jan, 4, 1998. Программа ориентирована на применение в приложениях, написанных на языке ассемблера без использования аппаратного умножения/деления и операций с плавающей запятой. *) program denned; const YEARS : array[0.. 3] of byte = (0, 2, 3, 4); MONTHS : array[1..12] of byte = (0, 3, 3, 6, 1, 4, 6, 2, 5, 0, 3, 5); DAYOFWEEKS : array[0..6] of string = ('Воскресенье', 'Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота'); var a, b, c, d, e, f, tmp : byte; day, month, year : word; begin repeat write('Число XX -> '); readln(day); if day = 0 then break; { выход } write('Месяц XX -> '); readln(month); write('Год XXXX -> '); readln(year); tmp := year - 1996; a := tmp and 3; b := (tmp shr 2) + (tmp and $FC); c := MONTHS[month]; if (a = 0) and (month > 2) then inc(c); a := YEARS[a]; e := (a + b + c + day) mod 7; writeln('Результат: ', DAYOFWEEKS[e]); writeln; until false; end.
Оставить комментарий
Комментарии
1.
+0 / -57
10 января 2006, 15:12:11
<?php
//setlocale по вкусу...
echo date("w l",strtotime("2005-04-17"));
?>
ps. l (lowercase L)
ну или бронебойней:
<?php
$d="17/04/2005";
echo RuWDay($d);
function RuWDay($d){
switch(date("w",strtotime($d))){
case 0: return "воскресенье";break;
case 1: return "понедельник";break;
case 2: return "вторник";break;
case 3: return "среда";break;
case 4: return "четверг";break;
case 5: return "пятница";break;
case 6: return "суббота";break;
}
}
?>
//setlocale по вкусу...
echo date("w l",strtotime("2005-04-17"));
?>
ps. l (lowercase L)
ну или бронебойней:
<?php
$d="17/04/2005";
echo RuWDay($d);
function RuWDay($d){
switch(date("w",strtotime($d))){
case 0: return "воскресенье";break;
case 1: return "понедельник";break;
case 2: return "вторник";break;
case 3: return "среда";break;
case 4: return "четверг";break;
case 5: return "пятница";break;
case 6: return "суббота";break;
}
}
?>