在C#中生成日期

Vig*_*gan 1 c# date

是否有任何帮助方法在C#中生成日期?

例如,我有一个网格显示日期,给定两个日期之间所有日期的日期..如果我选择2013年1月1日至2013年2月5日...它应该生成这两个之间的所有日期...

我尝试了While Loop如下

 while (startdate <= enddate)
 {         
      var calendarDate = CreateDate();
      calendarDate.CalendarDate = startdate.Date;
      if (calendarDate.DayofWeek == DayOfWeekValues.Sunday.Value)
      {
           calendarDate.IsHoliday = true;
      }       
      startdate = startdate.AddDays(1.0);
 }
Run Code Online (Sandbox Code Playgroud)

Tim*_*ter 8

目前尚不清楚你的循环有什么问题,看起来好像你只需要将日期添加到像集合一样的集合中List<DateTime>.但是,您也可以使用LINQ:

int days = (enddate - startdate).Days + 1;
List<DateTime> dateRange = Enumerable.Range(0, days)
    .Select(i => startdate.AddDays(i))
    .ToList();
Run Code Online (Sandbox Code Playgroud)

编辑:因为您不使用DateTime自定义类:

我不知道所涉及的类和方法,但是,这应该有助于在循环中实现与您相同的逻辑(假设HolidayCalendarDetail是类):

List<HolidayCalendarDetail> dates = Enumerable.Range(0, days)
.Select(i => 
{
    var calendarDate = e.CreateHolidayCalendarDetail();
    calendarDate.CalendarDate = startdate.AddDays(i);
    calendarDate.IsHoliday = calendarDate.CalendarDate.DayOfWeek == JobScheduleDayOfWeekValues.Sunday.Value;
    return calendarDate;
}).ToList();
Run Code Online (Sandbox Code Playgroud)