我想显示两个日期之间的日期和时间差。我被这个代码困住了:(
看看这段代码:
Dim d1 As DateTime = "2/13/2018 1:50:00 PM"
Dim d2 As DateTime = "2/20/2018 1:50:00 PM"
Dim count = Enumerable.Range(0, (d2 - d1).TotalHours).
Select(Function(i) d1.AddHours(i).DayOfWeek).
Where(Function(d) d <> DayOfWeek.Sunday And d <> DayOfWeek.Saturday).
Count()
MessageBox.Show("Time Consumed: " & count)
我想要的输出应该是这样的。40:00:00
不包括星期日和星期六以及每个工作日的时间跨度仅为上午 8:00 - 下午 5:00
我非常喜欢 Enigmativity 的回答,所以我想我会扩展它:
Dim minutes =
Enumerable _
.Range(0, CInt(d2.Subtract(d1).TotalMinutes)) _
.Select(Function(m) d1.AddMinutes(m)) _
.Where(Function(d) d.Hour >= 8 And d.Hour < 17) _
.GroupBy(Function(d) d.DayOfWeek) _
.Where(Function(g) g.Key <> DayOfWeek.Saturday And g.Key <> DayOfWeek.Sunday) _
.Select(Function(g) g.Count()) _
.Sum()
MessageBox.Show("Time Consumed: " & Math.Floor(minutes / 60) & " hours " & minutes Mod 60 & " mins")
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句