是否有任何帮助方法在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)
目前尚不清楚你的循环有什么问题,看起来好像你只需要将日期添加到像集合一样的集合中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)