challenge 除算・余剰を使わずに閏年

ある西暦が閏年か否かを判定するプログラムを書いてください。 ただし、除算・余剰を求める演算子、組み込み関数、ライブラリ関数等を使用してはいけません。 また、閏年は以下のように定義されています。 1. 西暦年が4で割り切れる年は閏年 2. ただし、西暦年が100で割り切れる年は平年 3. ただし、西暦年が400で割り切れる年は閏年

Posted feedbacks - PHP

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
//グレゴリオ暦における閏年かどうかを返す
//1. 西暦年が4で割り切れる年は閏年
//2. ただし、西暦年が100で割り切れる年は平年
//3. ただし、西暦年が400で割り切れる年は閏年
//@param string $y YYYY
//@return bool  
//checkdate('2','29',$y);
function is_leap($y) {
    $c = array(400,100,4);
    foreach ($c as $v) {
        $i = $y;
        while ($i >= $v) {
            $i -= $v;
            if ($i === 0) {
                if ($v === 100) {
                    return false;
                } else {
                    return true;
                }
            }
        }
    }
    return false;
}

Index

Feed

Other

Link

Pathtraq

loading...