2012-09-26 84 views
0
 Console.Write("Type in the number of seconds: "); 
     int total_seconds = Convert.ToInt32(Console.ReadLine()); 

     int hours = total_seconds/3600; 
     total_seconds = total_seconds % (hours * 3600); 
     int minutes = total_seconds/60; 
     total_seconds = total_seconds % (minutes * 60); 
     int seconds = total_seconds; 
     Console.WriteLine("Number of hours: " + hours + " hours" + "\nNumber of minutes: " + minutes + " minutes" + "\nNumber of seconds: " + seconds + " seconds"); 
     Console.ReadLine(); 

管理創建一個程序,將總秒數轉換爲它的各自小時,分鐘,秒。我遇到了一個問題,因爲我不希望該程序也能夠顯示小於3660秒的總時間量,小時數,分鐘數等,這似乎是不可能的。任何IDE如何幫助解決這個問題?秒轉換器

+0

這是什麼語言,您應該添加這個語言的標籤 – Chowlett

+0

林不知道這個問題是清楚的:你的意思是你想要將一個數字轉換成小時,分鐘和秒,但例如,66顯示1分鐘6秒,或者你想要3666顯示1小時,61分鐘,3666秒? – BugFinder

+0

我是這個網站的新手,但我會記得在我未來的問題中放置一個laungauge標籤。這段代碼是C#。 – Leth

回答

0

編輯
Chowlett的答案做到這一點更優雅 - 用他的代碼。

這似乎爲我工作(由if聲明我要確保我不萬一hours零拿到一個部門我們minutes爲零:

int total_seconds = 3640; 

int hours = 0; 
int minutes = 0; 
int seconds = 0; 

if (total_seconds >= 3600) 
{ 
    hours = total_seconds/3600; 
    total_seconds = total_seconds % (hours * 3600); 
} 

if (total_seconds >= 60) 
{ 
    minutes = total_seconds/60; 
    total_seconds = total_seconds % (minutes * 60); 
} 

seconds = total_seconds; 
Console.WriteLine("Number of hours: " + hours + " hours" + "\nNumber of minutes: " + minutes + " minutes" + "\nNumber of seconds: " + seconds + " seconds"); 
Console.ReadLine(); 
3

問題出在您取模數的行上(%運算符)。您希望刪除全部小時數後剩下的秒數,即total_seconds % 3600。您擁有的代碼(如果您的時間低於3600秒)將嘗試執行total_seconds % 0,這是一個零除。請嘗試以下操作:

int hours = total_seconds/3600; 
total_seconds = total_seconds % 3600; 
int minutes = total_seconds/60; 
total_seconds = total_seconds % 60; 
int seconds = total_seconds; 
+0

謝謝,這對我來說非常合適。 – Leth

+0

@ user1696992 - 無後顧之憂。歡迎來到Stack Overflow!您也可以通過點擊旁邊的綠色複選標記來「接受」該答案。 – Chowlett