ドゥアイネットのプログラマー、湯川が開発日記を綴ります。

CALENDAR
S M T W T F S
1234567
891011121314
15161718192021
22232425262728
293031    
<< December 2019 >>
ARCHIVES
CATEGORIES
<< 残り時間表示 | main | 今年の振り返り >>
うるう年の判定
 西暦の年が 4 で割り切れる年はうるう年になります。
なので2004年、2008年はうるう年です。

さらに条件があって以下にも該当しないとうるう年になりません。

100で割り切れる1900年などは、その年がさらに400
でも割り切れる場合のみうるう年。

誤差を解消するためにこのようになっているそうです。

言語によっては関数が用意されているものもあります。
Delphiや.NETだと「IsLeapYear」関数があります。

PHPではこの関数はないので以下のようにして判定しています。

以前書いた方法と同じく指定年の3/1から1日引いて、
2/29になったらうるう年と判定します。

if (date("d",strtotime("-1 day" ,strtotime("2008-03-01"))) == "29"){
  die("うるう年です。");
}
else{
  die("うるう年ではありません。");
}


実際、2100年まで100で割り切れないので4で割り切れたらうるう年でよさそうな感じはしますが、
少しでも不具合の元は残したくないので、きちんと判定しています。
| PHP | 15:01 | comments(0) | - |
コメント
コメントする