【问题标题】:How much Hours overlap between 2 date ranges [closed]2个日期范围之间的重叠时间[关闭]
【发布时间】:2013-12-26 14:39:12
【问题描述】:

我有几个日期范围,我想知道它们之间有多少小时重叠:

示例:

Range 1: from 1/1/2013 10:00AM to 1/1/2013 1:00PM
Range 2: from 1/1/2013 12:00PM to 1/1/2013 5:00PM

结果应该是:1 小时

【问题讨论】:

  • 您是否尝试过使用DateTime 类公开的方法?
  • @ItalyM 看到我对“正确”答案的看法(在我写 cmets 的时候还没有)

标签: c# datetime overlap


【解决方案1】:

您正在寻找TimeSpan

  DateTime dtBegin, dtBegin1,  dtBegin2, dtEnd, dtEnd1, dtEnd2;
  dtBegin = dtBegin1 < dtBegin2 ? dtBegin1 : dtBegin2;
  dtEnd = dtEnd1 > dtEnd2 ? dtEnd1 : dtEnd2;
  TimeSpan range = dtEnd - dtBegin;
  int hours = range.Hours

【讨论】:

  • -1 表示没有阅读问题。再看看,这不是他要问的。另外,Range 类确实存在,但它显然与这个问题无关,也不打算作为对该类的引用。
  • 他在问什么?看了好几遍……
  • 需要对开始日期和结束日期进行少量更改,但它给出了答案的重要部分
  • 如果你仔细看,他要求两个日期和时间范围的重叠时间,而不仅仅是两个日期时间之间的时间。
  • 公共类 DatePeriod { public long ticks1;公共长报价2; public DatePeriod(long date1, long date2) { ticks1 = Math.Min(date1, date2); ticks2 = Math.Max(date1, date2); } public TimeSpan Overlap(DatePeriod dp) { if (ticks2 >= dp.ticks1 && ticks2 = dp.ticks1 && ticks2
猜你喜欢
  • 2018-03-03
  • 2020-06-21
  • 2023-01-19
  • 2014-01-06
  • 1970-01-01
  • 2017-06-08
  • 2020-07-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多