选择工作日在asp.net日历编程 [英] Select week days in asp.net Calendar programatically

查看:427
本文介绍了选择工作日在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆