java - 查找 12 小时 AM/PM 格式的两个时间之间的差异

标签 java

我的程序的一部分需要找到两次之间的最小差异。例如:

时间 1:上午 11 点

时间 2:下午 1 点

差异应该是 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);
}

有没有办法不用硬编码就可以做到这一点?

最佳答案

也许 if (difference > 12) difference = 24 - difference?

关于java - 查找 12 小时 AM/PM 格式的两个时间之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27455073/

相关文章:

java - Spring:具有接口(interface)和实现类的DI,限制较少的异常

java - Spring Boot 类 Size 未找到 @Size(min=1,max=18)

java - 错误: not found: java Usage: selenium-standalone action [options]

java - DynamoDB - 查询而不是扫描 - 如何使用随机生成的 key 实现

Java swing 菜单无法正常显示

java - 为 System.in 设置环境

java - while 中的多个条件;第二个条件从不适用

java - 检查 nextInt() 中输入的十进制数

java - 你能反射(reflection)一下Java中的私有(private)静态方法吗

java - 当Powermock注释生效时,电子邮件发送失败并出现异常