如何使用GWT获取一个月内的天数或天数?

时间:2012-06-29 10:32:18

标签: gwt gwt-2.4

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;

 }

提前感谢您的帮助。

我想获得客户端一个月的天数。我搜索了谷歌和StackOverFlow,但没有得到任何东西。

例如2月有29天,比赛有31天等等......

3 个答案:

答案 0 :(得分:2)

我不知道直接的方法,但您可以通过在您的日期中添加一个月来计算此值,然后计算天数差异:

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天),结果再次正确。

答案 1 :(得分:0)

“作弊”的方式:

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月)

是的,我知道这个构造函数已被弃用,但我仍然使用它。

答案 2 :(得分:-1)

        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);

在你的代码中......它有用。