c#获取本月有哪些周六、周日


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

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

      代码如下:

            //计算本月有哪些天是周六,周日
            //本月开始日期
            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();

  运行结果:

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM