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
how to get minimum and maximum date from given month in java
提问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); }