UNPKG

ipink-util

Version:

util.js

276 lines (274 loc) 9.35 kB
import { DateInfo, DateValue } from './date'; export interface LunarInfo { lunarYear?: string | number; lunarMonth?: string | number; lunarDay?: string | number; lunarShengXiao?: string; } export interface CalendarInfo { /** @desc 天干地支 年 **/ gzYear: string; /** @desc 天干地支 月 **/ gzMonth: string; /** @desc 天干地支 日 **/ gzDay: string; /** @desc 农历 年 **/ lYear: number; /** @desc 农历 月 **/ lMonth: number; /** @desc 农历 日 **/ lDay: number; /** @desc 生肖 **/ animal: string; /** @desc 农历 汉字月 **/ monthCn: string; /** @desc 农历 汉字日 **/ dayCn: string; /** @desc 国际 年 **/ year: number; /** @desc 国际 月 **/ month: number; /** @desc 国际 日 **/ day: number; /** @desc 是否今天 **/ isToday: boolean; /** @desc 是否闰月 **/ isLeap: boolean; /** @desc 是否节气 **/ isTerm: boolean; /** @desc 是否是节日 **/ isFestival?: boolean; /** @desc 周几 **/ week: number; /** @desc 周几 汉字 **/ weekCn: string; /** @desc 节气 **/ term: string | null; /** @desc 星座 **/ astro: string; } declare let lunarMonth: readonly ["正", "二", "三", "四", "五", "六", "七", "八", "九", "十", "冬", "腊"], lunarDay: readonly ["一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "初", "廿"], diZhi: readonly ["子鼠", "丑牛", "寅虎", "卯兔", "辰龙", "巳蛇", "午马", "未羊", "申猴", "酉鸡", "戌狗", "亥猪"]; export type LunarMonthType = (typeof lunarMonth)[number]; export type LunarDayType = (typeof lunarDay)[number]; export type DiZhiType = (typeof diZhi)[number]; export declare const sloarToLunar: (sy: number, sm: number, sd: number) => LunarInfo; export declare const getYearMonthDay: (sy: number, sm: number, sd: number) => string; /** * @desc 获取时间 * @param { Date } date new Date() */ export declare const getYearMonthDayNew: (date?: Date) => DateInfo; export declare const defaultLunar: { readonly '1-1': "春节"; readonly '1-15': "元宵节"; readonly '2-2': "龙头节"; readonly '5-5': "端午节"; readonly '7-7': "七夕节"; readonly '7-15': "中元节"; readonly '8-15': "中秋节"; readonly '9-9': "重阳节"; readonly '10-1': "寒衣节"; readonly '10-15': "下元节"; readonly '12-8': "腊八节"; readonly '12-23': "小年"; }; export type LunarKeyType = keyof (typeof defaultLunar); export declare const defaultGregorian: { readonly '1-1': "元旦"; readonly '2-14': "情人节"; readonly '3-8': "妇女节"; readonly '3-12': "植树节"; readonly '5-1': "劳动节"; readonly '5-4': "青年节"; readonly '6-1': "儿童节"; readonly '7-1': "建党节"; readonly '8-1': "建军节"; readonly '9-10': "教师节"; readonly '10-1': "国庆节"; readonly '12-24': "平安夜"; readonly '12-25': "圣诞节"; }; export type GregorianKeyType = keyof (typeof defaultGregorian); /** * @desc @1900-2100区间内的公历、农历互转 * @公历转农历:calendar.solar2lunar(1987,11,01); //[you can ignore params of prefix 0] * @农历转公历:calendar.lunar2solar(1987,09,10); //[you can ignore params of prefix 0] */ export declare class Calendar { constructor(); /** * 农历1900-2100的润大小信息表 * @Array Of Property * @return Hex */ lunarInfo: number[]; /** * 公历每个月份的天数普通表 * @Array Of Property * @return Number */ solarMonth: number[]; /** * 天干地支之天干速查表 * @Array Of Property trans["甲","乙","丙","丁","戊","己","庚","辛","壬","癸"] * @return Cn string */ Gan: string[]; /** * 天干地支之地支速查表 * @Array Of Property * @trans["子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"] * @return Cn string */ Zhi: string[]; /** * 天干地支之地支速查表<=>生肖 * @Array Of Property * @trans["鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"] * @return Cn string */ Animals: string[]; /** * 24节气速查表 * @Array Of Property * @trans["小寒","大寒","立春","雨水","惊蛰","春分","清明","谷雨","立夏","小满","芒种","夏至","小暑","大暑","立秋","处暑","白露","秋分","寒露","霜降","立冬","小雪","大雪","冬至"] * @return Cn string */ solarTerm: string[]; /** * 1900-2100各年的24节气日期速查表 * @Array Of Property * @return 0x string For splice */ sTermInfo: string[]; /** * 数字转中文速查表 * @Array Of Property * @trans ['日','一','二','三','四','五','六','七','八','九','十'] * @return Cn string */ nStr1: string[]; /** * 日期转农历称呼速查表 * @Array Of Property * @trans ['初','十','廿','卅'] * @return Cn string */ nStr2: string[]; /** * 月份转农历称呼速查表 * @Array Of Property * @trans ['正','一','二','三','四','五','六','七','八','九','十','冬','腊'] * @return Cn string */ nStr3: string[]; /** * 返回农历y年一整年的总天数 * @param lunar Year * @return Number * @eg:var count = calendar.lYearDays(1987) ;//count=387 */ lYearDays(y: number): number; /** * 返回农历y年闰月是哪个月;若y年没有闰月 则返回0 * @param lunar Year * @return Number (0-12) * @eg:var leapMonth = calendar.leapMonth(1987) ;//leapMonth=6 */ leapMonth(y: number): number; /** * 返回农历y年闰月的天数 若该年没有闰月则返回0 * @param lunar Year * @return Number (0、29、30) * @eg:var leapMonthDay = calendar.leapDays(1987) ;//leapMonthDay=29 */ leapDays(y: number): number; /** * 返回农历y年m月(非闰月)的总天数,计算m为闰月时的天数请使用leapDays方法 * @param lunar Year * @return Number (-1、29、30) * @eg:var MonthDay = calendar.monthDays(1987,9) ;//MonthDay=29 */ monthDays(y: number, m: number): number; /** * 返回公历(!)y年m月的天数 * @param solar Year * @return Number (-1、28、29、30、31) * @eg:var solarMonthDay = calendar.leapDays(1987) ;//solarMonthDay=30 */ solarDays(y: number, m: number): number; /** * 农历年份转换为干支纪年 * @param lYear 农历年的年份数 * @return Cn string */ toGanZhiYear(lYear: number): string; /** * 公历月、日判断所属星座 * @param cMonth [description] * @param cDay [description] * @return Cn string */ toAstro(cMonth: number, cDay: number): string; /** * 传入offset偏移量返回干支 * @param offset 相对甲子的偏移量 * @return Cn string */ toGanZhi(offset: number): string; /** * 传入公历(!)y年获得该年第n个节气的公历日期 * @param y公历年(1900-2100);n二十四节气中的第几个节气(1~24);从n=1(小寒)算起 * @return day Number * @eg:var _24 = calendar.getTerm(1987,3) ;//_24=4;意即1987年2月4日立春 */ getTerm(y: number, n: number): number; /** * 传入农历数字月份返回汉语通俗表示法 * @param lunar month * @return Cn string * @eg:var cnMonth = calendar.toChinaMonth(12) ;//cnMonth='腊月' */ toChinaMonth(m: number): string | number; /** * 传入农历日期数字返回汉字表示法 * @param lunar day * @return Cn string * @eg:var cnDay = calendar.toChinaDay(21) ;//cnMonth='廿一' */ toChinaDay(d: number): string; /** * 年份转生肖[!仅能大致转换] => 精确划分生肖分界线是“立春” * @param y year * @return Cn string * @eg:var animal = calendar.getAnimal(1987) ;//animal='兔' */ getAnimal(y: number): string; /** * 传入阳历年月日获得详细的公历、农历object信息 <=>JSON * @param y solar year * @param m solar month * @param d solar day * @return JSON object * @eg:console.log(calendar.solar2lunar(1987,11,01)); */ solar2lunar(y: number, m: number, d: number): CalendarInfo | -1; /** * 传入农历年月日以及传入的月份是否闰月获得详细的公历、农历object信息 <=>JSON * @param y lunar year * @param m lunar month * @param d lunar day * @param isLeapMonth lunar month is leap or not.[如果是农历闰月第四个参数赋值true即可] * @return JSON object * @eg:console.log(calendar.lunar2solar(1987,9,10)); */ lunar2solar(y: number, m: number, d: number, isLeapMonth?: boolean | number): CalendarInfo | -1; /** * @desc 获取时间 * @param { number } day -7 一周前 -1 昨天 0 今天 1 明天 7 一周后 * @param { DateValue } data new Date() */ $getDay(day: number, data: DateValue): string; } export declare const CalendarInstance: Calendar; export {};