一、计算距离某时间一定天数后的日期
例:距离当前日期100后的日期:
Calendar c = Calendar.getInstance(); //获取当前日期
c.add(Calendar.DATE, 100); //加上100天后
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DATE);
System.out.println(year+"/"+month+"/"+day);
如需要自己设定的某个时间,再用set()方法设定即可,如1988年七月一号:
Calendar c = Calendar.getInstance();
c.set(1988, 7-1, 1); //1988年七月1号
c.add(Calendar.DATE, 100);
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DATE);
System.out.println(year+"/"+month+"/"+day);
需要注意的是其参数的结构和Date类不一样。Calendar类中年份的数值直接书写,月份的值为实际的月份值减1,日期的值就是实际的日期值。而Date类的年份的值为实际的年份减1900,使用的时候需要注意一下。
二、计算相差的天数
Calendar c1 = Calendar.getInstance();
c1.set(1988, 7-1, 1);
Calendar c2 = Calendar.getInstance();
c2.set(1990,5,6);
long d1 = c1.getTimeInMillis();
long d2 = c2.getTimeInMillis();
long days = (d2-d1)/(24*60*60*1000);//一天的毫秒数24h*60m*60s*1000ms
System.out.println(days);
如果c1为第一天,则C2的天数为days+1天。
因为最近在准备Java组的蓝桥杯,所以在网上搜查整理了一下,发现一位博客讲的很透彻,在这里附上https://www.cnblogs.com/vanl/p/5815561.html#undefined