nutpi-calendar
是一个功能强大的 UTS 插件,用于处理公历和农历之间的转换,获取节日信息、节气、生肖、干支纪年等中国传统日历相关功能。旨在为 uni-app 开发者提供一个简单易用且高效的日历解决方案,尤其适用于需要深度集成中国农历功能的应用。
插件导出一个名为 calendar
的对象,包含以下主要方法:
solar2lunar(year: number, month: number, day: number): LunarDateInfo
lunarYear
: number - 农历年份lunarMonth
: number - 农历月份lunarDay
: number - 农历日期isLeap
: boolean - 是否闰月lunarYearChn
: string - 农历年份中文 (例如: "甲辰")lunarMonthChn
: string - 农历月份中文 (例如: "正月")lunarDayChn
: string - 农历日期中文 (例如: "初一")animal
: string - 生肖 (例如: "龙")astro
: string - 星座gzYear
: string - 干支年 (例如: "甲辰")gzMonth
: string - 干支月gzDay
: string - 干支日solarTerm
: string - 当日节气,若无则为空字符串festival
: string - 公历节日,若无则为空字符串lunarFestival
: string - 农历节日,若无则为空字符串year
: 公历年份 (例如: 2024)month
: 公历月份 (1-12)day
: 公历日期 (1-31)LunarDateInfo
对象,包含:lunar2solar(lunarYear: number, lunarMonth: number, lunarDay: number, isLeapMonth: boolean = false): SolarDateInfo
year
: number - 公历年份month
: number - 公历月份day
: number - 公历日期weekday
: number - 星期几 (0 为周日,1 为周一,以此类推)weekdayChn
: string - 星期几中文lunarYear
: 农历年份lunarMonth
: 农历月份lunarDay
: 农历日期isLeapMonth
: boolean (可选, 默认为 false
) - 是否为闰月SolarDateInfo
对象,包含:getFestival(year: number, month: number, day: number): string
solar2lunar
getLunarFestival(lunarYear: number, lunarMonth: number, lunarDay: number): string
lunar2solar
(无需 isLeapMonth
)setFestival(month: number, day: number, festivalName: string): void
month
: 公历月份day
: 公历日期festivalName
: 节日名称。如果传入空字符串,则表示删除该节日。setLunarFestival(lunarMonth: number, lunarDay: number, festivalName: string): void
lunarMonth
: 农历月份lunarDay
: 农历日期festivalName
: 节日名称。如果传入空字符串,则表示删除该节日。getTerm(year: number, month: number, day: number): string
solar2lunar
的返回值的 solarTerm
属性获取)。toGanZhiYear(year: number): string
getAnimal(year: number): string
以下是如何在您的 uni-app x 项目中使用 nutpi-calendar
插件:
引入插件
在您的 .uvue
或 .uts
文件中引入插件:
import calendar from "@/uni_modules/nutpi-calendar";
调用 API
// 在页面的 script 部分
exportdefault {
onLoad() {
// 公历转农历
const today = newDate();
const lunarDate = calendar.solar2lunar(
today.getFullYear(),
today.getMonth() + 1,
today.getDate()
);
console.log(
`今天是农历:${lunarDate.lunarYearChn}年 ${lunarDate.lunarMonthChn}${lunarDate.lunarDayChn}`
);
console.log(`生肖:${lunarDate.animal}`);
if (lunarDate.solarTerm) {
console.log(`节气:${lunarDate.solarTerm}`);
}
if (lunarDate.festival) {
console.log(`公历节日:${lunarDate.festival}`);
}
if (lunarDate.lunarFestival) {
console.log(`农历节日:${lunarDate.lunarFestival}`);
}
// 农历转公历 (例如:查询2024年正月初一的公历日期)
const solarDate = calendar.lunar2solar(2024, 1, 1);
console.log(
`2024年正月初一的公历日期是:${solarDate.year}-${solarDate.month}-${solarDate.day}`
);
// 获取指定日期的节日
const christmas = calendar.getFestival(today.getFullYear(), 12, 25);
console.log(`12月25日是:${christmas}`);
const springFestival = calendar.getLunarFestival(2025, 1, 1); // 查询2025年春节
console.log(`2025年农历正月初一是:${springFestival}`);
// 设置自定义节日
calendar.setFestival(10, 24, "程序员节");
const programmersDay = calendar.getFestival(
today.getFullYear(),
10,
24
);
console.log(`10月24日是:${programmersDay}`);
},
};
nutpi-calendar
是一个功能强大的 UTS 插件,用于处理公历和农历之间的转换,获取节日信息、节气、生肖、干支纪年等中国传统日历相关功能。插件地址:https://ext.dcloud.net.cn/plugin?id=23786,仓库地址:https://gitcode.com/nutpi/uni-calendar。参考资料
[1]
https://www.nutpi.net/: https://www.nutpi.net/
[2]
UTS 语法: https://uniapp.dcloud.net.cn/tutorial/syntax-uts.html
[3]
UTS API 插件: https://uniapp.dcloud.net.cn/plugin/uts-plugin.html
[4]
Hello UTS: https://gitcode.net/dcloud/hello-uts