C# 如何遍历两个日期范围并在ASP.NET日历中显示?
我正在尝试创建一个酒店预订日历,用于选择C# 如何遍历两个日期范围并在ASP.NET日历中显示?,c#,asp.net,calendar,C#,Asp.net,Calendar,我正在尝试创建一个酒店预订日历,用于选择DateFrom和DateTo 我需要迭代从DateFrom到DateTo并在日历中显示所有这些日期,到目前为止,我的代码只选择DateFrom和DateTo,并在日历中显示它们作为标签: protected void Calendar1_DayRender(object sender, DayRenderEventArgs e) { foreach (DataRow dr in ds.Tables[0].Rows) { D
DateFrom
和DateTo
我需要迭代从DateFrom
到DateTo
并在日历中显示所有这些日期,到目前为止,我的代码只选择DateFrom
和DateTo
,并在日历中显示它们作为标签:
protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)
{
foreach (DataRow dr in ds.Tables[0].Rows)
{
DateTime df = (DateTime)dr.Field<DateTime?>("DateFrom");
DateTime dt = (DateTime)dr.Field<DateTime?>("DateTo");
if (e.Day.Date == dt.Date)
{
Label lbl = new Label();
lbl.BackColor = System.Drawing.Color.Gray;
lbl.Text = "Booked From";
e.Cell.Controls.Add(lbl);
}
if (e.Day.Date == df.Date)
{
Label lbl = new Label();
lbl.BackColor = System.Drawing.Color.Gray;
lbl.Text = "Booked To";
e.Cell.Controls.Add(lbl);
}
}
受保护的无效日历1\u DayRender(对象发送方,DayRenderReventArgs e)
{
foreach(ds.Tables[0].行中的数据行dr)
{
DateTime df=(DateTime)dr.Field(“DateFrom”);
DateTime dt=(DateTime)dr.Field(“DateTo”);
如果(e.Day.Date==dt.Date)
{
标签lbl=新标签();
lbl.BackColor=System.Drawing.Color.Gray;
lbl.Text=“预订自”;
e、 Cell.Controls.Add(lbl);
}
如果(e.Day.Date==df.Date)
{
标签lbl=新标签();
lbl.BackColor=System.Drawing.Color.Gray;
lbl.Text=“预订到”;
e、 Cell.Controls.Add(lbl);
}
}
这里有一个简单的解决方案
DateTime temp = df;
while (temp < dateTo)
{
temp = temp.AddDays(1);
// do something with inbetween date here...
}
DateTime temp=df;
while(温度
如果代码没有太多更改,我会这样做:
protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)
{
foreach (DataRow dr in ds.Tables[0].Rows)
{
DateTime df = (DateTime)dr.Field<DateTime?>("DateFrom");
DateTime dt = (DateTime)dr.Field<DateTime?>("DateTo");
if (e.Day.Date == dt.Date)
{
Label lbl = new Label();
lbl.BackColor = System.Drawing.Color.Gray;
lbl.Text = "Booked From";
e.Cell.Controls.Add(lbl);
}
if (e.Day.Date == df.Date)
{
Label lbl = new Label();
lbl.BackColor = System.Drawing.Color.Gray;
lbl.Text = "Booked To";
e.Cell.Controls.Add(lbl);
}
//Added Code
if(e.Day.Date > df.Date && e.Day.Date < dt.Date)
{
Label lbl = new Label();
lbl.BackColor = System.Drawing.Color.Gray;
lbl.Text = "Day inbetween";
e.Cell.Controls.Add(lbl);
}
}
受保护的无效日历1\u DayRender(对象发送方,DayRenderReventArgs e)
{
foreach(ds.Tables[0].行中的数据行dr)
{
DateTime df=(DateTime)dr.Field(“DateFrom”);
DateTime dt=(DateTime)dr.Field(“DateTo”);
如果(e.Day.Date==dt.Date)
{
标签lbl=新标签();
lbl.BackColor=System.Drawing.Color.Gray;
lbl.Text=“预订自”;
e、 Cell.Controls.Add(lbl);
}
如果(e.Day.Date==df.Date)
{
标签lbl=新标签();
lbl.BackColor=System.Drawing.Color.Gray;
lbl.Text=“预订到”;
e、 Cell.Controls.Add(lbl);
}
//添加代码
如果(e.Day.Date>df.Date和&e.Day.Date
上述代码中的“ds”是否可能重复?