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