うるう年を判定する

うるう年を判定する3パターン

  • 除算の余りを求める
  • 除算を使わないで求める
  • Javaのメソッドで求める
def isLeapYear(y){
  println y
  println ((y % 4==0) && (y % 100!=0) || ( y % 400==0))
  println (((y & 3)==0) && (!("$y" ==~ /.*00$/ )) || ((y & 15)==0))
  println new GregorianCalendar().getInstance().isLeapYear(y)
}

isLeapYear(1900)
isLeapYear(2000)
isLeapYear(2008)
isLeapYear(2009)
isLeapYear(2100)
[c:\]groovy D:\workspace\groovy_SandBox\isLeapYear.groovy
1900
false
false
false
2000
true
true
true
2008
true
true
true
2009
false
false
false
2100
false
false
false

JavaでもisLeapYear()なんてメソッドあったのね。