GWT中这段代码的对应部分是什么?
public int returnAllDaysOf(2012,6){
Calendar calendar = Calendar.getInstance();
calendar.set(2012, Calendar.FEBRUARY, 1);
int daysOfFeb = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
return daysOfFeb;
}
提前感谢您的帮助。
我想在客户端获取一个月的天数。我搜索了Google和StackOverFlow,但没有得到任何东西。
例如,2 月有 29 天,匹配有 31 天,依此类推......
直接的方法,但是您可以通过在日期上添加一个月,然后计算天数差来计算此值:
final Date myDate = ...;
final Date copyOfDate = CalendarUtil.copyDate(myDate);
CalendarUtil.addMonthsToDate(copyOfDate, 1);
final int daysBetween = CalendarUtil.getDaysBetween(myDate, copyOfDate);
注意:如果 myDate 是 2012-01-31,这甚至有效。 copyOfDate 是 2012-03-02(因为 2 月没有 31 天),结果再次正确。
"作弊"方式:
int daysInCurrentMonth = new Date(year-1900, month+1, 0).getDate();
即
int daysInJanuary2014 = new Date(114, 1, 0).getDate();
基本上将Date
对象设置为 NEXT 月份的0th
日,然后获取月份中的某一天。
注:Date(int year, int month, int date)
预计year=calendarYear-1900
(即2014=114),月份为0-based
(即1月为第0个月)
是的,我知道这个构造函数已被弃用,但我仍然使用它。
DateField dfMois = new DateField();
Calendar calendar = Calendar.getInstance();
calendar.setTime(dfMois.getValue());
Date date = dfMois.getValue();
Date dateCopy = dateFin;
dateCopy.setDate(calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
if(date.getMonth() == Calendar.FEBRUARY + 1){
date.setDate(31 - dateCopy.getDate());
date.setMonth(date.getMonth()-1);
}
else{
date.setDate(dateCopy.getDate());
}
dfMois.setValue(date);
在您的代码中...它有效。