作业帮 > 综合 > 作业

java 计算两个时间之间的差.

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/14 01:15:27
java 计算两个时间之间的差.
两时间格式为“hh:mm”
若time1 = "23:50";time2 = "00:20";(为第二天的时间)
怎么求得他们之间的分钟数.
请问time1 = "23:50";time2 = "00:20";中的time2有可能是第N天的时间吗,N>2
再问: 不会,最多是跨一天这种特殊情况。两个时间都是当天那好办,就是夸日不知怎么处理~
再答: 你说的是时间格式,我理解的是Date类型的数据,也就是说这两个数据你能取到 如果不是Date类型的数据,那么谁也不能知道哪个是哪一天的,time1 = "23:50";time2 = "00:20";这样小时数还可以看出来是隔天的,如果time1 = "00:50";time2 = "23:20";这样呢,我们就没办法知道是隔天还是当天的了,所以绝对不能判断出time2是隔天还是当天 所以我觉得这两个数据是Date类型的 我在程序里是直接定义了两个Date类型的数据: public static void main(String[] args){ Date date1 = new Date(2011-1900,3-1,17,23,50,00); Date date2 = new Date(2011-1900,3-1,18,00,20,00); SimpleDateFormat format= new SimpleDateFormat("HH:mm"); System.out.println(format.format(date1));//输出23 : 50 System.out.println(format.format(date2));//输出00 : 20 SimpleDateFormat format2 = new SimpleDateFormat("yyyy/MM/dd/ HH:mm:ss"); System.out.println(format2.format(date1));//输出2011/03/17/ 23:50:00 System.out.println(format2.format(date2));//输出2011/03/18/ 00:20:00 System.out.println((date2.getTime()-date1.getTime())/60/1000 + "分钟");//date2.getTime()得到的是毫秒,所以要除以60*1000 } 运行结果: 23:50 00:20 2011/03/17/ 23:50:00 2011/03/18/ 00:20:00 30分钟 事实上真正计算时间差的只有 (date2.getTime()-date1.getTime()) 其他的是为了写明白,Date类型的数据的格式化形式,咱们看到的23:50或者00:20是数据被格式化为HH:mm格式以后的形式,凡是Date类型的数据,都是可以取得一个毫秒单位的绝对数据,两个数据直接的差就是多少毫秒了,然后看我们是想要小时数,分钟数,还是秒数,再除以相应的值 不知道我说清楚了没有呢 如果你的time1和time2是String类型的,而且你也能够自己知道哪个是第一天哪个是第二天的话,那就提取字符串直接减