判断日期是否为法定节假日的API接口与示例函数
需要判定某日期是否为法定节假日,由于国家的节假日每年都在变动,所以使用接口判定是必要的。可惜的是,这样的接口并不多,在此汇总三个:
- http://tool.bitefu.net/jiari/
- http://www.easybots.cn/holiday_api.net
- https://www.juhe.cn/docs/api/id/177
前两个看起来是个人的,最后一个是聚合数据的万年历接口。
在我的小项目中使用了前两个。感觉个人的搭建可能不会太稳定,但是聚合的api我看限制越来越多,每天只能进行100次调用。
附送一段小项目中的代码,使用curl获取前两项接口和Thinkphp5的缓存机制,判断当前日期是否为节假日的函数。
{
$today = date('Ymd');
if (cache($today) !== false) {
return cache($today);
} else {
$api1 = juhecurl('http://tool.bitefu.net/jiari/?d='.$today);
if (is_numeric($api1)) {
cache($today, $api1, 86400);
return cache($today);
} else {
$api2 = json_decode(juhecurl('http://www.easybots.cn/api/holiday.php?d='.$today));
if (is_numeric($api2)) {
cache($today, $api2->$today, 86400);
return cache($today);
} else {
return -1;
}
}
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
function isHoliday()
{
$today = date('Ymd');
if (cache($today) !== false) {
return cache($today);
} else {
$api1 = juhecurl('http://tool.bitefu.net/jiari/?d='.$today);
if (is_numeric($api1)) {
cache($today, $api1, 86400);
return cache($today);
} else {
$api2 = json_decode(juhecurl('http://www.easybots.cn/api/holiday.php?d='.$today));
if (is_numeric($api2)) {
cache($today, $api2->$today, 86400);
return cache($today);
} else {
return -1;
}
}
}
}
|
以上代码中cache()缓存助手函数是thinkphp5自带,juhecurl()是一段curl访问函数,仅供参考,不能直接转移到其他项目中。
由于两个接口的返回结果是较为统一的,工作日为0,休息日1,节假日2。所以没有做详细判断,都取不到结果则返回-1。
由于两个接口都不像太规范,建议在使用的时候,先看一下是否还可用。如果能考虑一定预算的话,推荐使用聚合接口稳定点。
判断日期是否为法定节假日的API接口与示例函数的更多相关文章
- PHP 判断当前日期是否是法定节假日或者休息日 (原)
//判断日期是不是节假日或者双休日接口 @param time [时间(时间戳或者Y-m-d都可)] public function get_type_by_date(){ $t = $_GET['t ...
- PHP 判断当前日期是否是法定节假日或者休息日
1.代码如下 $date = date("Ymd",time()); $url = "http://api.goseek.cn/Tools/holiday?date=&q ...
- JAVA的免费天气api接口调用示例
step1:选择本文所示例的接口"免费天气api" url:https://www.juhe.cn/docs/api/id/39/aid/87 step2:每个接口都需要传入一个参 ...
- 03: zabbix API接口 对 主机、主机组、模板、应用集、监控项、触发器等增删改查
目录:Django其他篇 01: 安装zabbix server 02:zabbix-agent安装配置 及 web界面管理 03: zabbix API接口 对 主机.主机组.模板.应用集.监控项. ...
- 调用免费API查询全年工作日、周末、法定节假日、节假日调休补班数据
前言 日常开发中,难免会用到判断今天是工作日.周末.法定节假日.节假日调休补班做一些业务处理,例如:仅在上班时间给用户推送消息.本文记录调用免费API查询全年工作日.周末.法定节假日.节假日调休补班数 ...
- java 判断日期是否是节假日
1.新建一个excel命名为“节假日.xls”存放节假日,模板格式如下 2.判断是否是节假日的类 工作日返回true ,休息日返回false. 需要引用poi-bin-3.9包,包放在博客文件中 im ...
- Python-获取法定节假日
获取公共节假日的接口,http://www.easybots.cn/holiday_api.net, 具体代码如下: # -*- coding:utf-8 -*- import json import ...
- C#实现工作日和休息日(包括法定节假日)的计算
转自:http://www.cnblogs.com/yuan-chong/p/HolidayHelper.html 一.开发背景: 最近在公司开发的系统中,需要计算工作日,就是给出一个采购周期(n天) ...
- java 查询指定月份的工作日(不包括法定节假日)
/** * 日期工具类 用于获取指定月份的工作日(除去周末和法定节假日) */ public class DateUtils { public static void main(String[] ar ...
随机推荐
- Python实现 下载IJCAI会议所有论文
import requests import threading def get_file_content(num): savepath = '%04d.pdf' % (num) suburl = ' ...
- ACM-ICPC 2018 沈阳赛区(网络赛)
D.Made In Heaven One day in the jail, F·F invites Jolyne Kujo (JOJO in brief) to play tennis with he ...
- bzoj 2001 CITY 城市建设 cdq分治
题目传送门 题解: 对整个修改的区间进行分治.对于当前修改区间来说,我们对整幅图中将要修改的边权都先改成-inf,跑一遍最小生成树,然后对于一条树边并且他的权值不为-inf,那么这条边一定就是树边了. ...
- Two Graphs 牛客网暑期ACM多校训练营(第一场)D 图论基础知识 全排列
链接:https://www.nowcoder.com/acm/contest/139/D来源:牛客网 Two undirected simple graphs and where are isomo ...
- Redis与Queue
Redis有多种数据结构,适合多种不同的应用场景 1. 使用Redis做缓存 Redis的字符串.哈希表两种数据结构适合用来储存大量的键值对信息,从而实现高速缓存. 2. 使用Redis做队列 Red ...
- js-DOM ~ 05. Date日期的相关操作、string、查字符串的位置、给索引查字符、字符串截取slice/substr/substring、去除空格、替换、大小写、Math函数、事件绑定、this
内置对象: 语言自带的对象/提供了常用的.基本的功能 打印数组和字符串不用for... in / 打印josn的时候采用for...in Date 获取当前事件: var date = ...
- 【LeetCode】[0002] 【两数之和】
题目描述 思路分析 测试用例 Java代码 代码链接 题目描述 给出两个非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字.如果 ...
- 【Offer】[8] 【中序遍历的下一个结点】
题目描述 思路分析 Java代码 代码链接 题目描述 给定一棵二叉树和其中的一个结点,如何找出中序遍历顺序的下一个结点? 树中的结点除了有两个分别指向左右子结点的指针以外,还有一个指向父结点的指针. ...
- 详细的漏洞复现:Shellshock CVE-2014-6271 CVE-2014-7169
目录 前言 漏洞原理 利用方式 复现过程 1. 环境准备 (1) 为容器配置固定IP地址 (2) 查看bash版本 2. 本地验证:测试镜像系统是否存在漏洞 3. 远程模拟验证(原理验证) (1) 查 ...
- SpringSecurity自定义UsernamePasswordAuthenticationFilter
UsernamePasswordAuthenticationFilter介绍 UsernamePasswordAuthenticationFilter是AbstractAuthenticationPr ...