c# - 使用时间跨度获取上午和下午之间的时间差
问题描述
需要得到晚上 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。我需要得到这两者之间的时差。
解决方案
使用 Stefano 的使用 Subtract 的解决方案,然后处理负值
var difference = _firstShiftEndTime.Subtract(_firstShiftStartTime);
if (difference.Ticks < 0)
{
difference = new TimeSpan(TimeSpan.TicksPerDay - difference.Negate().Ticks);
}
推荐阅读
- azure-data-lake - Azure Synapse Serverless - SQL 查询为每个文件返回目录中的行
- tfs - TFS 代码审查自动设置了 Closed By 字段,这阻止我访问代码审查
- excel-formula - 提取以 " 引号开头的单词
- intellij-idea - IDEA 无法识别 typegoose 类型的模型
- python - Python Altair - 条形图 - 比例绑定
- apache-spark - Spark Structured Streaming 自定义分区目录名
- angular - 角度路由参数值替换为 AuthGuard canLoad 中的参数名称
- python - 在 Raspberry Pi 4 上使用 Chromedriver 运行 Selenium 的问题
- laravel - 如何将 UTC 日期转换为日期时间类型 Laravel?
- django - Heroku 上的 Auth0:登录时的无限重定向循环