java中计算两个日期之间相差多少天

java中计算两个日期之间相差多少天

  • 先将Date格式化为只有年、月、日的形式,返回String。然后将此String再转化为Date(此时时、分、秒就成为了00:00:00)
  • 调用getTime()方法返回Date的1970的毫秒表示。将两个日期的毫秒相减,然后除以一天有(246060*1000)毫秒,得到日期差。
//获取两个传入时间相隔的天数
public static long getInterval(Date begin_date, Date end_date) throws ParseException {
        long day = 0;
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
        if(begin_date != null){
            String begin = sdf.format(begin_date);
            begin_date  = sdf.parse(begin);
        }else {
            begin_date=sdf.parse(sdf.format(new Date()));
        }
        if(end_date!= null){
            String end= sdf.format(end_date);
            end_date= sdf.parse(end);
        }else{
            end_date=sdf.parse(sdf.format(new Date()));
        }
        long day = (end_date.getTime() - begin_date.getTime()) / (24 * 60 * 60 * 1000);
        return day>=0?day:-day;
    }

//获取传入时间与当前时间相隔的天数
public static long getInterval(Date date) throws ParseException {
        long day = 0;
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
        if(date!= null){
            String end= sdf.format(date);
            date= sdf.parse(end);
        }else{
            throw new NullPointerException() ;
        }
        Date nowDate=sdf.parse(sdf.format(new Date()));
        day = (date.getTime() - nowDate.getTime()) / (24 * 60 * 60 * 1000);
        return day >= 0 ? day : -day;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值