2014-12-05 193 views
0

我有以下問題:減去時間

我有兩個變量稱爲「hourOne」和式日曆的「hourTwo」 [] []。他們的日期存儲在兩列,「開始」和「結束」。我需要減去小時找到這樣

hourOne[0][0] = "08:00" 
hourOne[0][1] = "12:00" 

hourTwo[0][0] = "07:00" 
hourTwo[0][1] = "13:00" 

在hourThree另一個變量的差異和存儲(hourThree例如)將有

hourThree[0][0] = "07:00" 
hourThree[0][1] = "08:00" 
hourThree[1][0] = "12:00" 
hourThree[1][1] = "13:00" 

我怎麼能減去這個時期?

詳細信息:我不能使用JodaTime API對於這一點,並且變量沒有定義的行數(一個可以具有比其他更多的線路太)。

+1

@bhdrkn你讀過最後一句話嗎? – user902383 2014-12-05 16:05:30

回答

0

使用的SimpleDateFormat

SimpleDateFormat sdf = new SimpleDateFormat("kk:mm"); 
ParsePosition idx = new ParsePostion(0); 
long time = sdf.parse(hourOne[0][0], idx).getTime() - sdf.parse(hourOne[0][1], idx).getTime(); 
+0

但是,我會花時間(例如一個小時)......我想減去這些時間段,並將左邊的時間段放在第三個變量中,就像我在示例中所做的那樣 – 2014-12-05 18:19:33

0

的解決方案通過@ControllAltDel傳遞強烈建議, 如果你不想使用日期格式播放,您可以實現時間arthmetics簡單的方法,在此基礎上

static String sub (String a,String b){ 
    String[] tmp = a.split(":"); 
    int ah = Integer.parseInt(tmp[0]); 
    int am = Integer.parseInt(tmp[1]); 
    tmp = b.split(":"); 
    int bh = Integer.parseInt(tmp[0]); 
    int bm = Integer.parseInt(tmp[1]); 

    int cm = am-bm; 
    int reminder = 0; 

    cm=cm%60; 
    if (cm<0) { 
     reminder--; 
      cm+=60; 
    } 

    int ch = ah-bh+reminder; 
    return ch+":"+cm; 
}