假设我在C#中有2个时间跨度(24小时格式):
TimeSpan start = TimeSpan.Parse("22:11:00");
TimeSpan end = TimeSpan.Parse("01:54:12");
TimeSpan duration = end - start;
问题是这种情况下的持续时间是负数,远远不是正确的结果。如何获得正确的持续时间?
答案 0 :(得分:1)
查看以下单元测试
[DataRow("16:00", "01:00", "09:00")]
[DataRow("16:00", "21:00", "05:00")]
public void CalculateDuration(string open, string close, string expected) {
var begin = TimeSpan.Parse(open);
var end = TimeSpan.Parse(close);
var actual = end < begin ? (TimeSpan.FromHours(24) - begin) + end : end - begin;
Assert.AreEqual(TimeSpan.Parse(expected), actual);
}
答案 1 :(得分:1)
您可以使用Duration() 方法:
'terms' => $term->term_id
答案 2 :(得分:0)
TimeSpan duration = end - start;
不:start - end
。