最近再试着玩的时候发现了网上一个组件(获取农历)具体如下:
下载组件 chinese-lunar-calendar
1.npm install --save chinese-lunar-calendar
这样就可以再需要的页面引用了,具体如下:
<script>
import { getLunar } from 'chinese-lunar-calendar'
export default {
data() {
return {
getLunarDay: '',
year: new Date().getFullYear(),
month: new Date().getMonth() + 1,
date: new Date().getDate()
}
},
mounted() {
// 获取农历
this.getLunarDay = getLunar(this.year, this.month, this.date)
console.log(this.getLunarDay)
}
}
</script>
上方转自:https://blog.csdn.net/weixin_44483624/article/details/115455486
输出什么的点击原文链接就可以看的到,当然,通过这个就能得到当天的农历日期,但是我想做的是一个这样的
外边是阳历几号 (获取当前日期后通过slice分割出来)括号内是农历日期;
思前想后决定封装两个方法 beforeTime (昨天) afterTime(明天),再将获取到当天日期的天数传进去 beforeDay是往前几天(由于写了一个前天 昨天 今天 新加的,后边没要,就简单修改了一下)代码如下:
//昨天
beforeTime(year, month, day,beforeDay) {
if (day-beforeDay < 1 ) {
// if (day == 1) {
month--;
if (month == 0) {
month = 12;
year--;
}
if (
month == 1 ||
month == 3 ||
month == 5 ||
month == 7 ||
month == 8 ||
month == 10 ||
month == 12
) {
day = day-beforeDay+31;
} else if (month == 4 || month == 6 || month == 9 || month == 11) {
day = day-beforeDay+30;
// month--
} else if (month == 2) {
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
day = day-beforeDay+29;
} else {
day =day-beforeDay+28;
// day = 28-beforeDay+day
}
}
// }
}
else{
day -= beforeDay
}
return { year, month, day};
},
//明天
afterTime(year, month, day) {
if (
month == 1 ||
month == 3 ||
month == 5 ||
month == 7 ||
month == 8 ||
month == 10 ||
month == 12
) {
if (day == 31) {
day = 1;
if (month == 12) {
month = 1;
year++;
} else {
month++;
}
} else {
day++;
}
} else if (month == 4 || month == 6 || month == 9 || month == 11) {
if (day == 30) {
day = 1;
month++;
} else {
day++;
}
} else if (month == 2) {
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
if (day == 29) {
day = 1;
month++;
} else {
day++;
}
} else {
if (day == 28) {
day = 1;
month++;
} else {
day++;
}
}
}
return { year, month, day };
},
到这个地方就基本完成了 接下来就是获取赋值分割字符串在拼接一下,具体看代码(明天):
// 明天
let oldDateTime = this.afterTime(year, month + 1, day);
this.fea_day = oldDateTime.day;
this.getLunarFea = getLunar( oldDateTime.year, oldDateTime.month, oldDateTime.day);
var fea_lunar = this.getLunarFea.dateStr;
this.lunar_fea = fea_lunar.slice(2);
拼接字符串:
<el-tab-pane :label="fea_day + '(' + lunar_fea + ')'">
最后效果就实现了。虽然简单,但还是有记录的成就感!