農(nóng)歷計(jì)算,百度的計(jì)算比較準(zhǔn)確,包括黃歷禁忌計(jì)算都比較準(zhǔn)確,而其他的一些網(wǎng)站,你可以對(duì)比下,基本上農(nóng)歷要是能準(zhǔn)確就算不錯(cuò)了,一般是閏月就有問(wèn)題,年頭年尾也有問(wèn)題。
一般是JS實(shí)現(xiàn)的,很少有Java版本的,我觀摩了網(wǎng)上N多Java版本的,基本都有問(wèn)題,所以下定決心,翻譯了一下Javascript成Java,故得出這個(gè)接口。
現(xiàn)在,我們網(wǎng)站采用微服務(wù)的方式提供出來(lái),響應(yīng)效率高,可以達(dá)到不限制次數(shù)。關(guān)鍵是免費(fèi)的,而且提供JSON方式返回。
接口返回的數(shù)據(jù)很全面,如:農(nóng)歷、黃歷、禁忌、星期、生肖、當(dāng)月的節(jié)氣、是否閏月、是不是大月等,具體自己體會(huì)。
參數(shù)說(shuō)明:格式為 yyyy-MM-dd,可以不傳參,默認(rèn)為當(dāng)天,Get請(qǐng)求即可。
農(nóng)歷查詢 演示
我測(cè)試一下請(qǐng)求當(dāng)天農(nóng)歷查詢,鏈接為:http://www.sojson.com/open/api/lunar/json.shtml 。
返回成功狀態(tài)為:200,失敗為500 。
農(nóng)歷查詢 JSON返回方式(成功)
{
"status": 200,//成功狀態(tài)
"message": "success",//成功
"data": {
"year": 2017,//當(dāng)前傳參公歷年
"month": 2,//當(dāng)前傳參公歷月
"day": 2,//當(dāng)前傳參的公歷日
"lunarYear": 2017,//數(shù)字農(nóng)歷年
"lunarMonth": 1,//數(shù)字農(nóng)歷月
"lunarDay": 6,//數(shù)字農(nóng)歷號(hào)
"cnyear": "貳零壹柒 ",//農(nóng)歷中文表示年
"cnmonth": "正",//農(nóng)歷中文表示月
"cnday": "初六",//農(nóng)歷中文表示天
"hyear": "丁酉",//年
"cyclicalYear": "丙申",//甲子年
"cyclicalMonth": "辛丑",//甲子月
"cyclicalDay": "庚申",//甲子日
"suit": "納采,訂盟,祭祀,求嗣,出火,塑繪,裁衣,會(huì)親友,入學(xué),拆卸,掃舍,造倉(cāng),掛匾,掘井,開(kāi)池,結(jié)網(wǎng),栽種,納畜,破土,修墳,立碑,安葬,入殮",//宜
"taboo": "祈福,嫁娶,造廟,安床,謝土",//禁忌
"animal": "雞", //生肖
"week": "星期四",//星期
"festivalList": [],//當(dāng)天節(jié)日
"jieqi": {//當(dāng)月節(jié)氣
"4": "立春",//4日立春
"19": "雨水"http://19日雨水
},
"maxDayInMonth": 29,//農(nóng)歷月當(dāng)前月天數(shù)
"leap": false,//是否是閏月
"bigMonth": false,//是否是大月
"lunarYearString": "丁酉"http://農(nóng)歷年
}
}
農(nóng)歷查詢 JSON返回方式(失敗)
失敗情況下一般是參數(shù)問(wèn)題,參數(shù)不識(shí)別,沒(méi)有按規(guī)則走,格式為yyyy-MM-dd,如2017-02-02。
{
"status": 500,
"message": "日期格式錯(cuò)誤,期望的格式為 yyyy-MM-dd ."
}
農(nóng)歷查詢 JSON返回方式,指定日期
我測(cè)試一下請(qǐng)求當(dāng)天農(nóng)歷查詢,鏈接為:http://www.sojson.com/open/api/lunar/json.shtml?date=2017-05-27,參數(shù)可以2017-5-27也可以。
請(qǐng)求成功結(jié)果,錯(cuò)誤信息參照上面。
{
"status": 200,//成功狀態(tài)
"message": "success",//成功
"data": {
"year": 2017,//當(dāng)前傳參公歷年
"month": 5,//當(dāng)前傳參公歷月
"day": 27,//當(dāng)前傳參的公歷日
"lunarYear": 2017,//數(shù)字農(nóng)歷年
"lunarMonth": 5,//數(shù)字農(nóng)歷月
"lunarDay": 2,//數(shù)字農(nóng)歷月
"cnyear": "貳零壹柒 ",//農(nóng)歷中文表示年
"cnmonth": "五",//農(nóng)歷中文表示月
"cnday": "初二",//農(nóng)歷中文表示天
"hyear": "丁酉",//年
"cyclicalYear": "丁酉",//甲子年
"cyclicalMonth": "乙巳",//甲子月
"cyclicalDay": "甲寅",//甲子日
"suit": "栽種,捕捉,畋獵,馀事勿取",//宜
"taboo": "開(kāi)市,動(dòng)土,祭祀,齋醮,安葬,探病",//禁忌
"animal": "雞",//生肖
"week": "星期六",//星期
"festivalList": [],//當(dāng)天節(jié)日
"jieqi": {//當(dāng)月節(jié)氣
"5": "立夏",//5日立夏
"21": "小滿"http://21日小滿
},
"maxDayInMonth": 29,//農(nóng)歷月當(dāng)前月天數(shù)
"leap": false,//是否是閏月
"lunarYearString": "丁酉",//是否是大月
"bigMonth": false//農(nóng)歷年
}
}
接口使用申明
因?yàn)樯婕暗讲l(fā)和有效資源問(wèn)題,小型站長(zhǎng)可以和我大個(gè)招呼,我可以提供免費(fèi)使用,如果是日調(diào)用超過(guò)2000次,請(qǐng)務(wù)必和我說(shuō)明,我盡量保證可用性,如果沒(méi)和我說(shuō)明,我會(huì)直接封掉IP段。此工具源代碼出售。RMB100元,學(xué)生50。用于網(wǎng)站的運(yùn)營(yíng)。
原文:點(diǎn)我跳轉(zhuǎn) 。