閏年(うるうどし)かどうかを判定する
閏年の判定方法は以下のようになります。
まず、4で割り切れるかどうかを判定します。4で割り切れるということが閏年であることの必要条件です。4で割り切れなければ閏年ではありません。
閏年(うるう年)かどうかを判定するサンプルです。use strict; use warnings; # 1900年は閏年でない、2000年は閏年、2003は閏年でない、2004年は閏年。 print "(1)閏年の判定を行う。\n"; my @years = (1900, 2000, 2003, 2004); for my $year (@years) { if (is_leap_year($year)) { print "$year年は閏年です。\n"; } else { print "$year年は閏年ではありません。\n"; } } # 閏年を判定する関数。 sub is_leap_year { my $year = shift; # 4で割り切れなければ閏年ではない。 return if $year % 4; # 100で割り切れ、かつ400で割り切れなければ # 閏年ではない。 return if !( $year % 100 ) && ( $year % 400 ); # それ以外は閏年。 return 1; }
閏年(うるう年)かどうかを判定する。
閏年の判定方法は以下のようになります。
まず、4で割り切れるかどうかを判定します。4で割り切れるということが閏年であることの必要条件です。4で割り切れなければ閏年ではありません。
return if $year % 4;
上記の判定で4で割り切れたものだけが残されます。サンプルの例でいうと ( 1900, 2000, 2003, 2004 ) のうち、( 1900, 2000, 2004 ) が残ります。
次に「100で割り切れてかつ400で割り切れない」という判定をします。この条件に合致するものは閏年ではありません。この条件に合致するのは1900です。
return if !( $year % 100 ) && ( $year % 400 );
上記の判定で、( 2000, 2004 )が残ります。これらが閏年です。