2

我正在尝试在 C# asp.net 网络表单中创建一个下拉列表,该列表填充本周的 mon-sat 和下一个用于约会安排表单的下拉列表。

public void Datetime_Fill()
{
    DateTime Date = DateTime.Now;
    int sunday_count = 0;

    while(sunday_count < 2)
    {
        if (Date.DayOfWeek != DayOfWeek.Sunday)
        {
            //Console.WriteLine("The day of the week for {0:d} is {1}.", Date, Date.DayOfWeek);
            ddl_Appt_Date.Items.Add(new ListItem(Date.DayOfWeek.ToString()));
            Date.AddDays(1);
        }
        else
        {
            Date.AddDays(1);
            sunday_count++;
        }
    }
}

我在页面加载时执行此操作,每当我加载它时,我的网页根本不显示,浏览器就在那里加载。我假设 Date.DayOfWeek 永远不会等于 DayOfWeek.Sunday,因此它永远不会离开 while 循环。我将 Console.WriteLine 放在那里只是为了进行故障排除,但仍然没有显示任何内容。

4

3 回答 3

3

你会想做

Date = Date.AddDays(1);

因为Date永远不会更新。

来自MSDN 日期时间:

DateTime.AddDays() returns a new DateTime that adds the specified number of days to the value of this instance.

于 2013-09-20T19:31:10.460 回答
1

另一种解决方案可能是在数据库中有一个表,其中包含要排除的所有日期。这样,您还可以预测一周中是否有假期或类似的情况。

按照你的方式,你只是在周日起飞。那是你真正需要的吗?

此外,您应该使用valuetext处理所有下拉列表。

例如:

    DropDownList1.Items.Add(new ListItem("<text>", value));
于 2013-09-20T19:41:38.667 回答
0

您必须保存 addDay 函数的返回值以更新您的日期对象并到达星期日,因此:

日期 = Date.AddDays(1);

于 2013-09-20T19:37:55.617 回答