计算 2300 和 0100 之间的时间跨度
本文关键字:时间跨度 之间 0100 2300 计算 | 更新日期: 2023-09-27 18:36:30
我想知道如何获得 2300 到 0100 之间的持续时间,应该是 0200,但它返回 2200。我正在使用Xamarin.Forms处理应用程序,并使用两个返回TimeSpan的TimePickers。
private TimeSpan CalculateDuration()
{
var result = timePickerEnd.Time.Subtract(timePickerStart.Time);
return result.Duration();
}
只要开始时间小于结束时间,一切正常。但是,如果有人从 2300 开始并在 0100 结束,则返回 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;
因为你没有阐明的规则(我在上面已经猜到了)是"如果开始时间大于结束时间,那么它们应该被解释为发生在连续的日子里"——这绝不是系统应该做出的普遍假设。