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

时间:2018-07-16 07:34:50

标签: c# date datetime

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

有没有一种更清洁的方法来执行此操作,而不仅仅是使用一堆条件逻辑,例如,如果今天是工作日>如果将3天添加到周末或下个月

欢呼

1 个答案:

答案 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);