如果我有一雙日期,我想生成它們之間的所有日期(含)的名單,我可以這樣做:爆炸的日期範圍與LINQ
System.DateTime s = new System.DateTime(2010, 06, 05);
System.DateTime e = new System.DateTime(2010, 06, 09);
var list = Enumerable.Range(0, (e - s).Days)
.Select(value => s.AddDays(value));
我我堅持的是,我已經列出了一系列日期對,我想將它們分解成它們之間所有日期的列表。例如:
{2010-05-06, 2010-05-09}, {2010-05-12, 2010-05-15}
應導致
{2010-05-06, 2010-05-07, 2010-05-08, 2010-05-09, 2010-05-12, 2010-05-13, 2010-05-14, 2010-05-15}
注日期的對保證不會彼此重疊。
TimeSpan.Days **!= ** TimeSpan.TotalDays http://msdn.microsoft.com/en-us/library/system.timespan.days(v=VS.100)。 aspx http://msdn.microsoft.com/en-us/library/system.timespan.totaldays(v=VS.100).aspx – dtb 2010-04-16 17:58:32
是的,Days!= TotalDays,但是Days是我想要的。請參閱您提供的鏈接中的示例: TimeSpan(1).Days == 0; TimeSpan(1).TotalDays == 1.15740740740741E-12; TimeSpan(111222333444555).Days == 128; TimeSpan(111222333444555).TotalDays == 128.729552597865; 在第一個例子中,循環0..0會給我一天,這是我想要的。 在第二個示例中,循環0..128將提供129天,這也是我想要的。我想我可以循環1..ceil(128.729552597865),然後返回s.AddDays(值-1),但我爲什麼? – 2010-04-16 19:24:47
只需指出,當兩個「DateTime」值相距超過一個月時,使用'Days'就會中斷。 :) – dtb 2010-04-16 20:34:13