如果用户输入为2255且2305输出应为10分钟,如何计算24小时内的时差。我有一个想法是将输入分为2个部分,2个数字和2个数字。前2位是小时,是60到几分钟。然后加上第二个2位数,然后计算差异。我不想使用任何日期日历数据类型或API来解决它。感谢
答案 0 :(得分:5)
String time1 = "2255";
String time2 = "2305";
SimpleDateFormat format = new SimpleDateFormat("HHmm");
Date date1 = format.parse(time1);
Date date2 = format.parse(time2);
long difference = date2.getTime() - date1.getTime();
差异在于毫秒,您可以将其转换为任何单位,或者您可以使用apache-commons中的DurationFormatUtils
来格式化它。
System.out.println("Duration: "+DurationFormatUtils.formatDuration(difference, "HH:mm"));
apache commons有很好的实用功能,apache-commons (lang)
答案 1 :(得分:1)
如何在不使用String chartAt。
的情况下获得前2位数字
最高的两位数:数字/ 100 最低的二位数字:数字%100
但如果用户输入3:05或3-05,你会怎么做?我认为这是可用性问题。最佳解决方案是让用户可以理解UI。例如,您可以使用单独的字段数小时和分钟。