我正在尝试在预先存在的时间内添加额外的小时数。当我使用DateTime.Now.AddHours(48)函数添加时,它可以正常工作......这会增加48小时到当前时间。
但我无法解决的问题是将时间增加到过去或将来的时间。
例如,在" CheckInTime"下面的代码中,我试图将48小时添加到预先存在的时间(不是当前时间)。 " CheckInTime"可能是9/14/2016 9:16:00 PM,我需要增加48小时到那个时间。哪个应该是9/16/2016 9:16:00 PM
这是一个C#代码。
DateTime? FutureTime;
DateTime? CheckInTime;
if (duration.Contains("48")) // duration is a time blocks (12 or 24 or 48)hrs
{
// add 48 hrs from current time
FutureTime= DateTime.Now.AddHours(48);
// should add 48 hrs to the pre-existing time(past or future.)
CheckInTime= GameSchedule.CheckInTime.AddHours(48);
}
else if (...) // Other code...
....
我想要完成的任务:在现有时间(未来或过去)中添加小时数。
EG:
CheckInTime= GameSchedule.CheckInTime.AddHours(48);
//where CheckinTime has past of future time. I want to add 48 hours.
答案 0 :(得分:3)
CheckInTime
是DateTime?
- Nullable type - 不是DateTime
。因此,您需要首先提取其Value
:
if (CheckInTime != null)
{
CheckInTime = CheckInTime.Value.AddHours(48);
}
else
{
// Do whatever you want to do when CheckInTime has not been set yet.
}
注意:您可以直接将AddHours
(DateTime
)的结果分配给CheckInTime
(DateTime?
),因为存在隐式转换从每种普通类型到可空类型。
如果您使用的是Roslyn或更高版本,您还可以使用?.
运算符代替if
检查:
// Yields null if CheckInTime is null; otherwise, yields the result of the method
// invocation.
CheckInTime = CheckInTime?.AddHours(48);