月と日のリストがあり、指定された日付の間でこのリストの各月と日を検索する必要があります。希望する出力を得る最善の方法を提案してくれる人はいますか?
例えば:
月日一覧 -> 01/11、03/15、05/25、09/01
日付間 -> 2012 年 1 月 1 日から 2013 年 7 月 1 日
期待される結果:
2012 年 11 月 1 日、2013 年 11 月 1 日
2012 年 3 月 15 日、2013 年 3 月 15 日
2012 年 5 月 25 日、2013 年 5 月 25 日
2012/09/01
私はこのように試しましたが、日付と日付の間に年数のギャップがある場合、メモリ例外が発生し、時間とメモリの複雑さが増します。それを取得するための簡単な解決策はありますか?
DateTime[] dateDates = new DateTime[dateTypeList.Rows.Count];
//convert strings to datetimes:
for (int i = 0; i < dateTypeList.Rows.Count; i++)
{
dateDates[i] = Convert.ToDateTime(Convert.ToDateTime(string.Format("{0}/{1}", Convert.ToInt32(dateTypeList.Rows[i]["Month"]), Convert.ToInt32(dateTypeList.Rows[i]["Day"]))));
}
//define start and end time:
DateTime dateStart = new DateTime(2012, 1, 1);
DateTime dateEnd = new DateTime(2013, 7, 1);
List<DateTime> results = new List<DateTime>();
//loop days between start and end time:
for (DateTime a = dateStart; a <= dateEnd; a.AddDays(1))
{
for (int i = 0; i < dateDates.Length; i++)
{
if (dateDates[i] == a)
{
results.Add(a);
}
}
}