<List>DateTime
GetDataRangeという名前のクラスを作成して、ユーザーが2つの特定の日の間の日を取得できるようにしました。
次に、データグリッドビューの列に日数を表示します。foreachループを使用しています。このループは問題を引き起こします。問題は、他のカレンダーにすべての日を表示したいので、列にすべての日が表示されないことです。コードを参照してください:
for (int i = 0; i < dtEnd.Subtract(dtStart).Days; i++)
{
TimeSpan counter = new TimeSpan(i, 0, 0, 0);
string s1 = "10/9/2012";
string s2 = "11/10/2012";
d1 = Convert.ToDateTime(s1);
d2 = Convert.ToDateTime(s2);
foreach (DateTime item in GetDateRange(d1, d2))
{
s = item.ToShortDateString();
}
PersianCalendar p = new PersianCalendar();
DateTime date = Convert.ToDateTime(s);
int day = p.GetDayOfMonth(date);
int month = p.GetMonth(date);
int year = p.GetYear(date);
string dt = string.Format("{0}/{1}/{2}", year, month, day);
dataGridView1.Columns.Add(string.Format("col{0}", i), string.Format("{0} {1}", (dtStart + counter).DayOfWeek.ToString(), dt));
}
そのforeachループのため、1日だけ表示されます。DayOfWeekは完全に機能していますが、問題はforeachループの日数が1日しか表示されないことです。
アップデート
文字列dtは、1日だけ表示され、他の日は表示されません。