Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中获取给定月份的最小和最大日期_Java_Datetime_Calendar - Fatal编程技术网

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

如何在java中获取给定月份的最小和最大日期,java,datetime,calendar,Java,Datetime,Calendar,如何使用java.util.Calendar在java中获取给定月份的最小日期和最大日期。最小日期始终是本月的第一个。最大值可以通过将1添加到月份,然后从日历日字段中减去1来确定。这可以通过以下方式完成: c = ... // get calendar for month you're interested in int numberOfDays = c.getActualMaximum(Calendar.DAY_OF_MONTH) 您可以用相同的方法为日期的任何组件找到最小值和最大

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

最小日期始终是本月的第一个。最大值可以通过将1添加到月份,然后从日历日字段中减去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);  }

感谢您的帮助,我得到了如下解决方案:public void ddl_month_valueChange(valuechangeent 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);)其中cal_att_from_date和cal_att_to_date是org.primefaces.component.calendar的对象。Calendar@Annu,此解决方案是否比只调用一个方法更简单?