最近项目中有用到本月所有的周六,周日,特此分享一下!

      算法思路:写一个循环,条件为本月开始日期、本月截至日期,通过循环获取第一个周六,加一天就是周日,每增加六天就是下一个周六,依次类推,循环到月末

      代码如下:

            //计算本月有哪些天是周六,周日
            //本月开始日期
            var starmoth = datetime.now.adddays(-datetime.now.day + 1).date;
            //本月截至日期
            var stopmoth = starmoth.addmonths(1).adddays(-1).date;
            var listsaturday = new list<datetime>();
            var listsunday = new list<datetime>();
            var temp = starmoth;
            while (temp <= stopmoth)
            {
                if (temp.dayofweek == dayofweek.saturday && temp <= stopmoth)
                {
                    listsaturday.add(temp.date);
                    if (temp.adddays(1).date <= stopmoth)
                    {
                        listsunday.add(temp.adddays(1));
                    }
                    temp = temp.adddays(6);
                }
                else
                {
                    temp = temp.adddays(1);
                }
            }
            console.writeline("本月周六--");
            listsaturday.foreach(n => console.writeline(n.date));
            console.writeline("本月周日--");
            listsunday.foreach(n => console.writeline(n.date));
            console.readkey();

  运行结果: