0

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,但没有得到任何东西。

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

4

3 回答 3

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

于 2012-06-29T12:37:12.993 回答
0

“作弊”的做法:

int daysInCurrentMonth = new Date(year-1900, month+1, 0).getDate();

IE

int daysInJanuary2014 = new Date(114, 1, 0).getDate();

基本上将Date对象设置为0th下个月的日期,然后获取该月的日期。

注意Date(int year, int month, int date)期望year=calendarYear-1900(即 2014=114)和月份是0-based(即 1 月将是第 0 个月)

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

于 2014-08-14T18:59:56.943 回答
-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);

在你的代码中......它工作。

于 2017-10-25T14:15:37.627 回答