うるう年かどうかを自分で計算しないために
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/perl use strict; use warnings; use Date::Simple qw(); sub is_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' def leapyear?(year) Date.new(year).leap? end
うわ! rubyのは何だかすごくcoolです。標準のDateクラスのインスタンスを年だけ指定して作れて、メソッドもleap?
驚き最小で驚いた。関数でラップすると逆に判りにくくなってしまっている感じさえします。