第一种,使用Calendar的roll方法,在限制某个日期字段不改变的形式下,改变其他日期字段的值。
第二种,使用Calendar的getActualMaximum方法,获得指定日期字段的最大值。
第三种,使用Calendar的set和add方法,从下个月的第一天计算得到当前月的最后一天。
第四种,循环使用Calendar的add方法,加到的最后一天。
以上四种方法如下示例:
importjava.text.ParseException;
importjava.text.SimpleDateFormat;
importjava.util.Calendar;
importjava.util.Date;
publicclassDateTime{
publicstaticvoidmain(Stringargs)throwsParseException{
DateTimedt=newDateTime();
Datedate=newSimpleDateFormat("yyyy-MM-dd").parse("2008-02-14");
date=dt.lastDayOfMonth(date);
System.out.println(newSimpleDateFormat("yyyy-MM-dd").format(date));
date=newSimpleDateFormat("yyyy-MM-dd").parse("2008-02-14");
date=dt.lastDayOfMonth2(date);
System.out.println(newSimpleDateFormat("yyyy-MM-dd").format(date));
date=newSimpleDateFormat("yyyy-MM-dd").parse("2008-02-14");
date=dt.lastDayOfMonth3(date);
System.out.println(newSimpleDateFormat("yyyy-MM-dd").format(date));
date=newSimpleDateFormat("yyyy-MM-dd").parse("2008-02-14");
date=dt.lastDayOfMonth4(date);
System.out.println(newSimpleDateFormat("yyyy-MM-dd").format(date));
}
publicDatelastDayOfMonth(Datedate){
Calendarcal=Calendar.getInstance();
cal.setTime(date);
cal.set(Calendar.DAY_OF_MONTH,1);
cal.roll(Calendar.DAY_OF_MONTH,-1);
returncal.getTime();
}
publicDatelastDayOfMonth2(Datedate){
Calendarcal=Calendar.getInstance();
cal.setTime(date);
intvalue=cal.getActualMaximum(Calendar.DAY_OF_MONTH);
cal.set(Calendar.DAY_OF_MONTH,value);
returncal.getTime();
}
publicDatelastDayOfMonth3(Datedate){
Calendarcal=Calendar.getInstance();
cal.setTime(date);
cal.set(Calendar.DAY_OF_MONTH,1);
cal.add(Calendar.MONTH,1);
cal.add(Calendar.DATE,-1);
returncal.getTime();
}
publicDatelastDayOfMonth4(Datedate){
Calendarcal=Calendar.getInstance();
cal.setTime(date);
do{
cal.add(Calendar.DATE,1);
}
while(cal.get(Calendar.DATE)!=1);
cal.add(Calendar.DATE,-1);
returncal.getTime();
}
}
输入日期:
2008-02-14
输出结果:
2008-02-29
2008-02-29
2008-02-29
2008-02-29
| 广告合作:400-664-0084 全国热线:400-664-0084 Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号 珠峰网 版权所有 All Rights Reserved
|