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 @   WantRemake  阅读(821)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示