前面做了个比较月份的程序,选定一个日子范围是在几月到几月之间。如选出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());
}
|