农历计算,百度的计算比较准确,包括黄历禁忌计算都比较准确,而其他的一些网站,你可以对比下,基本上农历要是能准确就算不错了,一般是闰月就有问题,年头年尾也有问题。
一般是JS实现的,很少有Java版本的,我观摩了网上N多Java版本的,基本都有问题,所以下定决心,翻译了一下Javascript成Java,故得出这个接口。
现在,我们网站采用微服务的方式提供出来,响应效率高,可以达到不限制次数。关键是免费的,而且提供JSON方式返回。
接口返回的数据很全面,如:
农历
、
黄历
、
禁忌
、
星期
、
生肖
、
当月的节气
、
是否闰月
、
是不是大月
等,具体自己体会。
参数说明:格式为
yyyy-MM-dd
,可以不传参,默认为当天,Get请求即可。
详细描述:
农历查询API
农历查询 演示
我测试一下请求当天农历查询,链接为:
http://www.sojson.com/open/api/lunar/json.shtml
返回成功状态为:
200
,失败为
500
农历查询 JSON返回方式(成功)
- {
- "status": 200,//成功状态
- "message": "success",//成功
- "data": {
- "year": 2017,//当前传参公历年
- "month": 2,//当前传参公历月
- "day": 2,//当前传参的公历日
- "lunarYear": 2017,//数字农历年
- "lunarMonth": 1,//数字农历月
- "lunarDay": 6,//数字农历号
- "cnyear": "贰零壹柒 ",//农历中文表示年
- "cnmonth": "正",//农历中文表示月
- "cnday": "初六",//农历中文表示天
- "hyear": "丁酉",//年
- "cyclicalYear": "丙申",//甲子年
- "cyclicalMonth": "辛丑",//甲子月
- "cyclicalDay": "庚申",//甲子日
- "suit": "纳采,订盟,祭祀,求嗣,出火,塑绘,裁衣,会亲友,入学,拆卸,扫舍,造仓,挂匾,掘井,开池,结网,栽种,纳畜,破土,修坟,立碑,安葬,入殓",//宜
- "taboo": "祈福,嫁娶,造庙,安床,谢土",//禁忌
- "animal": "鸡", //生肖
- "week": "星期四",//星期
- "festivalList": [],//当天节日
- "jieqi": {//当月节气
- "4": "立春",//4日立春
- "19": "雨水"//19日雨水
- },
- "maxDayInMonth": 29,//农历月当前月天数
- "leap": false,//是否是闰月
- "bigMonth": false,//是否是大月
- "lunarYearString": "丁酉"//农历年
- }
- }
农历查询 JSON返回方式(失败)
失败情况下一般是参数问题,参数不识别,没有按规则走,格式为
yyyy-MM-dd
,如2017-02-02。
- {
- "status": 500,
- "message": "日期格式错误,期望的格式为 yyyy-MM-dd ."
- }
农历查询 JSON返回方式,指定日期
我测试一下请求当天农历查询,链接为:
http://www.sojson.com/open/api/lunar/json.shtml?date=2017-05-27
,参数可以
2017-5-27
也可以
请求成功结果,错误信息参照上面。
- {
- "status": 200,//成功状态
- "message": "success",//成功
- "data": {
- "year": 2017,//当前传参公历年
- "month": 5,//当前传参公历月
- "day": 27,//当前传参的公历日
- "lunarYear": 2017,//数字农历年
- "lunarMonth": 5,//数字农历月
- "lunarDay": 2,//数字农历月
- "cnyear": "贰零壹柒 ",//农历中文表示年
- "cnmonth": "五",//农历中文表示月
- "cnday": "初二",//农历中文表示天
- "hyear": "丁酉",//年
- "cyclicalYear": "丁酉",//甲子年
- "cyclicalMonth": "乙巳",//甲子月
- "cyclicalDay": "甲寅",//甲子日
- "suit": "栽种,捕捉,畋猎,馀事勿取",//宜
- "taboo": "开市,动土,祭祀,斋醮,安葬,探病",//禁忌
- "animal": "鸡",//生肖
- "week": "星期六",//星期
- "festivalList": [],//当天节日
- "jieqi": {//当月节气
- "5": "立夏",//5日立夏
- "21": "小满"//21日小满
- },
- "maxDayInMonth": 29,//农历月当前月天数
- "leap": false,//是否是闰月
- "lunarYearString": "丁酉",//是否是大月
- "bigMonth": false//农历年
- }
- }
接口使用申明
因为涉及到并发和有效资源问题,小型站长可以和我大个招呼,我可以提供免费使用,如果是日调用超过
2000
次,请务必和我说明,我尽量保证可用性,如果没和我说明,我会直接封掉
IP
段。