2010-04-26 75 views
7

Time.ToString("0.0")顯示爲十進制「1.5」而不是1:30。我怎樣才能讓它以時間格式顯示?將時間轉換爲C#中的格式化字符串

private void xTripSeventyMilesRadioButton_CheckedChanged(object sender, EventArgs e) 
{ 
    //calculation for the estimated time label 
    Time = Miles/SeventyMph; 
    this.xTripEstimateLabel.Visible = true; 
    this.xTripEstimateLabel.Text = "Driving at this speed the estimated travel time in hours is: " + Time.ToString("0.0") + " hrs"; 
} 
+0

什麼類型是時間? 它是浮動的嗎? – 2010-04-26 21:14:37

回答

25
Time.ToString("hh:mm") 

格式:

HH:mm = 01:22 
hh:mm tt = 01:22 AM 
H:mm = 1:22 
h:mm tt = 1:22 AM 
HH:mm:ss = 01:22:45 

編輯:既然現在我們知道的時間是double變化的代碼(假設你想要小時和分鐘):

// This will handle over 24 hours 
TimeSpan ts= System.TimeSpan.FromHours(Time); 
string.Format("{0}:{1}", System.Math.Truncate(ts.TotalHours).ToString(), ts.Minutes.ToString()); 

// Keep in mind this could be bad if you go over 24 hours 
DateTime.MinValue.AddHours(Time).ToString("H:mm"); 
+0

工作就像一個魅力感謝 – 2010-04-26 21:42:41

+0

如果這是正確的答案,請將其標記爲:) – Kelsey 2010-04-26 22:04:05

+0

這也適用於我,雖然我會補充說,當做.ToString(),或者CultureInfo時傳遞文化是一個很好的做法。 InvariantCulture或CultureInfo.CurrentCulture(Microsoft FxCop也建議這樣做) – mattytommo 2011-11-17 13:29:44

2

如果TimeSystem.Double,然後System.TimeSpan.FromHours(Time).ToString();

+0

(System.TimeSpan.FromHours(Time ).ToString())非常感謝,但我怎麼才能連接字符串出只把8:30而不是00:00:00.00000 – 2010-04-26 21:31:01

+0

string.Format(「{0:HH:mm}」,DateTime.MinValue + TimeSpan .FromHours(Time)) – Jono 2010-04-26 21:39:23

+0

如果你想知道,其他用戶提出的更優雅的方法是.NET 4.0的新增功能 – Jono 2010-04-26 21:47:36

0

如果時間是float或double你得。 System.Math.Truncate(Time)獲取小時數

然後(Time - System.Math.Truncate(Time))* 60 獲取分鐘數。

+0

是的,它是一個雙重的,但我是C#和編程的新手,這是我的請在課堂上進行第二次作業,請您詳細說明如何使用該功能。我會做點工作,只是需要方向。 – 2010-04-26 21:22:43

1

請注意,如果您在24小時內工作,使用HH:mm而非hh:mm非常重要。

有時我錯誤地寫hh:mm,然後而不是「13:45」我得到「01:45」,並且無法知道它是AM還是PM(除非使用tt)。

0

感謝所有的回覆傢伙和女友我使用這個DateTime.MinValue.AddHours(Time).ToString("H:mm");爲我的程序,因爲它是最容易實現的。

0

從你的數值變量創建一個時間跨度:

TimeSpan ts = new TimeSpan(Math.Floor(Time), (Time - Math.Floor(Time))*60); 

然後,使用ToString方法。

相關問題