Интересно, как я могу получить продолжительность между 2300 и 0100, которая должна быть 0200, но она возвращает 2200. Я работаю над приложением с Xamarin.Forms и использую два TimePickers, которые возвращают TimeSpan.Рассчитать промежуток времени между 2300 и 0100
private TimeSpan CalculateDuration()
{
var result = timePickerEnd.Time.Subtract(timePickerStart.Time);
return result.Duration();
}
До тех пор, пока startTime меньше, чем endTime, все работает нормально. Но если кто-то начинает что-то в 2300 и заканчивается в 0100, он возвращает 22. Интересно, есть ли у кого-нибудь рекомендации, как я должен атаковать эту проблему.
Каков тип 'timePickerStart' и' timePickerEnd', потому что они не 'DateTime' (у него нет свойства' Time')? (Хорошо работает с 'DateTime': http://rextester.com/WRYIC93965) – Jamiec
Его было некоторое время с тех пор, как я покинул начальные школы, все же я думаю, что 23 часа минус один час 22 часа, а C# верен. –
Тип TimeSpan, так как я работаю с TimePicker в Xamarin.Forms. И если startTime 0100, а endTime - 2300, продолжительность - 2200. Это правильно. Однако, если startTime равно 2300, а endTime - 0100, продолжительность по-прежнему равна 2200. Если это не было для метода длительности, это было бы -2200. Вот почему я спросил, есть ли у кого-нибудь советы, как я могу решить эту проблему. – user2236165