获取 2 个日期之间的差异,并显示日期数字和日期 c# 剃须刀 mvc

本文关键字:日期 数字 显示 剃须刀 mvc 之间 获取 | 更新日期: 2023-09-27 18:35:07

我需要能够获取输入的"发件人"和"收件人"之间的日期列表同时显示每个日期的数字。我需要使用 for 循环,以便我可以填充单选按钮。这是我目前拥有的代码 - 但它循环日期和日期数字,这不是我想要的:输入日期 从 (01.02.2016) 到 (02/02/2016) 输出:

  • •日: 1 日期: 01/02/2016
  • •日: 1 日期: 02/02/2016
  • •日: 2 日期: 01/02/2016
  • •天: 2 日期: 02/02/2016

但我想要的是:

•日: 1 日期: 01/02/2016

•天: 2 日期: 02/02/2016

这是我的代码:

List<DateTime> dates = new List<DateTime>();
for (DateTime date = Model.DataModel.DateFrom.Value; date <= Model.DataModel.DateTo; date = date.AddDays(1))
{
    dates.Add(date);
}
//Then enter this number of days into the loop to show radiobuttons
for (int i = 1; i <= dates.Count; i++)
{
    foreach (var item in dates)
    {
        <ul>
           <li>Day:  @i.ToString() Date: @item.ToShortDateString()</li>
        </ul>
    }
}

获取 2 个日期之间的差异,并显示日期数字和日期 c# 剃须刀 mvc

您有两个可用选项,但您当前的代码几乎就在那里。只要想想它的当前行为以及它正在做什么,你就会看到你的嵌套循环导致了这个问题。

 //Then enter this number of days into the loop to show radiobuttons
 <ul>
     @for (int i = 1; i <= dates.Count; i++)
     {
        <li>Day:  @i.ToString() Date: @dates[i-1].ToShortDateString()</li>
     }
 </ul>

或者,您可以这样做:

 //Then enter this number of days into the loop to show radiobuttons
 if(dates.Any())
 {
     var count = 1;
     <ul>
         @foreach (var date in Dates)
         {
            <li>Day:  @count Date: @date.ToShortDateString()</li>
            count++;
         }
    </ul>
 }
 else
 {<p>No dates found</p>}