java 如何在java中获取给定月份的最小和最大日期

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/5630797/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-30 12:00:07  来源:igfitidea点击:

how to get minimum and maximum date from given month in java

javadatetimecalendar

提问by Annu

how to get minimum and maximum date from given month in java using java.util.Calendar.

如何使用 java.util.Calendar 在 java 中获取给定月份的最小和最大日期。

回答by stacker

The minimum is always the 1st of this month. The maximum can be determined by adding 1 to month and subtracting 1 from the Calendar day field.

最小值始终是本月 1 日。最大值可以通过将月份加 1 并从日历日字段中减去 1 来确定。

回答by oiavorskyi

This could be done this way:

这可以通过这种方式完成:

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

You could find minimum and maximum value the same way for any of components of the date.

您可以以相同的方式为日期的任何组成部分找到最小值和最大值。

回答by Ervi B

Have you tried the following?

您是否尝试过以下方法?

After setting your calendar object to your desired month,
calendar.getActualMaximum(Calendar.DATE);

将日历对象设置为所需的月份后,
calendar.getActualMaximum(Calendar.DATE);

For the minimum, I suppose it's always the first.

至少,我想它总是第一个。

Hope that helps.

希望有帮助。

回答by Imran

Minimum date is always 1 and Maximum date can be calculate as

最小日期始终为 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()));

Hopefully this will helps

希望这会有所帮助

回答by Annu

I got solution as below,

我得到了如下解决方案,

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