如何根据午夜检查日期范围?

时间:2013-03-05 04:44:35

标签: c#

我试图在两次之间找到时间范围并计算午夜时差。

例如:

StartDate1 : 13/02/2013 21.00
EndDate1:    13/02/2013 22.00.

StartDate2 : 13/02/2013 23.00
EndDate2:    14/02/2013 01.00.

1) am trying to find the time range, it falls in to midnight first ?
2) If yes then how much time difference from Midnight 
    e.g Day1= 2hrs (prior to midnight)
        Day2= 1hr (after midnight).

请帮忙吗?

我正在看这个问题,但不确定TimeFrame

3 个答案:

答案 0 :(得分:2)

试试这个。

 DateTime startTime = DateTime.Parse("13/02/2013 22.00");

 DateTime endTime = DateTime.Parse("14/02/2013 01.00");

 TimeSpan span = endTime.Subtract ( startTime );
 Console.WriteLine( "Time Difference (seconds): " + span.Seconds );
 Console.WriteLine( "Time Difference (minutes): " + span.Minutes );
 Console.WriteLine( "Time Difference (hours): " + span.Hours );
 Console.WriteLine( "Time Difference (days): " + span.Days );

答案 1 :(得分:2)

要查明时间之间是否有午夜,只需检查日期是否不同:

if (startDate1.Date != endDate1.Date) {
  // there is at least one midnight between the times
}

如果您知道日期之间的午夜时间不会超过一个,那么endDate1.Date就是那个午夜的时间。您可以使用以下方式获取午夜之前和之后的时间:

TimeSpan before = endDate1.Date - startDate1;
TimeSpan after = endDate1 - endDate1.Date;

答案 2 :(得分:0)

TimeSpan span = endTime - startTime;

Console.Writeline(“Span:”+ span);

Console.Writeline(“Seconds:”+ span.TotalSeconds);