Добавление TimeSpan только к времени даты, а не к дате
У меня есть 2 DateTime's:
DateTime beginDate = 2000/01/01 14:00
DateTime endDate = 2000/01/01 14:30
Я рассчитываю промежуток времени между этими 2 часами:
TimeSpan span = endDate.Subtract(beginDate);
var myValue = beginDate.AddMinutes( span.Minutes ).TimeOfDay.Ticks
//Trying to get this equal to the endDate by using the beginDate + myValue
//I have to use myvalue, because this value comes from the DB and this piece
//of code sits in another class than the above code
DateTime otherDate = beginDate.Date.Add( new TimeSpan( myValue ) )
Проблема в том, что я продолжаю получать 0:30 назад, и я должен вернуться 14:30. Я понимаю, почему, потому что beginDate.Date дает вам 2000/01/01 00:00, но я не могу использовать beginDate.TimeOfDay.Add, потому что это поле только для чтения. Как мне добиться, чтобы это только добавило myValue ко времени указанной даты??
2 ответа
Решение
Вы должны использовать TimeSpan.TotalMinutes.
span.Minutes
только дает вам часть минут. Так что 1:30
это не будет 90. Это будет 30
, использование TotalMinutes
чтобы получить 90
,
Также beginDate.Date
следует изменить на beginDate
потому что с помощью Date
Вы удаляете время.