zoukankan      html  css  js  c++  java
  • C# 获取一段日期内的工作日

            /// <summary>
            /// 根据指定时间段计算工作日天数
            /// </summary>
            /// <param name="firstDay"></param>
            /// <param name="lastDay"></param>
            /// <param name="bankHolidays"></param>
            /// <returns></returns>
            public static int BusinessDaysUntil(DateTime firstDay, DateTime lastDay, params DateTime[] bankHolidays)
            {
                firstDay = firstDay.Date;
                lastDay = lastDay.Date;
                if (firstDay > lastDay)
                    throw new ArgumentException("最后一天不正确" + lastDay);
    
                TimeSpan span = lastDay - firstDay;
                int businessDays = span.Days + 1;
                int fullWeekCount = businessDays / 7;
                if (businessDays > fullWeekCount * 7)
                {
                    int firstDayOfWeek = firstDay.DayOfWeek == DayOfWeek.Sunday ? 7 : (int)firstDay.DayOfWeek;
                    int lastDayOfWeek = lastDay.DayOfWeek == DayOfWeek.Sunday ? 7 : (int)lastDay.DayOfWeek;
    
                    if (lastDayOfWeek < firstDayOfWeek)
                        lastDayOfWeek += 7;
                    if (firstDayOfWeek <= 6)
                    {
                        if (lastDayOfWeek >= 7)
                            businessDays -= 2;
                        else if (lastDayOfWeek >= 6)
                            businessDays -= 1;
                    }
                    else if (firstDayOfWeek <= 7 && lastDayOfWeek >= 7)
                        businessDays -= 1;
                }
    
                businessDays -= fullWeekCount + fullWeekCount;
    
                foreach (DateTime bankHoliday in bankHolidays)
                {
                    DateTime bh = bankHoliday.Date;
                    if (firstDay <= bh && bh <= lastDay)
                        --businessDays;
                }
    
                return businessDays;
            }
  • 相关阅读:
    数据挖掘相关资料收集(持续更新)
    常见面试之机器学习算法思想简单梳理
    在c中保存状态
    lua 和 c
    lua 基础库
    lua 面向对象
    lua 高级
    lua 基础
    lua中的协程
    cocos2d中的可见性检测
  • 原文地址:https://www.cnblogs.com/GoCircle/p/8615573.html
Copyright © 2011-2022 走看看