• ベストアンサー

うるう年の出し方で

うるう年の2月のときは処理をさせると考えて、 if(((($year%4==0) && ($year%100!=0)) || ($year%400==0))&&($man==2)){ } では中の処理をしてくれませんでした。 ご指摘をお願いします

質問者が選んだベストアンサー

  • ベストアンサー
  • 2nd
  • ベストアンサー率30% (19/63)
回答No.2

ロジックとしては、 「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月」だったら になっていますが、一つ目の条件には「月」は要らないの?