java计算两个字符串格式的时间间隔多少天多少小时多少分钟

传入起止时间,及SimpleDateFormat 的格式。
计算一下我晚上睡了多久:

    @Test
    public void test04() throws Exception {
    
    
        long min = dateDiff("2020-07-13 23:58:56","2020-07-14 7:29:15","yyyy-MM-dd HH:mm:ss");
    }
    public static long dateDiff(String startTime, String endTime, String format) throws Exception {
    
    
        SimpleDateFormat sd = new SimpleDateFormat(format);
        long nd = 1000*24*60*60;//一天的毫秒数
        long nh = 1000*60*60;//一小时的毫秒数
        long nm = 1000*60;//一分钟的毫秒数
        long ns = 1000;//一秒钟的毫秒数
        long diff;
        //计算两个时间的毫秒时间差异
        diff = sd.parse(endTime).getTime() - sd.parse(startTime).getTime();
        long day = diff/nd;
        long hour = diff%nd/nh;
        long min = diff%nd%nh/nm;
        long sec = diff%nd%nh%nm/ns;
        System.out.println(startTime+" ~ "+endTime+"时间间隔:\n"+day+"天"+hour+"小时"+min+"分钟"+sec+"秒");
        return min ;
    }

输出:

2020-07-13 23:58:56 ~ 2020-07-14 7:29:15时间间隔:
07小时30分钟19

计算每天工作时长:

    @Test
    public void test04() throws Exception {
    
    
        long min = dateDiff("08:30","17:30","HH:mm");
    }

输出:

08:30 ~ 17:30时间间隔:
09小时0分钟0

猜你喜欢

转载自blog.csdn.net/qq_41885819/article/details/107316069