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();
运行结果:
本人专注于.net平台开发,擅长开发企业管理系统,CRM系统,ERP系统,财务系统,权限系统,非常乐意跟大家讨论相关系统的设计和开发技巧