Потребител беседа:Borislav/2003
от Уикипедия, свободната енциклопедия
Архивирани версии на Потребител беседа:Borislav*: ′03 – ′04 – ′05 – ′06
[редактиране] Формули
Здравей, Борка,
Ето ти две формули за откриване кой ден от седмицата започва годината:
<?php
function is_leap($n) {
if ($n > 1582) {
if ($n % 4 == 0 && ($n%100>0 || $n%400==0) )
return 1; // $n е високосна
else return 0;
} else {
if ($n % 4 == 0) return 1; // $n е високосна
else return 0;
}
}
// returns 0=неделя, 1=понед. и т.н.
function get_day($annee, $mois=1, $jour=1) {
// дава всяка дата; auduteau($godina) дава 1 януари;
// formule trouve'e sur auduteau.net, en JavaScript/php par moi.
$a = floor((14 - $mois) / 12);
$y = $annee - $a;
$m = $mois + 12 * $a - 2;
$dateNb = $jour + 100 * $mois + 10000 * $annee;
if ($dateNb <= 15821004)// Calendrier Julien:
$d = (5 + $jour + $y + floor($y/4) + floor((31*$m)/12)) % 7;
else
if ($dateNb >= 15821015)// Calendrier Grйgorien:
$d = ( $jour + $y + floor($y/4) - floor($y/100) + floor($y/400)
+ floor((31*$m)/12) ) % 7;
else $d = -1;//спец. календар за 1582 г.
return $d;
}
?>
За годините преди н.е. няма смисъл, те не са точни. То и след това не са: консулът в Ница, който закача пролетното равноденствие на 21 март е през 365 г., но календарът е всъщност фиксиран чак през 525; преди това има доста грешки: напр. годините 1-6 са били всичките нормални, а между 459 и 464 имало 4 високосни години!! 5ko 10:55, 27 дек 2003 (UTC)
- Петко, благодаря ти за кода! --Borislav 13:05, 27 дек 2003 (UTC)

