我的程序的一部分需要找出两次之间的最小差异。例如:以12小时上午/下午格式查找两次之间的差异
时间1:11:00
时间2:01:00
的差异应该是2个小时,没有22小时(它不应该不管什么样的顺序时间给出)。现在,假设两次总是不一样的。我有两个字符串和用于存储时代两个整数:
int startTime = 11;
String startTimeType = "AM";
int endTime = 1;
String endTimeType = "PM";
我试图通过采取AM/PM的每个可能的组合硬编码:
startTimeType = "AM", endTimeType = "AM";
startTimeType = "AM", endTimeType = "PM";
startTimeType = "PM", endTimeType = "AM";
startTimeType = "PM", endTimeType = "PM";
例如在组合1(AM/AM),代码为:
int timeDifference = 0;
if (startTimeType.equals("PM")
startTime += 12;
if (endTimeType.equals("PM")
endTime += 12;
if ((startTimeType.equals("AM") && endTimeType.equals("AM"))
{
timeDifference = Math.abs(startTime - endTime);
}
有没有办法做到这一点没有硬编码?
使用适当的时间/日期时间数据类型.... – 2014-12-13 03:03:17
12 am/12pm是边缘情况下上午12点= 0000未1200。 12pm = 1200,所以你仍然可以+12下午,但只有在校正12am到00小时后。 – Paul 2014-12-13 03:19:32