创建Helper类,封装了两个方法:(获取当前日期和结束日期中所有的日期),(判断日期是否为法定节假日),话不多说直接上代码:

 public static class HolidaysThisMonthHelper
    {
        /// <summary>
        /// 获取当前日期,结束日期的中间日期
        /// </summary>
        /// <param name="dtmCurrent">开始时间</param>
        /// <param name="dtmFinishDate">结束时间</param>
        /// <returns></returns>
        public static IEnumerable<DateTime> GetMiddleDate(DateTime dtmCurrent, DateTime dtmFinishDate)
        {
            var result = new List<DateTime>();
            while (dtmCurrent.ToString("yyyy-MM-dd") != dtmFinishDate.ToString("yyyy-MM-dd"))
            {
                if (dtmCurrent.ToString() != dtmFinishDate.ToString())
                {
                    result.Add(dtmCurrent);
                    dtmCurrent = dtmCurrent.AddDays(1);
                }
                else break;
            }
            return result;
        }

        /// <summary>
        /// 判断是不是周末/节假日
        /// </summary>
        /// <param name="date">日期</param>
        /// <returns>周末和节假日返回true,工作日返回false</returns>
        public static async Task<bool> IsHolidayByDate(DateTime date)
        {
            var isHoliday = false;
            var webClient = new System.Net.WebClient();
            var PostVars = new System.Collections.Specialized.NameValueCollection
        {
            { "d", date.ToString("yyyyMMdd") }//参数
        };
            try
            {
                var day = date.DayOfWeek;

                //判断是否为周末
                if (day == DayOfWeek.Sunday || day == DayOfWeek.Saturday)
                    return true;

                //0为工作日,1为周末,2为法定节假日
                var byteResult = await webClient.UploadValuesTaskAsync("http://tool.bitefu.net/jiari/", "POST", PostVars);//请求地址,传参方式,参数集合
                var result = Encoding.UTF8.GetString(byteResult);//获取返回值
                if (result == "1" || result == "2")
                    isHoliday = true;
            }
            catch
            {
                isHoliday = false;
            }
            return isHoliday;
        }
    }

使用如下:

using HolidaysThisMonth;
using System.Text;

var ie = HolidaysThisMonthHelper.GetMiddleDate(Convert.ToDateTime("2022-10-01"), Convert.ToDateTime("2022-10-31"));
if (ie.Any())
{
    var list = ie.ToList();
    list.ForEach(item =>
    {
        var itemBool= HolidaysThisMonthHelper.IsHolidayByDate(item);
        global::System.Console.WriteLine($"{item}是否为节假日:{itemBool.Result}");
    });
}
Console.Read();

运行结果:

 

 由于需求需要则没有直接封装成一个获取节假日的方法,如有需要请自行封装改造哦