查看原文
其他

前端日历实现:公历、农历、黄历、星座、节气、天干、地支、八字、星宿、五行...

CUGGZ 前端充电宝 2023-12-28

大家好呀,我是 CUGGZ。今天,公众号两周年啦!感谢三万多股东们两年来的支持,未来大家继续一起努力,快速晋升、大幅涨薪!

今天来分享一个超级强大的日历工具库:lunar,它支持阳历、阴历、佛历和道历等,基本满足大多数日历需求!

概述

lunar 是一个支持阳历、阴历、佛历和道历的日历工具库,其不依赖第三方,支持阳历、阴历、佛历、道历、儒略日的相互转换,还支持星座、干支、生肖、节气、节日、彭祖百忌、每日宜忌、吉神宜趋、凶煞宜忌、吉神方位、冲煞、纳音、星宿、八字、五行、十神、建除十二值星、青龙名堂等十二神、黄道日及吉凶等。

lunar 提供了多种开发语言的版本,包括 JavaScript、TypeScript、Flutter、Php、Java、swift、c#、Python、Go。

案例

下面来看一些简单的案例:

  • 老黄历

  • 年历

  • 仿百度搜索月历

  • 月历

  • 农历月历

  • 周历

  • 佛历月历

  • 道历月历

  • 摸鱼通知

基本使用

这个工具库只提供了一些 API,并没有提供现成的日历组件。

比如,阴历支持获取年月日、时辰、星期、节日、干支、禄、生肖、节气、物候、数九、三伏、六曜、二十八星宿、七政(七曜)、 四宫、四神兽、 彭祖百忌、八卦方位、吉神方位、胎神方位、太岁方位、冲煞、纳音、八字、十神、旬、旬空(空亡)、建除十二值星、十二天神、每日宜忌、时辰宜忌、吉神凶煞、月相、九星、日期推移、转阳历、转佛历、转道历。

// 二十八宿
const d = Lunar.fromDate(new Date());

console.log(d.getXiu());
console.log(d.getAnimal());
console.log(d.getXiuLuck());
console.log(d.getXiuSong());

// 输出结果



壁星造作主增财,丝蚕大熟福滔天,奴婢自来人口进,开门放水出英贤,埋葬招财官品进,家中诸事乐陶然,婚姻吉利主贵子,早播名誉著祖鞭。

阳历支持获取年月日、儒略日、获取星期、是否闰年、节日、星座、日期推移、日期相减、日期比较、薪资比例、转阴历。

// 年月日
var d = Solar.fromYmd(2016, 1, 1);
console.log(d);

// 年月日时分秒
d = Solar.fromYmdHms(2016, 1, 1, 20, 35, 0);
console.log(d);

// 日期
d = Solar.fromDate(new Date());
console.log(d.toFullString());

// 儒略日
d = Solar.fromJulianDay(2458960.5);
console.log(d.toFullString());

// 八字反推阳历
var l = Solar.fromBaZi('庚子', '辛巳', '庚午', '丙子');
for (var i=0, j=l.length; i < j; i++) {
d = l[i];
console.log(d.toFullString());
}

lunar 提供了很多 API,可以根据自己的需求选择性使用。

Github:https://github.com/6tail/lunar-javascript

往期推荐

ESlint 终于把这个大麻烦解决了!

Next.js 14 正式发布,更快、更强、更可靠!

10分钟快速搭建个人博客、文档网站!

Vite 的设计理念

当年很流行,现在已经淘汰的前端技术,请不要再继续学了!

2023 年 WebAssembly 现状:第四种 Web 语言

2023 年,Nuxt 怎么样了?

继续滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存