2014-11-23 151 views
0

我有這樣用於時間戳的字符串輸入:循環以計算時間戳

23 46 22 

其中「23」表示的一天中的小時,「46」是分鐘和「22」是第二個。

我有一個微不足道的問題。我需要把所有從這個例子中,直到一天結束的時候,從23 46 22即時間戳來23 59 59

的循環,我使用來獲取所有的時間戳(一次一個)是:

for (int i = hour; i < 24; i++) { 
    for (int j = minute; j < 60; j++) { 
     for (int k = second; k < 60; k++) { 

     } 
    } 
} 

但是這個循環有問題。第二個計數器將始終僅從目前的第二,例如:啓動

23 46 22 
23 46 23..... 
.. 
23 47 22 
23 47 23... 

我想時間戳以正確的方式,例如:

23 46 22 
23 46 23..... 
.. 
23 47 01 
23 47 02... 

什麼是優雅的方式來做到這一點?

回答

2

您可以在每個循環結束重置秒和分鐘:

int m = minute; 
int s = second; 

for (int i = hour; i < 24; i++) { 
    for (int j = m; j < 60; j++) { 
     for (int k = s; k < 60; k++) { 
      .... 
     } 
     s = 0; 
    } 
    m = 0; 
} 
+0

我覺得現在啞。這是對的。 – Anurag 2014-11-23 12:49:03

+1

不要忘記,除非格式化輸出,否則單個數字的數字不會顯示前導零。如果這是顯示給控制檯,你可以在內部循環中添加這行'System.out.printf('%02d%02d%02d%n,小時,m,s);'。如果要保存到文件中,可以使用String.format(「%02d%02d%02d%n,小時,m,s)'。 – hfontanez 2014-11-23 12:57:40