2012-12-08 264 views
0

我正在開發一個Java Swing應用程序,該應用程序在一週的特定日期和時間發送報告,例如報告時間爲星期三09:00:00。我正在嘗試使用報告時間計算當前日期和時間之間的時差。例如:日期和時間之間的時差

DayTime1 = 「星期三09:00:00」
DayTime2 = 「星期二13:00:00」

如何計算這兩個值之間的時間差?我自己嘗試過,但我甚至無法接近結果。

+2

如果是Date對象,則date1.getTime() - date2.getTime()將以毫秒爲單位給出diff。 – Subin

+0

SubinS是正確的。你想看到什麼格式的結果? – xagyg

+1

你應該總是發佈你試過的代碼,即使它沒有工作。它有助於證明你已經爲這個問題付出了一些努力,它可能會給你提供比你的問題更多的信息。所以,請發佈您的代碼。 –

回答

2

您需要將字符串創建爲Date對象,然後計算兩個實例之間的持續時間。

DateFormat dateformat = new SimpleDateFormat("EEE HH:mm:ss"); 
Date date1 = dateformat.parse(dayTime1); 
Date date2 = dateformat.parse(dayTime2); 
getDuration(date1, date2, Calendar.MINUTE); 

public static long getDuration(Date returnTime, Date leaveTime, int scale) { 
     long durationInMillis = returnTime.getTime() - leaveTime.getTime(); 
     switch (scale) { 
      case Calendar.MINUTE: 
       return durationInMillis/ONE_MINUTE_IN_MILLIS; 
      case Calendar.MILLISECOND: 
       return durationInMillis; 
      case Calendar.SECOND: 
       return durationInMillis/ONE_SECOND_IN_MILLIS; 
      case Calendar.HOUR: 
       return durationInMillis/ONE_HOUR_IN_MILLIS; 
      case Calendar.DAY_OF_YEAR: 
      case Calendar.DATE: 
       return durationInMillis/ONE_DAY_IN_MILLIS; 
     } 
     throw new IllegalArgumentException("invalid scale specified"); 
    }