memo.xight.org

日々のメモ

曜日を算出するには

Summary

  ツェラーの公式を利用する

サンプルソース 2000年1月1日の曜日を算出する

$y = 2000;
$m = 1;
$d = 1;
# 1月は13月,2月は14月とみなす
if ($m < 3) {
	--$y;
	$m+=12;
}
$w = ($y + int($y/4) - int($y / 100) + int($y/400) + int((13 * $m + 8) / 5) + $d) % 7;
print "\$w = $w\n";
# $w=6 つまり土曜日で正解です

Reference

  とほほのWWW入門 - ラウンジ - 2000年01月 - perlで曜日を算出するには
  http://tohoho.wakusei.ne.jp/lng/200001/00010015.htm