2013-03-16 39 views
-1

我有日期范围为A和B,如下所示 d1,d2 ... d3是实际日期 我需要获取由A覆盖而不是B覆盖的日期范围输出。我正在考虑创建一个函数来收集A和B的日期范围数组,然后拿A并与B的每个范围进行比较并评估差异。我的问题是,是否有更好的方法来做到这一点,是否有一个函数返回给定日期范围对的日期范围差异。在C#或Java中计算日期范围差异

|d1-------------d6| |d9----------d14| |d16----------------d21| **Line For A 
    |d5--------------d10| |d12----d14|  |d17-----------d20| |d25-------d30| **Line For B 

Output: 
d1 d5 
d10 d12 
d16 d17 
d20 d21 
+0

D1是枣实际上整数表示,因此1/21/2012将是d1 = 20120121。所以DateRange将有一对日期 – 2013-03-16 00:14:40

+0

你将不得不精确定义你的意思。如果你这样做,你可能会发现你已经写了很多算法。 ;) – 2013-03-16 00:14:45

+0

例如,我不明白为什么d6..d9不算差异。 – 2013-03-16 00:17:03

回答

0

在c#中使用DateTime。我不知道是否有在Java中的等价

0

我觉得TimeSpan是你想要什么:

DateTime d1 = DateTime.Now; 
DateTime d2 = DateTime.Now.AddDays(-1); 

TimeSpan t = d1 - d2; 
int mins = t.TotalMinutes; //what ever you want, Years, Months, Days, Hrs, Mins, Seconds 

在Java中的equivilent是How can I calculate a time span in Java and format the output?

+0

不,因为如果我有 drangeA = 2012年7月1日至2012年7月 drangeB = 2012年3月1日至2012年3月15日 输出应该是日期范围不包括B,但由A 2012年1月1日至2012年3月1日和 3/15/2012至7/5/2012 – 2013-03-16 00:51:26