読者です 読者をやめる 読者になる 読者になる

No Programming, No Life

新しいNPNLです。http://d.hatena.ne.jp/fumokmm/ から引っ越してきました。

Groovyによるうるう年チェック

Groovy 小ネタ Java

はじめに

Javaによるうるう年チェック - お仕事の備忘録みたいなもの で画期的なうるう年判定を行っていた。
それは、

java.util.Calendar#getActualMaximum(Calendar.DAY_OF_YEAR)

を使うというもの。

この組み合わせで取得できるのは、その年の取りうる最大日数となるので、これが366日になる年はうるう年だと判定してよいことになる。

Groovyで実装してみる

Javaでの実装は引用元に任せるとして、Groovyで実装してみた。

  • Groovyらしく、IntegerにisLeapYearメソッドを追加定義してみました
  • getActualMaximum使うのも面倒だったので、12/31のDAY_OF_YEARを取得する戦略にしています
  • 使い方は 2012.leapYear とかでOK*1

*1:2012.leapYear は 2012.isLeapYear() の略記法で、プロパティとしてアクセスしています。