猿问

C# 一个月的最后 3 个工作日

我需要弄清楚当前日期是否是一个月中的最后 3 个工作日之一

有没有更简洁的方法来做到这一点,而不仅仅是一堆条件逻辑,例如如果今天是工作日 > 如果添加 3 天是周末或下个月


拉莫斯之舞
浏览 315回答 1
1回答

翻翻过去那场雪

编写一个方法来确定最近 3 个工作日并检查给定日期是否是其中的一部分public static List<DateTime> GetLastWorkingDays(DateTime date){&nbsp; &nbsp; List<DateTime> result = new List<DateTime>();&nbsp; &nbsp; date = new DateTime(date.Year, date.Month, 1).AddMonths(1).AddDays(-1);&nbsp; &nbsp; while(result.Count < 3)&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; // > 0 to exclude sunday, < 6 to exclude saturday&nbsp; &nbsp; &nbsp; &nbsp; if((int)date.DayOfWeek > 0 && (int)date.DayOfWeek < 6)&nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; result.Add(date);&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; date = date.AddDays(-1);&nbsp; &nbsp; }&nbsp; &nbsp; return result;}Contains() 在您的结果中搜索bool valid = GetLastWorkingDays(date).Contains(date);
随时随地看视频慕课网APP
我要回答