npm i lunar-lite -S
你也可以用你熟悉的任何包管理软件安装依赖。
/**
* 农历日期对象
*
* @property
* - lunarYear 年
* - lunarMonth 月
* - lunarDay 日
* - isLeap 月份是否闰月
*
* @function toString() 输出 YYYY-M-D 或 农历中文 字符串
*/
export type LunarDate = {
/** 农历年 */
lunarYear: number;
/** 农历月 */
lunarMonth: number;
/** 农历日 */
lunarDay: number;
/** 是否闰月 */
isLeap: boolean;
/**
* 转化为字符串
*
* @param toCnStr 是否使用中文字符串, 若该参数为false则字符串中不会携带闰月信息
* @returns string
* @example
* lunarYear = 2023;
* lunarMonth = 6;
* lunarDay = 12;
* isLeap = true;
*
* toString(); // 2023-6-12
* toString(true); // 二〇二三年闰二月十一
*/
toString: (toCnStr?: boolean) => string;
};
/**
* 阳历日期对象
*
* @property
* - solarYear 年
* - solarMonth 月
* - solarDay 日
*
* @function toString() 将对象以 YYYY-M-D 格式字符串输出
*/
export type SolarDate = {
/** 公历年 */
solarYear: number;
/** 公历月 */
solarMonth: number;
/** 公历日 */
solarDay: number;
/**
* 转化为字符串
*
* @returns string
* @example
* solarYear = 2023;
* solarMonth = 6;
* solarDay = 12;
*
* toString(); // 2023-6-12
*/
toString: () => string;
};
/**
* 公历转农历,年份需要在【1900~2100】之间,并且日期必须在1900-1-31之后
*
* @param dateStr 公历日期 YYYY-MM-DD格式的字符串或者Date对象
* @returns LunarDate
*/
type solar2lunar = (dateStr: string | Date) => LunarDate;
/**
* 农历转公历
*
* @param dateStr 农历日期 YYYY-MM-DD
* @param isLeapMonth 是否闰月,若该月不是闰月,会忽略该参数
* @returns SolarDate
*/
type lunar2solar = (dateStr: string, isLeapMonth?: boolean) => SolarDate;
import {solar2lunar, lunar2solar} from 'lunar-lite';
// 农历转公历
// 当该月不是闰月的时候,第二个参数会被忽略
const solarDate = lunar2solar('1990-10-10', true);
// 公历转农历
const lunarDate = solar2lunar('2023-10-23');