tyme4ts
Version:
Tyme是一个非常强大的日历工具库,可以看作 Lunar 的升级版,拥有更优的设计和扩展性,支持公历和农历、星座、干支、生肖、节气、法定假日等。
1,011 lines (1,009 loc) • 37.4 kB
text/typescript
declare enum YinYang {
YIN = 0,
YANG = 1
}
declare enum Side {
IN = 0,
OUT = 1
}
declare enum Gender {
WOMAN = 0,
MAN = 1
}
declare enum FestivalType {
DAY = 0,
TERM = 1,
EVE = 2
}
declare enum HideHeavenStemType {
RESIDUAL = 0,
MIDDLE = 1,
MAIN = 2
}
interface Culture {
getName(): string;
toString(): string;
}
interface Tyme extends Culture {
next(n: number): Tyme | null;
}
declare abstract class AbstractCulture implements Culture {
abstract getName(): string;
toString(): string;
equals(o: Culture): boolean;
protected indexOf(index: number, size: number): number;
protected static numeric(n: number | string, name: string): number;
}
declare abstract class AbstractTyme extends AbstractCulture implements Tyme {
abstract next(n: number): Tyme | null;
}
declare abstract class AbstractCultureDay extends AbstractCulture {
protected culture: AbstractCulture;
protected dayIndex: number;
protected constructor(culture: AbstractCulture, dayIndex: number);
getDayIndex(): number;
protected getCulture(): Culture;
getName(): string;
toString(): string;
}
declare abstract class LoopTyme extends AbstractTyme {
protected names: string[];
protected index: number;
protected constructor(names: string[], indexOrName: number | string);
protected indexOfBy(indexOrName: number | string): number;
getName(): string;
getIndex(): number;
getSize(): number;
protected nextIndex(n: number): number;
stepsTo(targetIndex: number): number;
}
declare class Animal extends LoopTyme {
static NAMES: string[];
protected constructor(indexOfName: number | string);
static fromIndex(index: number | string): Animal;
static fromName(name: string): Animal;
next(n: number): Animal;
getTwentyEightStar(): TwentyEightStar;
}
declare class TwentyEightStar extends LoopTyme {
static NAMES: string[];
protected constructor(indexOfName: number | string);
static fromIndex(index: number | string): TwentyEightStar;
static fromName(name: string): TwentyEightStar;
next(n: number): TwentyEightStar;
getSevenStar(): SevenStar;
getLand(): Land;
getZone(): Zone;
getAnimal(): Animal;
getLuck(): Luck;
}
declare class SevenStar extends LoopTyme {
static NAMES: string[];
protected constructor(indexOfName: number | string);
static fromIndex(index: number | string): SevenStar;
static fromName(name: string): SevenStar;
next(n: number): SevenStar;
getWeek(): Week;
}
declare class Week extends LoopTyme {
static NAMES: string[];
protected constructor(indexOfName: number | string);
static fromIndex(index: number | string): Week;
static fromName(name: string): Week;
next(n: number): Week;
getSevenStar(): SevenStar;
}
declare class Land extends LoopTyme {
static NAMES: string[];
protected constructor(indexOfName: number | string);
static fromIndex(index: number | string): Land;
static fromName(name: string): Land;
next(n: number): Land;
getDirection(): Direction;
}
declare class Direction extends LoopTyme {
static NAMES: string[];
protected constructor(indexOfName: number | string);
static fromIndex(index: number | string): Direction;
static fromName(name: string): Direction;
next(n: number): Direction;
getLand(): Land;
getElement(): Element;
}
declare class Zone extends LoopTyme {
static NAMES: string[];
protected constructor(indexOfName: number | string);
static fromIndex(index: number | string): Zone;
static fromName(name: string): Zone;
next(n: number): Zone;
getDirection(): Direction;
getBeast(): Beast;
}
declare class Beast extends LoopTyme {
static NAMES: string[];
protected constructor(indexOfName: number | string);
static fromIndex(index: number | string): Beast;
static fromName(name: string): Beast;
next(n: number): Beast;
getZone(): Zone;
}
declare class Luck extends LoopTyme {
static NAMES: string[];
protected constructor(indexOfName: number | string);
static fromIndex(index: number | string): Luck;
static fromName(name: string): Luck;
next(n: number): Luck;
}
declare class Constellation extends LoopTyme {
static NAMES: string[];
protected constructor(indexOfName: number | string);
static fromIndex(index: number | string): Constellation;
static fromName(name: string): Constellation;
next(n: number): Constellation;
}
declare class Duty extends LoopTyme {
static NAMES: string[];
protected constructor(indexOfName: number | string);
static fromIndex(index: number | string): Duty;
static fromName(name: string): Duty;
next(n: number): Duty;
}
declare class Element extends LoopTyme {
static NAMES: string[];
protected constructor(indexOfName: number | string);
static fromIndex(index: number | string): Element;
static fromName(name: string): Element;
next(n: number): Element;
getReinforce(): Element;
getRestrain(): Element;
getReinforced(): Element;
getRestrained(): Element;
getDirection(): Direction;
}
declare class God extends LoopTyme {
static NAMES: string[];
protected static dayGods: string[];
protected constructor(indexOfName: number | string);
static fromIndex(index: number | string): God;
static fromName(name: string): God;
next(n: number): God;
getLuck(): Luck;
static getDayGods(month: SixtyCycle, day: SixtyCycle): God[];
}
declare class Phase extends LoopTyme {
static NAMES: string[];
protected constructor(indexOfName: number | string);
static fromIndex(index: number | string): Phase;
static fromName(name: string): Phase;
next(n: number): Phase;
}
declare class Sixty extends LoopTyme {
static NAMES: string[];
protected constructor(indexOfName: number | string);
static fromIndex(index: number | string): Sixty;
static fromName(name: string): Sixty;
next(n: number): Sixty;
}
declare class Sound extends LoopTyme {
static NAMES: string[];
protected constructor(indexOfName: number | string);
static fromIndex(index: number | string): Sound;
static fromName(name: string): Sound;
next(n: number): Sound;
}
declare class Taboo extends LoopTyme {
static NAMES: string[];
protected static dayTaboo: string[];
protected static hourTaboo: string[];
protected constructor(indexOfName: number | string);
static fromIndex(index: number | string): Taboo;
static fromName(name: string): Taboo;
next(n: number): Taboo;
static _getTaboos(data: string[], supIndex: number, subIndex: number, index: number): Taboo[];
static getDayRecommends(month: SixtyCycle, day: SixtyCycle): Taboo[];
static getDayAvoids(month: SixtyCycle, day: SixtyCycle): Taboo[];
static getHourRecommends(day: SixtyCycle, hour: SixtyCycle): Taboo[];
static getHourAvoids(day: SixtyCycle, hour: SixtyCycle): Taboo[];
}
declare class Ten extends LoopTyme {
static NAMES: string[];
protected constructor(indexOfName: number | string);
static fromIndex(index: number | string): Ten;
static fromName(name: string): Ten;
next(n: number): Ten;
}
declare class Terrain extends LoopTyme {
static NAMES: string[];
protected constructor(indexOfName: number | string);
static fromIndex(index: number | string): Terrain;
static fromName(name: string): Terrain;
next(n: number): Terrain;
}
declare class Twenty extends LoopTyme {
static NAMES: string[];
protected constructor(indexOfName: number | string);
static fromIndex(index: number | string): Twenty;
static fromName(name: string): Twenty;
next(n: number): Twenty;
getSixty(): Sixty;
}
declare class Zodiac extends LoopTyme {
static NAMES: string[];
protected constructor(indexOfName: number | string);
static fromIndex(index: number | string): Zodiac;
static fromName(name: string): Zodiac;
next(n: number): Zodiac;
getEarthBranch(): EarthBranch;
}
declare class EarthBranch extends LoopTyme {
static NAMES: string[];
protected constructor(indexOfName: number | string);
static fromIndex(index: number | string): EarthBranch;
static fromName(name: string): EarthBranch;
next(n: number): EarthBranch;
getElement(): Element;
getYinYang(): YinYang;
getHideHeavenStemMain(): HeavenStem;
getHideHeavenStemMiddle(): HeavenStem | null;
getHideHeavenStemResidual(): HeavenStem | null;
getHideHeavenStems(): HideHeavenStem[];
getZodiac(): Zodiac;
getDirection(): Direction;
getOpposite(): EarthBranch;
getOminous(): Direction;
getPengZuEarthBranch(): PengZuEarthBranch;
getCombine(): EarthBranch;
getHarm(): EarthBranch;
combine(target: EarthBranch): Element | null;
}
declare class HeavenStem extends LoopTyme {
static NAMES: string[];
protected constructor(indexOfName: number | string);
static fromIndex(index: number | string): HeavenStem;
static fromName(name: string): HeavenStem;
next(n: number): HeavenStem;
getElement(): Element;
getYinYang(): YinYang;
getTenStar(target: HeavenStem): TenStar;
getDirection(): Direction;
getJoyDirection(): Direction;
getYangDirection(): Direction;
getYinDirection(): Direction;
getWealthDirection(): Direction;
getMascotDirection(): Direction;
getPengZuHeavenStem(): PengZuHeavenStem;
getTerrain(earthBranch: EarthBranch): Terrain;
getCombine(): HeavenStem;
combine(target: HeavenStem): Element | null;
}
declare class HideHeavenStem extends AbstractCulture {
protected heavenStem: HeavenStem;
protected type: HideHeavenStemType;
constructor(heavenStem: HeavenStem | string | number, type: HideHeavenStemType);
getName(): string;
getHeavenStem(): HeavenStem;
getType(): HideHeavenStemType;
}
declare class HideHeavenStemDay extends AbstractCultureDay {
constructor(hideHeavenStem: HideHeavenStem, dayIndex: number);
getHideHeavenStem(): HideHeavenStem;
getName(): string;
toString(): string;
}
declare class PengZuHeavenStem extends LoopTyme {
static NAMES: string[];
protected constructor(indexOfName: number | string);
static fromIndex(index: number | string): PengZuHeavenStem;
static fromName(name: string): PengZuHeavenStem;
next(n: number): PengZuHeavenStem;
}
declare class PengZuEarthBranch extends LoopTyme {
static NAMES: string[];
protected constructor(indexOfName: number | string);
static fromIndex(index: number | string): PengZuEarthBranch;
static fromName(name: string): PengZuEarthBranch;
next(n: number): PengZuEarthBranch;
}
declare class PengZu extends AbstractCulture {
protected pengZuHeavenStem: PengZuHeavenStem;
protected pengZuEarthBranch: PengZuEarthBranch;
protected constructor(sixtyCycle: SixtyCycle);
static fromSixtyCycle(sixtyCycle: SixtyCycle): PengZu;
getName(): string;
getPengZuHeavenStem(): PengZuHeavenStem;
getPengZuEarthBranch(): PengZuEarthBranch;
}
declare class TenStar extends LoopTyme {
static NAMES: string[];
protected constructor(indexOfName: number | string);
static fromIndex(index: number | string): TenStar;
static fromName(name: string): TenStar;
next(n: number): TenStar;
}
declare class SixStar extends LoopTyme {
static NAMES: string[];
protected constructor(indexOfName: number | string);
static fromIndex(index: number | string): SixStar;
static fromName(name: string): SixStar;
next(n: number): SixStar;
}
declare class MinorRen extends LoopTyme {
static NAMES: string[];
protected constructor(indexOfName: number | string);
static fromIndex(index: number | string): MinorRen;
static fromName(name: string): MinorRen;
next(n: number): MinorRen;
getLuck(): Luck;
getElement(): Element;
}
declare class SixtyCycle extends LoopTyme {
static NAMES: string[];
protected constructor(indexOfName: number | string);
static fromIndex(index: number | string): SixtyCycle;
static fromName(name: string): SixtyCycle;
next(n: number): SixtyCycle;
getHeavenStem(): HeavenStem;
getEarthBranch(): EarthBranch;
getSound(): Sound;
getPengZu(): PengZu;
getTen(): Ten;
getExtraEarthBranches(): EarthBranch[];
}
declare class Dog extends LoopTyme {
static NAMES: string[];
protected constructor(indexOfName: number | string);
static fromIndex(index: number | string): Dog;
static fromName(name: string): Dog;
next(n: number): Dog;
}
declare class DogDay extends AbstractCultureDay {
constructor(dog: Dog, dayIndex: number);
getDog(): Dog;
}
declare class PlumRain extends LoopTyme {
static NAMES: string[];
protected constructor(indexOfName: number | string);
static fromIndex(index: number | string): PlumRain;
static fromName(name: string): PlumRain;
next(n: number): PlumRain;
}
declare class PlumRainDay extends AbstractCultureDay {
constructor(plumRain: PlumRain, dayIndex: number);
getPlumRain(): PlumRain;
toString(): string;
}
declare class FetusHeavenStem extends LoopTyme {
static NAMES: string[];
constructor(index: number);
next(n: number): FetusHeavenStem;
}
declare class FetusEarthBranch extends LoopTyme {
static NAMES: string[];
constructor(index: number);
next(n: number): FetusEarthBranch;
}
declare class FetusDay extends AbstractCulture {
protected fetusHeavenStem: FetusHeavenStem;
protected fetusEarthBranch: FetusEarthBranch;
protected side: Side;
protected direction: Direction;
protected constructor(lunarDay: LunarDay);
static fromLunarDay(lunarDay: LunarDay): FetusDay;
getName(): string;
getSide(): Side;
getDirection(): Direction;
getFetusHeavenStem(): FetusHeavenStem;
getFetusEarthBranch(): FetusEarthBranch;
}
declare class Nine extends LoopTyme {
static NAMES: string[];
protected constructor(indexOfName: number | string);
static fromIndex(index: number | string): Nine;
static fromName(name: string): Nine;
next(n: number): Nine;
}
declare class NineDay extends AbstractCultureDay {
constructor(nine: Nine, dayIndex: number);
getNine(): Nine;
}
declare class Phenology extends LoopTyme {
static NAMES: string[];
protected constructor(indexOfName: number | string);
static fromIndex(index: number | string): Phenology;
static fromName(name: string): Phenology;
next(n: number): Phenology;
getThreePhenology(): ThreePhenology;
}
declare class ThreePhenology extends LoopTyme {
static NAMES: string[];
protected constructor(indexOfName: number | string);
static fromIndex(index: number | string): ThreePhenology;
static fromName(name: string): ThreePhenology;
next(n: number): ThreePhenology;
getThreePhenology(): ThreePhenology;
}
declare class Dipper extends LoopTyme {
static NAMES: string[];
protected constructor(indexOfName: number | string);
static fromIndex(index: number | string): Dipper;
static fromName(name: string): Dipper;
next(n: number): Dipper;
}
declare class PhenologyDay extends AbstractCultureDay {
constructor(phenology: Phenology, dayIndex: number);
getPhenology(): Phenology;
}
declare class NineStar extends LoopTyme {
static NAMES: string[];
protected constructor(indexOfName: number | string);
static fromIndex(index: number | string): NineStar;
static fromName(name: string): NineStar;
next(n: number): NineStar;
getColor(): string;
getElement(): Element;
getDipper(): Dipper;
getDirection(): Direction;
toString(): string;
}
declare class TwelveStar extends LoopTyme {
static NAMES: string[];
protected constructor(indexOfName: number | string);
static fromIndex(index: number | string): TwelveStar;
static fromName(name: string): TwelveStar;
next(n: number): TwelveStar;
getEcliptic(): Ecliptic;
}
declare class Ecliptic extends LoopTyme {
static NAMES: string[];
protected constructor(indexOfName: number | string);
static fromIndex(index: number | string): Ecliptic;
static fromName(name: string): Ecliptic;
next(n: number): Ecliptic;
getLuck(): Luck;
}
declare class LunarYear extends AbstractTyme {
protected static isInit: boolean;
protected static LEAP: Record<string, number[]>;
protected year: number;
protected static init(): void;
protected constructor(year: number | string);
static fromYear(year: number | string): LunarYear;
getYear(): number;
getDayCount(): number;
getMonthCount(): number;
getName(): string;
next(n: number): LunarYear;
getLeapMonth(): number;
getSixtyCycle(): SixtyCycle;
getTwenty(): Twenty;
getNineStar(): NineStar;
getJupiterDirection(): Direction;
getMonths(): LunarMonth[];
getKitchenGodSteed(): KitchenGodSteed;
}
declare class LunarSeason extends LoopTyme {
static NAMES: string[];
protected constructor(indexOfName: number | string);
static fromIndex(index: number | string): LunarSeason;
static fromName(name: string): LunarSeason;
next(n: number): LunarSeason;
}
declare class FetusMonth extends LoopTyme {
static NAMES: string[];
protected constructor(indexOfName: number | string);
static fromLunarMonth(lunarMonth: LunarMonth): FetusMonth | null;
next(n: number): FetusMonth;
}
declare class LunarMonth extends AbstractTyme {
static cache: Record<string, number[]>;
static NAMES: string[];
protected year: LunarYear;
protected month: number;
protected leap: boolean;
protected dayCount: number;
protected indexInYear: number;
protected firstJulianDay: JulianDay;
constructor(year: number | string, month: number | string, cache?: number[]);
static fromYm(year: number | string, month: number | string): LunarMonth;
getLunarYear(): LunarYear;
getYear(): number;
getMonth(): number;
getMonthWithLeap(): number;
getDayCount(): number;
getIndexInYear(): number;
getSeason(): LunarSeason;
getFirstJulianDay(): JulianDay;
isLeap(): boolean;
getWeekCount(start: number): number;
getName(): string;
toString(): string;
next(n: number): LunarMonth;
getDays(): LunarDay[];
getWeeks(start: number): LunarWeek[];
getSixtyCycle(): SixtyCycle;
getNineStar(): NineStar;
getJupiterDirection(): Direction;
getFetus(): FetusMonth | null;
getMinorRen(): MinorRen;
}
declare class LunarWeek extends AbstractTyme {
static NAMES: string[];
protected month: LunarMonth;
protected index: number;
protected start: Week;
protected constructor(year: number | string, month: number | string, index: number | string, start: number | string);
static fromYm(year: number | string, month: number | string, index: number | string, start: number | string): LunarWeek;
getLunarMonth(): LunarMonth;
getYear(): number;
getMonth(): number;
getIndex(): number;
getStart(): Week;
getName(): string;
toString(): string;
next(n: number): LunarWeek;
getFirstDay(): LunarDay;
getDays(): LunarDay[];
equals(o: LunarWeek): boolean;
}
declare class LunarDay extends AbstractTyme {
static NAMES: string[];
protected month: LunarMonth;
protected day: number;
protected constructor(year: number | string, month: number | string, day: number | string);
static fromYmd(year: number | string, month: number | string, day: number | string): LunarDay;
getLunarMonth(): LunarMonth;
getYear(): number;
getMonth(): number;
getDay(): number;
getName(): string;
toString(): string;
next(n: number): LunarDay;
isBefore(target: LunarDay): boolean;
isAfter(target: LunarDay): boolean;
getWeek(): Week;
getYearSixtyCycle(): SixtyCycle;
getMonthSixtyCycle(): SixtyCycle;
getSixtyCycle(): SixtyCycle;
getDuty(): Duty;
getTwelveStar(): TwelveStar;
getNineStar(): NineStar;
getJupiterDirection(): Direction;
getFetusDay(): FetusDay;
getPhase(): Phase;
getSolarDay(): SolarDay;
getTwentyEightStar(): TwentyEightStar;
getFestival(): LunarFestival | null;
getSixStar(): SixStar;
getGods(): God[];
getRecommends(): Taboo[];
getAvoids(): Taboo[];
getHours(): LunarHour[];
getMinorRen(): MinorRen;
}
interface EightCharProvider {
getEightChar(hour: LunarHour): EightChar;
}
declare class DefaultEightCharProvider implements EightCharProvider {
getEightChar(hour: LunarHour): EightChar;
}
declare class LunarSect2EightCharProvider implements EightCharProvider {
getEightChar(hour: LunarHour): EightChar;
}
declare class LunarHour extends AbstractTyme {
static provider: EightCharProvider;
protected day: LunarDay;
protected hour: number;
protected minute: number;
protected second: number;
protected constructor(year: number | string, month: number | string, day: number | string, hour: number | string, minute: number | string, second: number | string);
static fromYmdHms(year: number | string, month: number | string, day: number | string, hour: number | string, minute: number | string, second: number | string): LunarHour;
getLunarDay(): LunarDay;
getYear(): number;
getMonth(): number;
getDay(): number;
getHour(): number;
getMinute(): number;
getSecond(): number;
getName(): string;
toString(): string;
getIndexInDay(): number;
next(n: number): LunarHour;
isBefore(target: LunarHour): boolean;
isAfter(target: LunarHour): boolean;
getYearSixtyCycle(): SixtyCycle;
getMonthSixtyCycle(): SixtyCycle;
getDaySixtyCycle(): SixtyCycle;
getSixtyCycle(): SixtyCycle;
getTwelveStar(): TwelveStar;
getNineStar(): NineStar;
getSolarTime(): SolarTime;
getEightChar(): EightChar;
getRecommends(): Taboo[];
getAvoids(): Taboo[];
getMinorRen(): MinorRen;
}
declare class JulianDay extends AbstractTyme {
static J2000: number;
protected day: number;
protected constructor(day: number | string);
static fromJulianDay(day: number | string): JulianDay;
static fromYmdHms(year: number | string, month: number | string, day: number | string, hour: number | string, minute: number | string, second: number | string): JulianDay;
getDay(): number;
getName(): string;
next(n: number): JulianDay;
getSolarDay(): SolarDay;
getSolarTime(): SolarTime;
getWeek(): Week;
subtract(target: JulianDay): number;
}
declare class ShouXingUtil {
static PI_2: number;
static ONE_THIRD: number;
static SECOND_PER_DAY: number;
static SECOND_PER_RAD: number;
private static NUT_B;
private static DT_AT;
private static XL0;
private static XL1;
private static QI_KB;
private static QB;
private static SHUO_KB;
private static SB;
private static decode;
static nutationLon2(t: number): number;
static eLon(t: number, n: number): number;
static mLon(t: number, n: number): number;
static gxcSunLon(t: number): number;
static ev(t: number): number;
static saLon(t: number, n: number): number;
static dtExt(y: number, jsd: number): number;
static dtCalc(y: number): number;
static dtT(t: number): number;
static mv(t: number): number;
static saLonT(w: number): number;
static msaLon(t: number, mn: number, sn: number): number;
static msaLonT(w: number): number;
static saLonT2(w: number): number;
static msaLonT2(w: number): number;
static qiHigh(w: number): number;
static shuoHigh(w: number): number;
static qiLow(w: number): number;
static shuoLow(w: number): number;
static calcShuo(jd: number): number;
static calcQi(jd: number): number;
static qiAccurate(w: number): number;
static qiAccurate2(jd: number): number;
}
declare class SolarTerm extends LoopTyme {
static NAMES: string[];
protected year: number;
protected cursoryJulianDay: number;
protected constructor(year: number | string, indexOrName: number | string);
static fromIndex(year: number | string, index: number): SolarTerm;
static fromName(year: number | string, name: string): SolarTerm;
next(n: number): SolarTerm;
isJie(): boolean;
isQi(): boolean;
getJulianDay(): JulianDay;
getYear(): number;
getCursoryJulianDay(): number;
}
declare class SolarTermDay extends AbstractCultureDay {
constructor(solarTerm: SolarTerm, dayIndex: number);
getSolarTerm(): SolarTerm;
}
declare class SolarYear extends AbstractTyme {
protected year: number;
protected constructor(year: number | string);
static fromYear(year: number | string): SolarYear;
getYear(): number;
getDayCount(): number;
isLeap(): boolean;
getName(): string;
next(n: number): SolarYear;
getMonths(): SolarMonth[];
getSeasons(): SolarSeason[];
getHalfYears(): SolarHalfYear[];
}
declare class SolarHalfYear extends AbstractTyme {
static NAMES: string[];
protected year: SolarYear;
protected index: number;
protected constructor(year: number | string, index: number | string);
static fromIndex(year: number | string, index: number | string): SolarHalfYear;
getSolarYear(): SolarYear;
getYear(): number;
getIndex(): number;
getName(): string;
toString(): string;
next(n: number): SolarHalfYear;
getMonths(): SolarMonth[];
getSeasons(): SolarSeason[];
}
declare class SolarSeason extends AbstractTyme {
static NAMES: string[];
protected year: SolarYear;
protected index: number;
protected constructor(year: number | string, index: number | string);
static fromIndex(year: number | string, index: number | string): SolarSeason;
getSolarYear(): SolarYear;
getYear(): number;
getIndex(): number;
getName(): string;
toString(): string;
next(n: number): SolarSeason;
getMonths(): SolarMonth[];
}
declare class SolarMonth extends AbstractTyme {
static NAMES: string[];
static DAYS: number[];
protected year: SolarYear;
protected month: number;
protected constructor(year: number | string, month: number | string);
static fromYm(year: number | string, month: number | string): SolarMonth;
getSolarYear(): SolarYear;
getYear(): number;
getMonth(): number;
getDayCount(): number;
getIndexInYear(): number;
getSeason(): SolarSeason;
getWeekCount(start: number): number;
getName(): string;
toString(): string;
next(n: number): SolarMonth;
getWeeks(start: number): SolarWeek[];
getDays(): SolarDay[];
}
declare class SolarWeek extends AbstractTyme {
static NAMES: string[];
protected month: SolarMonth;
protected index: number;
protected start: Week;
protected constructor(year: number | string, month: number | string, index: number | string, start: number | string);
static fromYm(year: number | string, month: number | string, index: number | string, start: number | string): SolarWeek;
getSolarMonth(): SolarMonth;
getYear(): number;
getMonth(): number;
getIndex(): number;
getIndexInYear(): number;
getStart(): Week;
getName(): string;
toString(): string;
next(n: number): SolarWeek;
getFirstDay(): SolarDay;
getDays(): SolarDay[];
equals(o: SolarWeek): boolean;
}
declare class SolarDay extends AbstractTyme {
static NAMES: string[];
protected month: SolarMonth;
protected day: number;
protected constructor(year: number | string, month: number | string, day: number | string);
static fromYmd(year: number | string, month: number | string, day: number | string): SolarDay;
getSolarMonth(): SolarMonth;
getYear(): number;
getMonth(): number;
getDay(): number;
getWeek(): Week;
getConstellation(): Constellation;
getName(): string;
toString(): string;
next(n: number): SolarDay;
isBefore(target: SolarDay): boolean;
isAfter(target: SolarDay): boolean;
getTerm(): SolarTerm;
getTermDay(): SolarTermDay;
getSolarWeek(start: number): SolarWeek;
getPhenologyDay(): PhenologyDay;
getDogDay(): DogDay | null;
getPlumRainDay(): PlumRainDay | null;
getHideHeavenStemDay(): HideHeavenStemDay;
getNineDay(): NineDay | null;
getIndexInYear(): number;
subtract(target: SolarDay): number;
getJulianDay(): JulianDay;
getLunarDay(): LunarDay;
getLegalHoliday(): LegalHoliday | null;
getFestival(): SolarFestival | null;
}
declare class SolarTime extends AbstractTyme {
protected day: SolarDay;
protected hour: number;
protected minute: number;
protected second: number;
protected constructor(year: number | string, month: number | string, day: number | string, hour: number | string, minute: number | string, second: number | string);
static fromYmdHms(year: number | string, month: number | string, day: number | string, hour: number | string, minute: number | string, second: number | string): SolarTime;
getSolarDay(): SolarDay;
getYear(): number;
getMonth(): number;
getDay(): number;
getHour(): number;
getMinute(): number;
getSecond(): number;
getName(): string;
toString(): string;
next(n: number): SolarTime;
isBefore(target: SolarTime): boolean;
isAfter(target: SolarTime): boolean;
getTerm(): SolarTerm;
getJulianDay(): JulianDay;
subtract(target: SolarTime): number;
getLunarHour(): LunarHour;
}
declare class LegalHoliday extends AbstractTyme {
static NAMES: string[];
static DATA: string;
protected day: SolarDay;
protected name: string;
protected work: boolean;
protected constructor(year: number, month: number, day: number, data: string);
static fromYmd(year: number, month: number, day: number): LegalHoliday | null;
getName(): string;
getDay(): SolarDay;
isWork(): boolean;
toString(): string;
next(n: number): LegalHoliday | null;
}
declare class SolarFestival extends AbstractTyme {
static NAMES: string[];
static DATA: string;
protected type: FestivalType;
protected index: number;
protected day: SolarDay;
protected name: string;
protected startYear: number;
protected constructor(type: FestivalType, day: SolarDay, startYear: number, data: string);
static fromIndex(year: number, index: number): SolarFestival | null;
static fromYmd(year: number, month: number, day: number): SolarFestival | null;
getName(): string;
getIndex(): number;
getDay(): SolarDay;
getType(): FestivalType;
getStartYear(): number;
toString(): string;
next(n: number): SolarFestival | null;
}
declare class LunarFestival extends AbstractTyme {
static NAMES: string[];
static DATA: string;
protected type: FestivalType;
protected index: number;
protected day: LunarDay;
protected name: string;
protected solarTerm: SolarTerm | null;
protected constructor(type: FestivalType, day: LunarDay, solarTerm: SolarTerm | null, data: string);
static fromIndex(year: number, index: number): LunarFestival | null;
static fromYmd(year: number, month: number, day: number): LunarFestival | null;
getName(): string;
getIndex(): number;
getDay(): LunarDay;
getType(): FestivalType;
getSolarTerm(): SolarTerm | null;
toString(): string;
next(n: number): LunarFestival;
}
declare class EightChar extends AbstractCulture {
protected year: SixtyCycle;
protected month: SixtyCycle;
protected day: SixtyCycle;
protected hour: SixtyCycle;
constructor(year: SixtyCycle | string, month: SixtyCycle | string, day: SixtyCycle | string, hour: SixtyCycle | string);
getYear(): SixtyCycle;
getMonth(): SixtyCycle;
getDay(): SixtyCycle;
getHour(): SixtyCycle;
getFetalOrigin(): SixtyCycle;
getFetalBreath(): SixtyCycle;
getOwnSign(): SixtyCycle;
getBodySign(): SixtyCycle;
getDuty(): Duty;
getName(): string;
getSolarTimes(startYear: number, endYear: number): SolarTime[];
}
declare class ChildLimitInfo {
protected startTime: SolarTime;
protected endTime: SolarTime;
protected yearCount: number;
protected monthCount: number;
protected dayCount: number;
protected hourCount: number;
protected minuteCount: number;
constructor(startTime: SolarTime, endTime: SolarTime, yearCount: number, monthCount: number, dayCount: number, hourCount: number, minuteCount: number);
getStartTime(): SolarTime;
getEndTime(): SolarTime;
getYearCount(): number;
getMonthCount(): number;
getDayCount(): number;
getHourCount(): number;
getMinuteCount(): number;
}
interface ChildLimitProvider {
getInfo(birthTime: SolarTime, term: SolarTerm): ChildLimitInfo;
}
declare abstract class AbstractChildLimitProvider implements ChildLimitProvider {
next(birthTime: SolarTime, addYear: number, addMonth: number, addDay: number, addHour: number, addMinute: number, addSecond: number): ChildLimitInfo;
abstract getInfo(birthTime: SolarTime, term: SolarTerm): ChildLimitInfo;
}
declare class DefaultChildLimitProvider extends AbstractChildLimitProvider {
getInfo(birthTime: SolarTime, term: SolarTerm): ChildLimitInfo;
}
declare class China95ChildLimitProvider extends AbstractChildLimitProvider {
getInfo(birthTime: SolarTime, term: SolarTerm): ChildLimitInfo;
}
declare class LunarSect1ChildLimitProvider extends AbstractChildLimitProvider {
getInfo(birthTime: SolarTime, term: SolarTerm): ChildLimitInfo;
}
declare class LunarSect2ChildLimitProvider extends AbstractChildLimitProvider {
getInfo(birthTime: SolarTime, term: SolarTerm): ChildLimitInfo;
}
declare class ChildLimit {
static provider: ChildLimitProvider;
protected eightChar: EightChar;
protected gender: Gender;
protected forward: boolean;
protected info: ChildLimitInfo;
protected constructor(birthTime: SolarTime, gender: Gender);
static fromSolarTime(birthTime: SolarTime, gender: Gender): ChildLimit;
getEightChar(): EightChar;
getGender(): Gender;
getYearCount(): number;
getMonthCount(): number;
getDayCount(): number;
getHourCount(): number;
getMinuteCount(): number;
getStartTime(): SolarTime;
getEndTime(): SolarTime;
isForward(): boolean;
getStartDecadeFortune(): DecadeFortune;
getStartFortune(): Fortune;
getEndLunarYear(): LunarYear;
}
declare class DecadeFortune extends AbstractTyme {
protected childLimit: ChildLimit;
protected index: number;
protected constructor(childLimit: ChildLimit, index: number);
static fromChildLimit(childLimit: ChildLimit, index: number): DecadeFortune;
getStartAge(): number;
getEndAge(): number;
getStartLunarYear(): LunarYear;
getEndLunarYear(): LunarYear;
getSixtyCycle(): SixtyCycle;
getName(): string;
next(n: number): DecadeFortune;
getStartFortune(): Fortune;
}
declare class Fortune extends AbstractTyme {
protected childLimit: ChildLimit;
protected index: number;
protected constructor(childLimit: ChildLimit, index: number);
static fromChildLimit(childLimit: ChildLimit, index: number): Fortune;
getAge(): number;
getLunarYear(): LunarYear;
getSixtyCycle(): SixtyCycle;
getName(): string;
next(n: number): Fortune;
}
declare class KitchenGodSteed extends AbstractCulture {
static NUMBERS: string[];
protected firstDaySixtyCycle: SixtyCycle;
protected constructor(lunarYear: number | string);
static fromLunarYear(lunarYear: number | string): KitchenGodSteed;
protected byHeavenStem(n: number): string;
protected byEarthBranch(n: number): string;
getMouse(): string;
getGrass(): string;
getCattle(): string;
getFlower(): string;
getDragon(): string;
getHorse(): string;
getChicken(): string;
getSilkworm(): string;
getPig(): string;
getField(): string;
getCake(): string;
getGold(): string;
getPeopleCakes(): string;
getPeopleHoes(): string;
getName(): string;
}
export { AbstractChildLimitProvider, AbstractCulture, AbstractCultureDay, AbstractTyme, Animal, Beast, ChildLimit, ChildLimitInfo, type ChildLimitProvider, China95ChildLimitProvider, Constellation, type Culture, DecadeFortune, DefaultChildLimitProvider, DefaultEightCharProvider, Dipper, Direction, Dog, DogDay, Duty, EarthBranch, Ecliptic, EightChar, type EightCharProvider, Element, FestivalType, FetusDay, FetusEarthBranch, FetusHeavenStem, FetusMonth, Fortune, Gender, God, HeavenStem, HideHeavenStem, HideHeavenStemDay, HideHeavenStemType, JulianDay, KitchenGodSteed, Land, LegalHoliday, LoopTyme, Luck, LunarDay, LunarFestival, LunarHour, LunarMonth, LunarSeason, LunarSect1ChildLimitProvider, LunarSect2ChildLimitProvider, LunarSect2EightCharProvider, LunarWeek, LunarYear, MinorRen, Nine, NineDay, NineStar, PengZu, PengZuEarthBranch, PengZuHeavenStem, Phase, Phenology, PhenologyDay, PlumRain, PlumRainDay, SevenStar, ShouXingUtil, Side, SixStar, Sixty, SixtyCycle, SolarDay, SolarFestival, SolarHalfYear, SolarMonth, SolarSeason, SolarTerm, SolarTermDay, SolarTime, SolarWeek, SolarYear, Sound, Taboo, Ten, TenStar, Terrain, ThreePhenology, TwelveStar, Twenty, TwentyEightStar, type Tyme, Week, YinYang, Zodiac, Zone };