在C#中添加时间到date时间
我有一个日历和一个包含一天中的时间的文本框。 我想创build一个两者结合的date时间。 我知道我可以通过查看小时和分钟,然后将它们添加到日历date时间,但这似乎相当混乱。
有没有更好的办法?
您可以使用DateTime.Add ()方法将时间添加到date。
DateTime date = DateTime.Now; TimeSpan time = new TimeSpan(36, 0, 0, 0); DateTime combined = date.Add(time); Console.WriteLine("{0:dddd}", combined);
你也可以通过parsing一个string来创build你的时间跨度,如果这是你需要做的。
另外,你可以看看使用其他控件。 你没有提到你是否使用winforms,wpf或asp.net,但有多种date和时间select器控件,支持selectdate和时间。
如果您使用两个DateTime对象,一个用于存储另一个时间的date,则可以执行以下操作:
var date = new DateTime(2016,6,28); var time = new DateTime(1,1,1,13,13,13); var combinedDateTime = date.AddTicks(time.TimeOfDay.Ticks);
这个例子可以在这里find
根据您在文本框中inputdate的格式(并validation!),您可以这样做:
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希望string处于'hh:mm'格式(可选秒)。
使用https://github.com/FluentDateTime/FluentDateTime
DateTime dateTime = DateTime.Now; DateTime combined = dateTime + 36.Hours(); Console.WriteLine(combined);
结合两者。 Date-Time-Picker也支持拾取时间。
你只需要改变Format-Property和CustomFormat-Property。
DateTime newDateTime = dtReceived.Value.Date.Add(TimeSpan.Parse(dtReceivedTime.Value.ToShortTimeString()));