假日查詢與老黃歷:lunar-javascript 上手實踐)
3行代碼搞定節(jié)假日查詢與老黃歷lunar-javascript 上手實踐【免費下載鏈接】lunar-javascript日歷、公歷(陽歷)、農(nóng)歷(陰歷、老黃歷)、佛歷、道歷支持節(jié)假日、星座、儒略日、干支、生肖、節(jié)氣、節(jié)日、彭祖百忌、每日宜忌、吉神宜趨兇煞宜忌、吉神(喜神/福神/財神/陽貴神/陰貴神)方位、胎神方位、沖煞、納音、星宿、八字、五行、十神、建除十二值星、青龍名堂等十二神、黃道黑道日及吉兇等。lunar is a calendar library for Solar and Chinese Lunar.項目地址: https://gitcode.com/gh_mirrors/lu/lunar-javascript做日程提醒或黃歷類功能時你大概被這些需求折磨過公歷農(nóng)歷怎么互轉(zhuǎn)這天是節(jié)假日還是調(diào)休上班宜搬家的吉日到底怎么算lunar-javascript 是一個無第三方依賴的 JavaScript 歷法庫把公歷陽歷、農(nóng)歷陰歷、老黃歷的節(jié)假日、節(jié)氣、干支生肖、每日宜忌、黃道黑道日吉兇這些計算都封裝好了接進項目就能用。為什么選它 看完本節(jié)你會判斷它是否適合你的場景。lunar-javascript 的核心價值有三點零依賴裝完就是一個lunar.js文件Node 和瀏覽器script直接引都能跑覆蓋面全從基礎(chǔ)的日期轉(zhuǎn)換到彭祖百忌、建除十二值星、十二神青龍名堂這類冷門字段都有現(xiàn)成實現(xiàn)算法經(jīng)過長周期驗證測試用例覆蓋了公元前后跨越上千年的歷法邊界如閏月、節(jié)氣交接不需要自己維護天文歷數(shù)據(jù)表。五分鐘跑起來lunar-javascript 安裝教程本節(jié)帶你完成從安裝到第一次成功調(diào)用的全過程全程兩條命令。npm install lunar-javascript裝好后新建test.js寫下第一行真正干活的代碼const { Solar } require(lunar-javascript); const solar Solar.fromYmd(1986, 5, 29); console.log(solar.toFullString()); console.log(solar.getLunar().toFullString());node test.js執(zhí)行第二行會輸出一整串老黃歷信息一九八六年四月廿一 丙寅(虎)年 癸巳(蛇)月 癸酉(雞)日……納音、喜神財神方位、沖煞都在里面。toFullString()是調(diào)試利器一個日期對象的全部字段一覽無余。核心功能精講查詢農(nóng)歷、節(jié)假日與黃歷挑三個最高頻的場景農(nóng)歷轉(zhuǎn)換、節(jié)假日查詢、黃歷吉兇。每個功能給最小可運行片段看完就能照抄進項目。如何快速完成公歷轉(zhuǎn)農(nóng)歷拿到公歷對象后調(diào)getLunar()就完成轉(zhuǎn)換反向則是Lunar.fromYmd(年, 月, 日)后調(diào)getSolar()月參數(shù)為負數(shù)時表示前一年的閏月如-11是閏冬月const { Lunar } require(lunar-javascript); const lunar Lunar.fromYmd(2021, 12, 29); // 農(nóng)歷 console.log(lunar.toString()); // 二〇二一年臘月廿九 console.log(lunar.getSolar().toString()); // 對應(yīng)公歷 2022-01-31效果雙向轉(zhuǎn)換各一行代碼且干支getDayInGanZhi()、生肖getYearShengXiao()等字段都掛在同一對象上不用再二次計算。節(jié)假日查詢與自定義修改HolidayUtil.getHoliday()接受2020-01-01字符串或(2025, 1, 1)年、月、日三個參數(shù)內(nèi)置元旦、春節(jié)、清明等主要節(jié)假日數(shù)據(jù)const { HolidayUtil } require(lunar-javascript); const holiday HolidayUtil.getHoliday(2020-01-01); console.log(holiday.getName()); // 元旦節(jié)數(shù)據(jù)想改就改fix()方法支持把某天改成別的節(jié)假日、追加自定義日期或整段刪除HolidayUtil.fix(202001011120200101); // 2020-01-01 改為春節(jié) HolidayUtil.fix(209901010120990101); // 追加 2099-01-01 為元旦節(jié) HolidayUtil.fix(20100101~000000000000000000000000000); // 刪除 2010-01-01注意fix()修改的是內(nèi)存中的全局數(shù)據(jù)只存在于當(dāng)前進程重啟后回到初始狀態(tài)。每日宜忌與黃道黑道日Lunar對象上直接掛著一整套黃歷字段getDayYi()/getDayJi()返回宜、忌數(shù)組getDayJiShen()/getDayXiongSha()是吉神與兇煞列表getDayTianShen()返回當(dāng)日的十二神青龍、明堂等getDayTianShenLuck()給出吉或兇的結(jié)論const { Solar } require(lunar-javascript); const lunar Solar.fromYmd(2025, 9, 16).getLunar(); console.log(lunar.getDayYi().toString()); // 宜做事項逗號分隔 console.log(lunar.getDayJi().toString()); // 忌做事項 console.log(lunar.getDayTianShen(), lunar.getDayTianShenLuck()); // 十二神 吉兇效果一行判斷getDayTianShenLuck() 吉就能篩出黃道吉日配合宜忌數(shù)組即可實現(xiàn)擇日功能無需查任何外部數(shù)據(jù)。實戰(zhàn)小案例掃出本月適合搬家的黃道吉日需求給定某公歷月份列出其中宜搬家且當(dāng)日為黃道吉日的日期解決擇日類應(yīng)用里最常見的篩選邏輯。const { Solar } require(lunar-javascript); const year 2025, month 11; const results []; for (let day 1; day 30; day) { const lunar Solar.fromYmd(year, month, day).getLunar(); if (lunar.getDayTianShenLuck() 吉 lunar.getDayYi().toString().includes(搬家)) { results.push(${lunar.getSolar().toYmd()} ${lunar.toString()}); } } console.log(results);思路就是三行判斷串起來公歷逐日遍歷 → 轉(zhuǎn)農(nóng)歷對象 → 用黃歷字段過濾。同一模式換個關(guān)鍵詞就能變成宜開市宜嫁娶的查詢器。常見坑與技巧 ??看完這四條能避開新手最常見的報錯和邏輯偏差。日期字符串要用橫杠格式。HolidayUtil.getHoliday(2020-01-01)能命中20200101不行。參數(shù)也可以拆成三個整數(shù)傳入內(nèi)部會自動補零拼接。fix()是全局副作用。它直接改內(nèi)存里的節(jié)假日表測試多個用例時會互相污染Jest 中如果斷言失敗先檢查是否被前面用例改過數(shù)據(jù)。名稱數(shù)組HolidayUtil.NAMES的下標(biāo)和數(shù)據(jù)里的索引一一對應(yīng)改名字時別動下標(biāo)順序。干支年有三套口徑別混用。getYearInGanZhi()以春節(jié)為界getYearInGanZhiByLiChun()以立春為界getYearInGanZhiExact()按精確交節(jié)時刻算。年初這段時間三個結(jié)果可能不一致如 2020 年 2 月 4 日立春前前兩者分別是庚子和己亥做命理功能時要明確口徑。宜忌返回的是數(shù)組。getDayYi()得到數(shù)組后直接console.log看著沒問題但拼接字符串記得toString()判斷包含關(guān)系用includes()時先把數(shù)組轉(zhuǎn)成逗號分隔串避免匹配到半截詞。一行require接進項目農(nóng)歷、節(jié)假日、黃歷三塊能力就都齊了。想深入可以看 README.md 里的用法示例、demo.html 的頁面演示核心實現(xiàn) 里每個字段都有注釋tests/Lunar.test.js 和tests/Holiday.test.js 則是驗證歷法邊界最好的參考資料?!久赓M下載鏈接】lunar-javascript日歷、公歷(陽歷)、農(nóng)歷(陰歷、老黃歷)、佛歷、道歷支持節(jié)假日、星座、儒略日、干支、生肖、節(jié)氣、節(jié)日、彭祖百忌、每日宜忌、吉神宜趨兇煞宜忌、吉神(喜神/福神/財神/陽貴神/陰貴神)方位、胎神方位、沖煞、納音、星宿、八字、五行、十神、建除十二值星、青龍名堂等十二神、黃道黑道日及吉兇等。lunar is a calendar library for Solar and Chinese Lunar.項目地址: https://gitcode.com/gh_mirrors/lu/lunar-javascript創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考