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”是否可能重复?