2012-06-29 1 views
0

Что такое часть этого кода в GWT?Как получить список дней или нескольких дней в месяц с 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, но ничего не получал.

, например, февраль 29 дней, матч 31 дня и так далее ...

ответ

2

я не знаю, прямой путь, но вы можете вычислить это значение, добавив один месяц до даты, а затем calcualting разницу в днях:

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 (потому что февраль не имеет 31 дня), и результат снова верен.

+0

кажется умным решением, я решил свою проблему другим способом, который проще, создав карту месяца и соответствующий номер дня :) спасибо за ответ в любом случае :) – Adelin

+3

ohk, но как насчет високосного года ..... ... –

0

"Обман" способ сделать это:

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

И.Е.

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

в основном установить Date объект в 0th день следующего месяца, а затем получить день месяца.

ПРИМЕЧАНИЕ: Date(int year, int month, int date) ожидает year=calendarYear-1900 (т.е. 2014 = 114) и месяц 0-based (т.е. январь будет месяц 0)

и да, я знаю, что этот конструктор является устаревшим, но я до сих пор используют его.

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

В вашем коде ... это работает.

+0

Это не совместимый с GWT код, календарь не эмулируется в GWT. –

 Смежные вопросы

  • Нет связанных вопросов^_^