是否有一种克隆DateTime值的方法,该方法具有相同的日期但与原始日期不同的小时和分钟?

时间:2013-03-26 09:44:51

标签: vb.net datetime clone

我有时间值小时和分钟存储在数据库中。我想用它们来创造一个时期; “开始时间”和“结束时间”。两个时间都有相同的日期,但不同的小时和分钟。这是我正在使用的代码,用于将开始时间属性复制到结束时间。

Dim endTime As New DateTime(startTime.Year, startTime.Month, startTime.Day, endHour, endMinute, 0)

(endHour和endMinute是完全结束时间的小时和分钟属性)

我只是想知道是否有比这更好的方法。

3 个答案:

答案 0 :(得分:1)

这只得到startTime的年,月和日,其余为默认值:

Dim endTime As Date = startTime.Date

然后,您可以按照自己的方式添加所需的其余值,例如:

endTime = endTime.AddHours(endHour)
endTime = endTime.AddMinutes(endMinute)

MSDN Documentation


在一行中,你可以这样做:

Dim endTime As Date = startTime.Date.AddHours(endHour).AddMinutes(endMinute)

甚至:

Dim endTime As Date = startTime.Date.AddMinutes(endHour * 60 + endMinute)

但你的做法也是好的,应该。

答案 1 :(得分:1)

为什么不使用:

DateTime.AddHours Method

DateTime.AddMinutes Method

获取“结束日期时间”

答案 2 :(得分:0)

Dim endTime As Date = startTime.Date.AddHours(endHour).AddMinutes(endMinute)

我不确定它在任何其他方面更具可读性或更好,但也许你会发现它更好。