2014-02-15 91 views
-1

我有計數器,您設置了一個日期,然後您可以獲得該日期的時間,但我需要以選定的格式顯示它。定時器 - 以特定格式倒計時並顯示結果

EG: 如果我有1天,13小時,42分30秒時,和設置格式:

「你有:#d#天,8H#小時,#M#分鐘死」

然後,只需顯示:

「你有1天,13小時,43分鐘死」

但是,如果你設置格式:

「你:#^ h#小時,#M#分鐘即死」

然後我需要顯示:

「你有37小時43分鐘死「

(所以缺少類型(天)轉換爲其他(小時))


我有這樣的代碼: PS:S,M,H,d,W,只是第二以毫秒爲單位,以毫秒爲單位等的時間...

public static String getTimerData(long time, String format) { 
    int seconds = -1, minutes = -1, hours = -1, days = -1, weeks = -1; 
    if (format.contains("#s#")) { 
     seconds = (int) (time/S); 
    } 
    if (format.contains("#m#")) { 
     if (seconds == -1) { 
      minutes = (int) (time/M); 
     } else { 
      minutes = (seconds/60); 
      seconds %= 60; 
     } 
    } 
    if (format.contains("#h#")) { 
     if (minutes == -1) { 
      hours = (int) (time/H); 
     } else { 
      hours = (minutes/60); 
      minutes %= 60; 
     } 
    } 
    if (format.contains("#d#")) { 
     if (hours == -1) { 
      days = (int) (time/D); 
     } else { 
      days = (hours/24); 
      hours %= 24; 
     } 
    } 
    if (format.contains("#w#")) { 
     if (days == -1) { 
      weeks = (int) (time/W); 
     } else { 
      weeks = (days/7); 
      days %= 7; 
     } 
    } 
    return format.replace("#w#", Integer.toString(weeks)).replace("#d#", Integer.toString(days)).replace("#h#", Integer.toString(hours)).replace("#m#", Integer.toString(minutes)).replace("#s#", Integer.toString(seconds)); 
} 

而且......任何好轉如何做到這一點?

回答

3
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy MM dd"); 
String text = date.toString(formatter); 
LocalDate date = LocalDate.parse(text, formatter); 

更多信息here

,或者,如果你不使用java8 here

+0

我需要一些東西而不使用其他API。 (我寫的東西很小,只能作爲附件) – user2250333

+0

Java 8不是「其他API」。 – bobbel

+0

Ach ...我認爲這是「喬達時間」。但我必須使用Java 7;/ – user2250333