как получить минимальную и максимальную дату из данного месяца в Java - PullRequest
2 голосов
/ 12 апреля 2011

как получить минимальную и максимальную дату из данного месяца в java, используя java.util.Calendar.

Ответы [ 5 ]

5 голосов
/ 12 апреля 2011

Минимум всегда 1-го числа этого месяца.Максимум можно определить, добавив 1 к месяцу и вычтя 1 из поля календарного дня.

3 голосов
/ 12 апреля 2011

Это можно сделать следующим образом:

c = ... // get calendar for month you're interested in     
int numberOfDays = c.getActualMaximum(Calendar.DAY_OF_MONTH)

Вы можете найти минимальное и максимальное значения одинаково для любого из компонентов даты.

1 голос
/ 12 апреля 2011

Минимальная дата всегда равна 1, а максимальную дату можно рассчитать как

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
        Calendar calendar = Calendar.getInstance();

        int year = 2010;
        int month = Calendar.FEBRUARY;
        int date = 1;
        int maxDay =0;  

        calendar.set(year, month, date);
        System.out.println("First Day: " + formatter.format(calendar.getTime()));

        //Getting Maximum day for Given Month
        maxDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);

        calendar.set(year, month, maxDay);  
        System.out.println("Last Day: " + formatter.format(calendar.getTime()));

Надеюсь, это поможет

1 голос
/ 12 апреля 2011

Вы пробовали следующее?

После установки объекта календаря на желаемый месяц,
calendar.getActualMaximum (Calendar.DATE);

Для минимума, я полагаю, он всегда первый.

Надеюсь, это поможет.

0 голосов
/ 17 марта 2017

Я получил решение, как показано ниже,

public void ddl_month_valueChange(ValueChangeEvent event) {
 int v_month = Integer.parseInt(event.getNewValue().toString()) - 1; 
 java.util.Calendar c1 = java.util.Calendar.getInstance(); 
 c1.set(2011, v_month, 1); 
 Date d_set_att_from = c1.getTime(); 
 cal_att_from_date.setValue(d_set_att_from);
 c1.add(java.util.Calendar.MONTH, 1);
 c1.add(java.util.Calendar.DATE, -1); 
 Date d_set_att_to = c1.getTime();
 cal_att_to_date.setValue(d_set_att_to);  }
...