如何从重叠的时间框架中获取分钟数

时间:2011-10-13 18:54:58

标签: c#

我有一个奇怪的问题。我可以轻松地手动解决这个问题,但无法弄清楚如何编写代码。我的问题涉及时区。我有一个应用程序,在一天的设定时间内工作。它处理的数据是时区特定数据。我想以分钟为单位计算处理窗口的整体“宽度”。

说他们的窗格是从上午9点到中午。窗格宽180分钟。我有时区-4,-5,-6,-7和-10的数据。由于窗格比偏移宽,我计算处理窗口的“宽度”为9 x 60或360分钟。

我是用C#写的。我有一些代码掀起来开始解决这个问题,但我不知道如何表示输入。有什么建议吗?

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

我认为您想要做的是在最早的时间开始,并在最后时间结束时使用DateTimeOffset来获得差异。像这样:

//1/1/2011 9:00 AM -4
var earliest = new DateTimeOffset(2011, 1, 1, 9, 0, 0, new TimeSpan(-4, 0, 0));
//1/1/2011 12:00 PM -10
var latest = new DateTimeOffset(2011, 1, 1, 12, 0, 0, new TimeSpan(-10, 0, 0));
Console.Out.WriteLine("minutes = {0}", (latest - earliest).TotalMinutes);

这产生了540. 180分钟的时间结果,加上时区差异的额外360分钟。如果小时数完全相同,则360是-4和-10时区之间的差异。如果这不是您想要的,请更新您的问题以添加更多详细信息/方案。