如果第二天是第二天,则2次间隔之间的差异

时间:2016-12-26 22:59:34

标签: c#

假设我在C#中有2个时间跨度(24小时格式):

TimeSpan start = TimeSpan.Parse("22:11:00");
TimeSpan end = TimeSpan.Parse("01:54:12");
TimeSpan duration = end - start;

问题是这种情况下的持续时间是负数,远远不是正确的结果。如何获得正确的持续时间?

3 个答案:

答案 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