[英]Select week days in asp.net Calendar programatically
I'm trying to get all week days using below code. 我正在尝试使用下面的代码来获取所有工作日。
private List<DateTime> getWeekDays(DateTime dt)
{
List<DateTime> result = new List<DateTime>();
int month = dt.Month;
dt = dt.AddDays(-dt.Day + 1);//Sets dt to first day of month
//Sets dt to the first week day of the month;
if (dt.DayOfWeek != DayOfWeek.Monday)
while (dt.DayOfWeek != DayOfWeek.Friday)
dt = dt.AddDays(1);
//Adds the week day and stops when next month is reached.
while (dt.Month == month)
{
result.Add(dt);
dt = dt.AddDays(dt.DayOfWeek == DayOfWeek.Friday ? 3 : 1);
}
return result;
}
But this is not working correctly. 但这不能正常工作。 when i pass
July
month to getWeekDays(DateTime dt)
method, this give all week days correctly. 当我将
July
月份传递给getWeekDays(DateTime dt)
方法时,这将正确给出所有工作日。 but if i pass August
or Semptember
, above code not return all week days of the given month. 但是如果我通过
August
或Semptember
,上面的代码将不会返回给定月份的所有工作日。
Where is the error ? 错误在哪里?
private List<DateTime> getWeekDays(DateTime dt)
{
List<DateTime> result = new List<DateTime>();
int month = dt.Month;
dt = dt.AddDays(-dt.Day + 1);//Sets dt to first day of month
//If dt is a weekend add days to move it to Monday (your while loop below will handle the rest)
if(dt.DayOfWeek == DayOfWeek.Saturday)
{
dt = dt.AddDays(2);
}
else if (dt.DayOfWeek == DayOfWeek.Sunday)
{
dt = dt.AddDays(1);
}
//Adds the week day and stops when next month is reached.
while (dt.Month == month)
{
result.Add(dt);
dt = dt.AddDays(dt.DayOfWeek == DayOfWeek.Friday ? 3 : 1);
}
return result;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.