C# 接口获取所有节假日并存入库(批量循环对象操作)
解决思路:将每年的所有节日获取到,然后存入数据库,数据量不多,也就十几天,至于双休日的话,程序判断就好了,有个问题就是调休的没有处理【可以加一个状态字段1表示是休息的,0表示是调休的,然后程序里面自行判断下,当然网上可能也有现成的接口,但是一般都会有调用次数限制,可以分天数,每天调一点存数据库,自行取舍】,这里用到一个接口
https://api.jiejiariapi.com/v1/holidays/2023
//每年的1月1号自动更新节假日表 var allHolidayStr = BaseHelper.Get_HttpRequest("https://api.jiejiariapi.com/v1/holidays/" + DateTime.Now.ToString("yyyy")); if (allHolidayStr.IsNotNullOrEmpty()) { foreach (var item in JObject.Parse(allHolidayStr)) { var holidayDto = JsonConvert.DeserializeObject<HolidayClass>(item.Value.ToString()); if (holidayDto.isOffDay) //是节假日 { //保存数据 TbHoliday temp = new TbHoliday() { DateStr = DateTime.Parse(holidayDto.date) }; bs.SaveEntity(temp); } } }
/// <summary> /// 判断当前日期是否是法定节假日 /// </summary> /// <param name="dateTime"></param> /// <returns></returns> public static bool IsHoliday(DateTime dateTime) { BaseService bs = new BaseService(); var allHolidat = bs.GetEntities<TbHoliday>(c => true).Select(c => c.DateStr).ToList(); if ((allHolidat != null && allHolidat.Count() > 0 && allHolidat.Contains(dateTime)) || dateTime.DayOfWeek == DayOfWeek.Saturday || dateTime.DayOfWeek == DayOfWeek.Sunday) { return true; } return false; }
//调用
IsHoliday(DateTime.Parse(nowDate).Date)
本文来自博客园,作者:WantRemake,转载请注明原文链接:https://www.cnblogs.com/SmallChen/p/17496880.html