- ベストアンサー
うるう年の出し方で
うるう年の2月のときは処理をさせると考えて、 if(((($year%4==0) && ($year%100!=0)) || ($year%400==0))&&($man==2)){ } では中の処理をしてくれませんでした。 ご指摘をお願いします
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
ロジックとしては、 「4で割り切れるが100では割り切れない、か、400で割り切れる」且つ 「2月である」という記述になっているので、問題ないはずです。 私のところでは、正常に動作しました。 ということは、$year か $man に正しい値が入っていないのではないでしょうか? 例えば、localtime 関数で取得した $year をそのまま使っているとかはないですよね? 一度ご確認されることをおすすめします。
その他の回答 (3)
- yamma
- ベストアンサー率27% (29/107)
回答No.4
$year=400; $man=2; print $year%4; print $year%100; print $year%400; if(((($year%4==0) && ($year%100!=0)) || ($year%400==0))&&($man==2)){ print "ok"; } で000OKが表示されることを確認しました。(000は余) デバッグモードで実行してみてはいかがですか?
- nonchi
- ベストアンサー率43% (16/37)
回答No.3
#1で、変なこと書いてごめんなさい。 カッコを見落としていました。
- nonchi
- ベストアンサー率43% (16/37)
回答No.1
「年が4で割り切れて100では割り切れない」か、 「年が400で割り切れて月が2月」だったら になっていますが、一つ目の条件には「月」は要らないの?