一直以来遇到日期问题就头疼,最近又碰上了这样的问题。
需求:计算两个指定日期的时间间隔,要显示为间隔几年几月几日。(要考虑到闰年)
在网上找了不少资料,领导也给了不少提示。现与大家一起分享。有什么问题可以交流
import java.util.Calendar;
import java.util.GregorianCalendar;
public class Test {
public static void main(String[] args){
Calendar birthday = new GregorianCalendar(2013, 6, 1,0,0,0);//2010年10月12日,month从0开始 (6代表的是5月)
Calendar now = new GregorianCalendar(2015, 5, 31,23,59,59);//2010年10月12日,month从0开始
int day = now.get(Calendar.DAY_OF_MONTH) - birthday.get(Calendar.DAY_OF_MONTH);
int month = now.get(Calendar.MONTH) - birthday.get(Calendar.MONTH);
int year = now.get(Calendar.YEAR) - birthday.get(Calendar.YEAR);
//按照减法原理,先day相减,不够向month借;然后month相减,不够向year借;最后year相减。
if(day<0){
month -= 1;
now.add(Calendar.MONTH, -1);//得到上一个月,用来得到上个月的天数。
day = day + now.getActualMaximum(Calendar.DAY_OF_MONTH);
}
if(month<0){
month = (month+12)%12;
year--;
}
System.out.println(year+"年"+month+"月"+day+"天");
}
}