经手了一个项目,要求前端实现一个带有农历、节假日、节气的前端日历,类似万年历的样子。当时查了一些资料,都是一些零零散散的,要么就只有农历,要么只有传统节假日,还有一些对于节气的判断,各种语言的都有,看的头大。正好项目所需,就把很多东西结合起来,封装了一个dateTransForm.js 这么一个方法。实现效果如下:
首先是日历的实现,之前我有写了一篇文章链接地址如下(https://blog.csdn.net/u013262823/article/details/90406953),这篇文章详细解释了如何实现一个如上图不包含农历等信息的前端的日历月视图。
节气计算
//计算节气
function getJQ(yyyy,mm,dd){
var sTermInfo = new Array(0,21208,42467,63836,85337,107014,128867,150921,173149,195551,218072,240693,263343,285989,308563,331033,353350,375494,397447,419210,440795,462224,483532,504758);
var solarTerm = new Array("小寒","大寒","立春","雨水","惊蛰","春分","清明","谷雨","立夏","小满","芒种","夏至","小暑","大暑","立秋","处暑","白露","秋分","寒露","霜降","立冬","小雪","大雪","冬至");
var tmp1 = new Date((31556925974.7*(yyyy-1900)+sTermInfo[mm*2+1]