我需要一些清晰的頭腦來檢查另一個區間之間的日期範圍是否爲假。這裏是發生了什麼事情:c#檢查一個區間之間的日期範圍
DateTime[] dates = new DateTime[20];
dates[0] = Convert.ToDateTime(initial_date);
for (int i = 1; i <= 19; i++)
{
dates[i] = initial_date.AddYears(i);
}
所以我有一個存儲20日期的數組。如果initial_date = 1/20/2012陣列從日期[0] = 1/20/2012直到日期[19] = 1/20/2031 現在我想檢查用戶是否選擇兩個日期爲例2013年1月1日和2014年1月1日的選擇落在數組的第一個元素(日期[0])和第二個(日期[1])之間。到目前爲止:
DateTime a1 = Convert.ToDateTime(vtable.Rows[0][0]);
DateTime a2 = Convert.ToDateTime(vtable.Rows[vtable.Rows.Count - 1][0]);
DateTime start = DateTime.MinValue;
DateTime end = DateTime.MaxValue;
for (int i = 0; i < 20; i++)
{
if (a1.CompareTo(dates[i]) >= 0)
{
start = dates[i];
for (int j = 19; j > 0 ; j--)
{
if (a2.CompareTo(dates[j]) >= 0)
{
end = dates[j];
break;
}
}
break;
}
}
這是工作到用戶選擇僅落在數組的一個元素之間的日期範圍。例如,如果選擇是2012年1月30日 - 2012年5月30日,然後開始=日期[0]和結束=日期[0] 我知道我可以簡單說明如果結束==未分配,然後結束=開始,但我想是更好地糾正算法較底 應用補丁非常感謝您
所以,你想在陣列中的點將適合輸入範圍?然後,對於2012年1月30日 - 2012年5月30日,我預計日期[0] - 日期[1]。我在這裏錯過了什麼?你能提供更多的測試用例嗎?更好的是,把它們寫成單元測試。 –