Fork me on GitHub

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)

 

posted @ 2023-06-21 18:12  WantRemake  阅读(548)  评论(0编辑  收藏  举报