2010-09-28 109 views
1

如何在24小时内计算出用户输入为2255和2305时输出应为10分钟的时间差。我有一个想法是将输入分为2部分,2位数字和2位数字。前两位数字是小时,将其计为60以使其达到分钟。然后加上第二个2位数然后计算差异。我不想使用任何日期日历数据类型或API来解决它。由于Java如何计算时间差异

+0

@ user236501 - 我回滚了您的问题,因为发布了答案。这将允许其他人与您的问题找到答案。 (“对不起,请忽略”帮助没有人) – 2010-09-28 05:54:03

回答

1

如何获得第2位,而无需使用字符串chartAt。

最高的两个数字:数/ 100 最低的两个digist人数%100

但是,如果用户输入3:05或3-05你会怎么做?我认为这是可用性的问题。最好的解决方案是使用户界面绝对可以理解。例如,您可以使用单独的字段数小时和分钟。

+0

如果开始时间是0025and endTime是0035,这意味着它已经是第二天 – user236501 2010-09-28 12:59:17

+0

你是说开始时间是0035,结束是0025?所以你需要正确的结果(24 * 60 +(25 - 35))。但是如果结束时间是在开始前两天?正如我已经说过,我认为这是可用性问题。开发人员应该对输入进行控制,并输入值的确切含义。 – Donz 2010-09-28 19:56:15

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();   

的区别是在米利斯你可以将其转换为任何单位或者您可以使用DurationFormatUtils从Apache的公地,以漂亮的格式化。

System.out.println("Duration: "+DurationFormatUtils.formatDuration(difference, "HH:mm")); 

阿帕奇百科全书具有非常好的实用功能,apache-commons (lang)