Question

What is counter part of this code in 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;

 }

Thanks in advance for your help.

I want to get the number of days of a month in the client side. I searched Google and StackOverFlow but didn't get anything.

for example Feb has 29 days, Match has 31 days and so on ...

Was it helpful?

Solution

I don't know a direct way, but you can calculate this value by adding one month to your date, and then calcualting the difference in days:

final Date myDate = ...;

final Date copyOfDate = CalendarUtil.copyDate(myDate);
CalendarUtil.addMonthsToDate(copyOfDate, 1);

final int daysBetween = CalendarUtil.getDaysBetween(myDate, copyOfDate);

Note: This even works if myDate is something like 2012-01-31. copyOfDate is then 2012-03-02 (because february doesn't have 31 days), and the result is correct again.

OTHER TIPS

"Cheating" way to do it:

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

I.E.

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

basically set the Date object to the 0th day of the NEXT month, then get the day of the month.

NOTE: Date(int year, int month, int date) expects year=calendarYear-1900 (i.e. 2014=114) and month is 0-based (i.e. January would be month 0)

and yes, I know this constructor is deprecated, but I still use it.

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

In your code... it work.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top