我需要确定当前日期是否是一个月中的最后3个工作日之一
有没有一种更清洁的方法来执行此操作,而不仅仅是使用一堆条件逻辑,例如,如果今天是工作日>如果将3天添加到周末或下个月
等
欢呼
答案 0 :(得分:2)
编写一种方法来确定最近3个工作日,并检查给定日期是否属于其中
public static List<DateTime> GetLastWorkingDays(DateTime date)
{
List<DateTime> result = new List<DateTime>();
date = new DateTime(date.Year, date.Month, 1).AddMonths(1).AddDays(-1);
while(result.Count < 3)
{
// > 0 to exclude sunday, < 6 to exclude saturday
if((int)date.DayOfWeek > 0 && (int)date.DayOfWeek < 6)
{
result.Add(date);
}
date = date.AddDays(-1);
}
return result;
}
Contains()
在结果中进行搜索
bool valid = GetLastWorkingDays(date).Contains(date);