首页 > 解决方案 > 使用时间跨度获取上午和下午之间的时间差

问题描述

需要得到晚上 10 点和凌晨 4 点之间的时差。下面是我的代码

 _firstShiftStartTime = new TimeSpan(_oOrgShiftDetailDTO.StartTime.Value.Hour,_oOrgShiftDetailDTO.StartTime.Value.Minute, _oOrgShiftDetailDTO.StartTime.Value.Second);
  
 _firstShiftEndTime = new TimeSpan(_ShiftDetailDTO.EndTime.Value.Hour, _ShiftDetailDTO.EndTime.Value.Minute, _ShiftDetailDTO.EndTime.Value.Second);

这将返回两个时间跨度 22.00.00 和 6.00.00。我需要得到这两者之间的时差。

标签: c#

解决方案


使用 Stefano 的使用 Subtract 的解决方案,然后处理负值

var difference = _firstShiftEndTime.Subtract(_firstShiftStartTime);

if (difference.Ticks < 0)
{
    difference = new TimeSpan(TimeSpan.TicksPerDay - difference.Negate().Ticks);
}

推荐阅读