c# - C#查询工作日的方法

标签 c# .net .net-3.5

我的客户昨天给了我非常不同的要求。

我在服务器上有一个文件夹,每天有数千个文件传来。他要我写一个逻辑来检查文件的日期。如果文件夹中有超过 3 个工作日(周一至周五)的文件,那么他希望我删除这些文件

示例:如果在星期六在文件夹中创建了任何文件,那么该文件应该在星期三删除,因为我们中间有星期六和星期日,不应算作工作日。

我的开发环境是 c# .NET 3.5

我认为我应该编写自定义方法。

请帮帮我。

最佳答案

George Duckett 解决方案适合您。
为了帮助您,我发布了一个示例:

public static class DateExtensions
{
    public static bool IsBusinessDay(this DateTime date)
    {
        return
            date.DayOfWeek != DayOfWeek.Saturday &&
            date.DayOfWeek != DayOfWeek.Sunday;
    }
    public static int BusinessDaysTo(this DateTime fromDate, DateTime toDate, 
                                     int maxAllowed = 0)
    {
        int ret = 0;
        DateTime dt = fromDate;
        while (dt < toDate)
        {
            if (dt.IsBusinessDay()) ret++;
            if (maxAllowed > 0 && ret == maxAllowed) return ret;
            dt = dt.AddDays(1);
        }
        return ret;
    }
}

有了这个你可以做这样的事情:

DateTime from = DateTime.Now.AddDays(-8);
int ret = from.BusinessDaysTo(DateTime.Now);
int ret2 = from.BusinessDaysTo(DateTime.Now.AddDays(5), 8);

关于c# - C#查询工作日的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8253671/

相关文章:

c# - 如何还原最小/隐藏窗口?

c# - 如何获取 TreeView 中所选节点的根节点或第一级节点?

c# - 使用 .NET 生成 HTML 电子邮件

c# - 从托管 C++/CLI 使用 C# 扩展方法

.net-3.5 - .net 4 向后兼容性

c# - 在 Windows 中以编程方式确定电源使用情况?

c# - 这是一个错误吗? MissingMethodException 以 0 作为参数访问私有(private)静态方法

c# - 如何从 VSPackage 订阅解决方案和项目事件

c# - 使用 Fody 的 Mono 支持将 dll 嵌入到 exe 中

c# - 类型编译错误后新表达式需要 () 或 [] - C#