获取任何月份中没有周六和周日的天数?[关闭]


有一个输入字符串字段 “Januray 2020″,我想计算给定月份和年份的总工作日数。我想计算给定月份和年份的总工作日数。

我们可以用简单的c#来做吗?

解决方案:

由于你没有定义什么是工作日,你可以使用这个函数根据一个谓词来迭代一个月中的所有日子。

IEnumerable<DateTime> WorkDaysInMonth(int year, int month, Func<DateTime,bool> isNonWorkDay)
{
    var now = new DateTime(year, month, 1);

    while(now.Month == month)
    {
        if(!isNonWorkDay(now))
        {
            yield return now;
        }

        now = now.AddDays(1);
    }
}

所以,如果你只是想把周末创建为非工作日,那么你就会得到这样的总数。

var weekdays = WorkDaysInMonth(2020, 1, d => d.DayOfWeek == DayOfWeek.Saturday || d.DayOfWeek == DayOfWeek.Sunday);
var total = weekdays.Count();

同样,如果你有一些日历系统告诉你公共假期,那么你可以在谓词中添加一个调用,以查看所提供的日期是否为假期。

给TA打赏
共{{data.count}}人
人已打赏
未分类

Laravel - 处理完成后仍在内存中的工作的方法.

2022-9-8 20:10:39

未分类

逻辑运算符在计算后失败

2022-9-8 20:10:41

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索