【问题标题】:Drop Down Date Delivery下拉日期交货
【发布时间】:2009-09-27 23:33:26
【问题描述】:

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

谢谢。

【问题讨论】:

  • 你有没有尝试过下周一或周二?还是您只是希望我们无需您动动手指就可以给您答案?
  • @James Black:如果我们有更好的事情要做,我们会去某个地方做的。
  • @MusiGenesis:我只是发现人们越来越懒惰并且没有尝试解决问题,所以,如果我们给他们答案,那么他们永远不会学会如何自己解决问题。跨度>
  • 如果您已经知道答案,希望您能给出答案。如果你不想帮忙,就像 MusiGenesis 所说的,那就去做点别的吧。
  • @James:我想你给了我一个好主意。我将尝试通过在 StackOverflow 上发布问题并仅使用人们在他们的答案中发布的代码示例来构建整个应用程序。我想知道我(我们)以这种方式构建的应用程序有多复杂?

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


【解决方案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

如果不是周一或周二,则只需确定您需要多少天才能到达周一或周二,然后添加该天数并获得该日期,然后只需添加 7 即可获得日期。

我宁愿让 .NET 确定从现在起 7 天后的日期,因为您可以更改月份或年份。

这是基本方法。如果您在尝试实现它时遇到困难,我会建议一些代码,以便我们帮助您确定卡在哪里。

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

【讨论】:

    【解决方案2】:

    这是一个使用大量 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") 和/或下拉菜单中实际使用的值。

    【讨论】:

      猜你喜欢
      • 2015-10-11
      • 2020-08-25
      • 1970-01-01
      • 2022-10-31
      • 2014-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-02
      相关资源
      最近更新 更多