前面做了个比较月份的程序,选定一个日子范围是在几月到几月之间。如选出2014年2月到2014年9月之间的日期。
给出的参数是两个日期,具体到了日。
要求很奇葩,如给定的开始日期是2014/02/04,结束日期是2014/09/23。判断出在2月到9月的所有日期。也就是说2014/09/29的也要算出来。
这样,我的思路是这样的,通过“2014/02/04”得出14年2月的第一天,当然是1号了。再得出9月的最后一天是9月30号(如果是10月,就是31号了)。
public static String getMonth(String date, boolean first){
String year = date.split( "/|-" )[0]; //适合“2014/09/30”和"2014-09-30"两种格式。
//月是从0开始的,所以要减一。
Integer month = Integer. valueOf(date.split( "/|-")[1])-1;
Calendar cal = Calendar. getInstance(); //使用Calendar出理。
//cal.set(Calendar.YEAR, lastYear);
cal.set(Calendar. YEAR , Integer.valueOf(year));
cal.set(Calendar. MONTH , month);
if (first){
//表示一个月的第一天
cal.set(Calendar. DAY_OF_MONTH ,cal.getActualMinimum(Calendar. DATE));
} else {
//表示一个月的最后一天。
cal.set(Calendar. DAY_OF_MONTH ,cal.getActualMaximum(Calendar. DATE));
}
//返回一个字符串日期。
return new SimpleDateFormat( "yyyy-MM-dd ").format(cal.getTime());
}
|