我有一個日曆和一個包含一天中的時間的文本框。我想創建一個兩者結合的日期時間。我知道我可以通過查看小時和分鐘,然後將它們添加到日曆DateTime中,但這看起來相當混亂。在C中添加時間到日期時間#
有沒有更好的方法?
我有一個日曆和一個包含一天中的時間的文本框。我想創建一個兩者結合的日期時間。我知道我可以通過查看小時和分鐘,然後將它們添加到日曆DateTime中,但這看起來相當混亂。在C中添加時間到日期時間#
有沒有更好的方法?
您可以使用DateTime.Add()方法將時間添加到日期。
DateTime date = DateTime.Now;
TimeSpan time = new TimeSpan(36, 0, 0, 0);
DateTime combined = date.Add(time);
Console.WriteLine("{0:dddd}", combined);
您還可以通過parsing a String創建時間跨度,如果這是你需要做什麼。
另外,你可以看看使用其他控件。你沒有提到你是否使用winforms,wpf或asp.net,但有多種日期和時間選擇器控件支持選擇日期和時間。
將兩者結合。 Date-Time-Picker也支持拾取時間。
你只需要改變Format-Property和CustomFormat-Property。
視您的格式(和驗證!)的日期在文本框中輸入,你可以這樣做:
TimeSpan time;
if (TimeSpan.TryParse(textboxTime.Text, out time))
{
// calendarDate is the DateTime value of the calendar control
calendarDate = calendarDate.Add(time);
}
else
{
// notify user about wrong date format
}
注意TimeSpan.TryParse預計該字符串是在「HH:MM」格式(可選秒)。
使用https://github.com/FluentDateTime/FluentDateTime
DateTime dateTime = DateTime.Now;
DateTime combined = dateTime + 36.Hours();
Console.WriteLine(combined);
我喜歡FuentDateTime。如果這是你想要做的唯一的日期時間總和,那麼它可能不值得。但是,還有很多其他的好東西,比如下一個星期五的時間。 – 2013-05-21 10:16:49
@RichardGarside:你的意思是來自[GitHub](https://github.com/FluentDateTime)的FluentDateTime NuGet包嗎? – 2015-12-15 09:00:25
它可作爲Nuget包使用。 Github頁面上有鏈接。 – 2015-12-17 11:24:36
DateTime newDateTime = dtReceived.Value.Date.Add(TimeSpan.Parse(dtReceivedTime.Value.ToShortTimeString()));
雖然這是一個正確的答案,但您應該向OP提供一個解釋,而不是僅提供一個代碼,以確保他們(以及任何其他視圖)明白答案是正確的。 – JNYRanger 2017-06-28 17:50:13
竅門,非常感謝。 – 4imble 2010-01-27 11:25:34
工作時間過了幾小時,我嘗試了'11:57 pm',這工作: 'TimeSpan time = new TimeSpan(23,57,00); DateTime date_with_time = mydate.Add(time);' – stom 2015-09-01 08:58:58
如果您曾經遇到過特定時間(例如:X小時或Y分鐘)的情況,那麼就有輔助函數,所以您不必創建一個TimeSpan()。例如:'''DateTime.UtcNow.AddSeconds(10);'''//將來10秒鐘! – 2015-10-29 19:40:37