下拉日期交付

时间:2009-09-27 23:33:27

标签: asp.net datetime drop-down-menu

我想使用asp.net下拉菜单向用户显示结帐时的交货日期。我不确定的是如何获得具体日期。用户应该在下拉菜单中看到并能够选择的内容是接下来的两周的下周一和周二。任何帮助将不胜感激。

感谢。

2 个答案:

答案 0 :(得分:1)

最简单的解决方案是使用DateTime.DayOfWeek属性(http://msdn.microsoft.com/en-us/library/system.datetime.dayofweek.aspx)。

你从获得今天的日期开始,或者,如果今天是星期一,你不能交付两天,那么下一次交付将是星期一,然后从明天开始。如果我明天订购,我不知道你会如何处理第二天的交货日期,所以我需要澄清。

获取星期几,从今天或明天开始,从特定日期提取,如下所述: http://msdn.microsoft.com/en-us/library/system.datetime.dayofweek.aspx

如果不是周一或周二,那么只需确定您需要在周一或周二到达的天数,然后添加该天数并获取该日期,然后只需添加七天即可获得日期。

我更愿意让.NET确定从现在起七天的日期,因为您可能会更改一个月或几年。

这是基本方法。如果您在尝试实施时遇到困难,我会建议您使用一些代码,以便我们帮助您确定卡住的位置。

还有其他方法,但这可能是最容易理解和实施的方法。

答案 1 :(得分:0)

这是一个非常简单的建议,使用了很多LINQ:

private void LoadDeliveryDays(int period)
{
  DateTime[] days = Enumerable.Range(1, period).Select(i => DateTime.Today.AddDays(i)).ToArray();
  DropDownList1.DataSource = (from d in days where d.DayOfWeek == DayOfWeek.Monday | d.DayOfWeek == DayOfWeek.Tuesday select d.ToString("dddd dd-MM-yyyy")).ToArray();
  DropDownList1.DataBind();
}

您可能想要更改d.ToString("dddd dd-MM-yyyy")和/或下拉列表中实际使用的值。

相关问题