传入起止时间,及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时间间隔:
0天7小时30分钟19秒
计算每天工作时长:
@Test
public void test04() throws Exception {
long min = dateDiff("08:30","17:30","HH:mm");
}
输出:
08:30 ~ 17:30时间间隔:
0天9小时0分钟0秒