如何使用java.util. calendar获取给定月份的最小和最大日期
最小值始终为本月1日。可以通过在month上加上1,然后在Calendar日期字段中减去1来确定最大值。
可以这样做:
c = ... // get calendar for month you're interested in
int numberOfDays = c.getActualMaximum(Calendar.DAY_OF_MONTH)
对于日期的任何组成部分,您都可以用相同的方法找到最小值和最大值。
您尝试过以下方法吗?
将日历对象设置为所需的月份后,
calendar.getActualMaximum (Calendar.DATE);
对于最小值,我想它总是第一个。
希望对你有帮助。
最小日期始终为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()));
希望这对你有帮助
解决方案如下,
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); }