うるう年かどうかを自分で計算しないために
2007/06/09
なんかのシステムを作るとき閏年というものは鬱陶しいですが、閏年の計算式を暗記してるなんて脳味噌のスペース勿体無いです。
毎回、実装するなんて車輪です。自分で二の足を踏まないためにも、各言語で閏年の判定方法を集めてみました。
java
import java.util.GregorianCalendar;public class Leap {public static boolean isLeapYear(int y) {return new GregorianCalendar().isLeapYear(y); } }
PHP5
<?php//PHP5のみfunction is_leap_year($year) {return idate("L", strtotime("1st January$year"));}?>
perl
#!/usr/bin/perluse strict;use warnings;useDate::Simple qw();subis_leap_year{return Date::Simple::leap_year(shift); }
C#
using System;//コンパイル環境が無くてコンパイルしてない;;public class LeapYear {public static bool IsLeapYear(int year) {return DateTime.IsLeapYear(year)); } }
ruby
require 'date'defleapyear?(year)Date.new(year).leap?end
うわ! rubyのは何だかすごくcoolです。標準のDateクラスのインスタンスを年だけ指定して作れて、メソッドもleap?
驚き最小で驚いた。関数でラップすると逆に判りにくくなってしまっている感じさえします。