Groovyでお手軽にカレンダーを生成する
Groovyだと、2つの日付同士のレンジが..
で生成できるので非常にお手軽にカレンダーを生成することが出来ます。
うるう年もちゃんと考慮されるので、例えば以下のようなことが出来ます。
String df = "yyyy/MM/dd" // うるう年のある年 Date date1 = Date.parse(df, "2016/01/01") Date date2 = Date.parse(df, "2016/12/31") assert (date1..date2).size() == 366 List<Date> february2016 = (date1..date2).findAll {it.getAt(Calendar.MONTH) == 1} assert february2016.size() == 29 assert february2016.last() == Date.parse(df, "2016/02/29") // うるう年の無い年 Date date3 = Date.parse(df, "2017/01/01") Date date4 = Date.parse(df, "2017/12/31") assert (date3..date4).size() == 365 List<Date> february2017 = (date3..date4).findAll {it.getAt(Calendar.MONTH) == 1} assert february2017.size() == 28 assert february2017.last() == Date.parse(df, "2017/02/28")
非常にお手軽ですね!