2011-05-14 47 views
1

如果我有一個像70 80或2500這樣的int秒,我如何使用最簡單的方式將它顯示爲時間格式hh:mm:ss。我知道我可以爲它做一個單獨的方法,但我想檢查是否有任何lib func可用。 這是我創建的方法,它的工作原理。在c#中創建一個基於秒的時間#

private void MakeTime(int seconds) 
    { 
     int min = 0; 
     int sec = seconds; 
     int hrs = 0; 
     if (seconds > 59) 
     { 
      min = seconds/60; 
      sec = seconds % 60; 
     } 
     if (min > 59) 
     { 
      hrs = min/60; 
      min = min % 60; 
     } 
     string a = string.Format("{0:00}:{1:00}:{2:00}", hrs, min, sec); 
    } 

這是我現在使用的功能。它的工作原理,但我仍然有一種感覺,一個單一的線路電話會做到這一點。任何人都知道嗎?

回答

8

您可以使用TimeSpan

TimeSpan t = TimeSpan.FromSeconds(seconds); 

使用t.Hourst.Minutest.Seconds格式化怎麼過你想要的字符串。

+0

+1。非常快速的回覆! :) – 2011-05-14 04:25:38

+0

謝謝,我upvoted所有人因爲我是如此愚蠢不知道這... – swordfish 2011-05-15 14:12:49

1

使用TimeSpan

TimeSpan ts = TimeSpan.FromSeconds(70); 
4

試試這個:

 TimeSpan t = TimeSpan.FromSeconds(seconds); 
     string a = string.Format("{0:00}:{1:00}:{2:00}", t.Hours, t.Minutes, t.Seconds); 
5
TimeSpan.FromSeconds(seconds).ToString("hh:mm:ss") 
2
TimeSpan ts = TimeSpan.FromSeconds(666); 
    string time = ts.ToString(); 
1

任何理由爲什麼你不能只使用日期時間,而不是像這樣?

 DateTime t = new DateTime(0); 
     Console.WriteLine("Enter # of seconds"); 
     string userSeconds = Console.ReadLine(); 
     t = t.AddSeconds(Int32.Parse(userSeconds)); 
     Console.WriteLine("As HH:MM:SS = {0}:{1}:{2}", t.Hour, t.Minute, t.Second); 
相關問題