我想计算开始时间和结束时间之间的差异.在HH:mm格式.
例如,当开始时间22.00和结束时间是1.00第二天时,我会收到负值.
如何让程序知道第二天的结束时间?
我的剧本:
public void setBeginTijd()
{
String dateStart = "22:00";
String dateEnd = "1:00";
SimpleDateFormat format = new SimpleDateFormat("HH:mm");
Date d1 = null;
Date d2 = null;
try
{
d1 = format.parse(dateStart);
d2 = format.parse(dateEnd);
long diff = d2.getTime() - d1.getTime();
long diffMinutes = diff / (60 * 1000) % 60;
long diffHours = diff / (60 * 60 * 1000) % 24;
System.out.println(diffMinutes);
System.out.println(diffHours);
}
catch (Exception e)
{
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
如果你可以假设,当时间是负数时,第二次必须在第二天,那么你可以简单地说
if (diff < 0)
{
diff = (24 * 60 * 60 * 1000) + diff;
}
Run Code Online (Sandbox Code Playgroud)
编辑详细说明,也回应评论:当然这是一个非常简单的解决方案.它无法处理第二个日期是两天后的情况.它不处理DST开关.它没有处理1927年12月31日在上海的时区变化.它不能替代正确建模的日期及其所有警告.这是一种尽力而为的方法,可以(可能)从给定的信息中得出什么.
| 归档时间: |
|
| 查看次数: |
1158 次 |
| 最近记录: |