计算 2300 到 0100 之间的时间跨度
Calculate timespan between 2300 and 0100
我想知道如何获得 2300 和 0100 之间的持续时间,这应该是 0200,但它 returns 2200。我正在使用 Xamarin.Forms 开发一个应用程序并使用两个 TimePickers returns一个时间跨度。
private TimeSpan CalculateDuration()
{
var result = timePickerEnd.Time.Subtract(timePickerStart.Time);
return result.Duration();
}
只要开始时间小于结束时间,一切正常。但是如果有人在 2300 开始并在 0100 结束它 returns 22。我想知道是否有人有一些指南我应该如何解决这个问题。
你有特定的规则,你必须执行它们:
var ts1 = timePickerStart.Time;
var ts2 = timePickerEnd.Time;
var difference= ts2.Subtract(ts1);
if(ts1 > ts2)
{
difference= difference.Add(TimeSpan.FromHours(24));
}
return difference;
因为您未能阐明的规则(我在上面已经猜到了)是 "if the start time is greater than the end time, then they should be interpreted as occurring on successive days" - 这绝不是 普遍的 假设系统应该做的。
我想知道如何获得 2300 和 0100 之间的持续时间,这应该是 0200,但它 returns 2200。我正在使用 Xamarin.Forms 开发一个应用程序并使用两个 TimePickers returns一个时间跨度。
private TimeSpan CalculateDuration()
{
var result = timePickerEnd.Time.Subtract(timePickerStart.Time);
return result.Duration();
}
只要开始时间小于结束时间,一切正常。但是如果有人在 2300 开始并在 0100 结束它 returns 22。我想知道是否有人有一些指南我应该如何解决这个问题。
你有特定的规则,你必须执行它们:
var ts1 = timePickerStart.Time;
var ts2 = timePickerEnd.Time;
var difference= ts2.Subtract(ts1);
if(ts1 > ts2)
{
difference= difference.Add(TimeSpan.FromHours(24));
}
return difference;
因为您未能阐明的规则(我在上面已经猜到了)是 "if the start time is greater than the end time, then they should be interpreted as occurring on successive days" - 这绝不是 普遍的 假设系统应该做的。