选择工作日在asp.net日历编程 [英] Select week days in asp.net Calendar programatically
本文介绍了选择工作日在asp.net日历编程的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试图让所有的工作日使用下面code。
私人列表<&日期时间GT; getWeekDays(DateTime的DT)
{
清单<&日期时间GT;结果=新的List<&日期时间GT;(); INT月= dt.Month;
DT = dt.AddDays(-dt.Day + 1); //设置DT到一个月的第一天 //设置DT到该月的第一个星期日;
如果(dt.DayOfWeek!= DayOfWeek.Monday)
而(dt.DayOfWeek!= DayOfWeek.Friday)
dt的= dt.AddDays(1); //增加了工作日,并达到下个月停止。
而(dt.Month ==月)
{
result.Add(DT);
dt的= dt.AddDays(dt.DayOfWeek == DayOfWeek.Friday 3:1);
}
返回结果;
}
但是,这不能正常工作。当我通过 7月
月 getWeekDays(DateTime的DT)
方法,这种正确尽数工作日。但如果我通过 8月
或 Semptember
,上述code不会返回给定月份的所有工作日。
哪里错误?
解决方案
私人列表<&日期时间GT; getWeekDays(DateTime的DT)
{
清单<&日期时间GT;结果=新的List<&日期时间GT;(); INT月= dt.Month;
DT = dt.AddDays(-dt.Day + 1); //设置DT到一个月的第一天 //如果DT是周末加天将它移动到星期一(while循环下面将处理其余部分)
如果(dt.DayOfWeek == DayOfWeek.Saturday)
{
dt的= dt.AddDays(2);
}
否则,如果(dt.DayOfWeek == DayOfWeek.Sunday)
{
dt的= dt.AddDays(1);
} //增加了工作日,并达到下个月停止。
而(dt.Month ==月)
{
result.Add(DT);
dt的= dt.AddDays(dt.DayOfWeek == DayOfWeek.Friday 3:1);
} 返回结果;
}
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. but if i pass August
or Semptember
, above code not return all week days of the given month.
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;
}
这篇关于选择工作日在asp.net日历编程的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文