月末の日付を求める
Dateクラスで来月の1日の前日を求める方法
今月(2009年12月)
groovy:000> d = new Date(); new Date(d.year,d.month+1,1-1).date ===> 31
来月(2010年1月)
groovy:000> d = new Date(); new Date(d.year,d.month+2,1-1).date ===> 31
再来月(2010年2月)
groovy:000> d = new Date(); new Date(d.year,d.month+3,1-1).date ===> 28
月指定(2012年2月)
groovy:000> d = new Date("2012/2/1"); new Date(d.year,d.month+1,1-1).date ===> 29
CalendarクラスのgetActualMaximumメソッドを使う方法
今月(2009年12月)
Calendar.getInstance().getActualMaximum(Calendar.DATE);
来月(2010年1月)
groovy:000> cal = Calendar.getInstance(); cal.add(Calendar.MONTH,1);cal.getActualMaximum(Calendar.DATE); ===> 31
再来月(2010年2月)
groovy:000> cal = Calendar.getInstance(); cal.add(Calendar.MONTH,2);cal.getActualMaximum(Calendar.DATE); ===> 28
月指定(2012年2月)
groovy:000> cal = Calendar.getInstance(); cal.set(Calendar.YEAR,2012);cal.set(Calendar.MONTH,Calendar.FEBRUARY);cal.getActualMaximum(Calendar.DATE); ===> 29