2010-09-28 138 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)