0000004_java学习之路_日期相差时间

首先说到日期相差时间的计算,就会想到两种情况!

比如说今天晚上十一点到明天凌晨一点如果按中间相差的时间是两个小时,计算差相差多少天就会出现相差零天的情况,但是如果按照2015-08-19到2015-08-20来算就是相差一天。

java计算日期这两种情况都可以实现!

第一种情况,将两个日期都换成long类型,然后相减在除以一天的毫秒数,这样可以精确到相差的秒数!
e.g.

    public void differDate(Date oDate, Date nDate) {
        long oldDate = oDate.getTime();//Date类型转换成long
        long newDate = nDate.getTime();//Date类型转换成long
        long differ = newDate - oldDate;
        long lDay = 1000*24*60*60;//一天的毫秒数
        long lHou = 1000*60*60;   //一小时的毫秒数
        long lMin = 1000*60;      //一分钟的毫秒数
        long lSec = 1000;         //一秒钟的毫秒数
        try {
            long day = differ/lDay;               //计算差多少天
            long hou = differ%lDay/lHou;          //计算差多少小时
            long min = differ%lDay%lHou/lMin;     //计算差多少分钟
            long sec = differ%lDay%lHou%lMin/lSec;//计算差多少秒
            System.out.println("相差:"+day+"天"+hou+"时"+min+"分"+sec+"秒。");
        } catch (Exception e) {
            e.printStackTrace();
        }   
    }

第二种情况,需要用到Calendar这个类,这个可以直接算出两个日期相差多少天
e.g.

    public void differDate(Date oDate, Date nDate) {
        Calendar cal = Calendar.getInstance();
        cal.setTime(nDate);
        int newDay = cal.get(Calendar.DAY_OF_YEAR);//一年中的哪一天
        cal.setTime(oDate);
        int oldDay = cal.get(Calendar.DAY_OF_YEAR);
        int day = newDay - oldDay;
        System.out.println("相差:"+day+"天");
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值