Добавление 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 Вы удаляете время.

DateTime otherDate = beginDate + span;
Другие вопросы по тегам