mingpan 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +118 -0
- package/dist/core/bazi/BaziCore.d.ts +112 -0
- package/dist/core/bazi/BaziCore.d.ts.map +1 -0
- package/dist/core/bazi/BaziCore.js +606 -0
- package/dist/core/bazi/BaziCore.js.map +1 -0
- package/dist/core/bazi/SolarTermCalculator.d.ts +46 -0
- package/dist/core/bazi/SolarTermCalculator.d.ts.map +1 -0
- package/dist/core/bazi/SolarTermCalculator.js +452 -0
- package/dist/core/bazi/SolarTermCalculator.js.map +1 -0
- package/dist/core/bazi/TrueSolarTime.d.ts +64 -0
- package/dist/core/bazi/TrueSolarTime.d.ts.map +1 -0
- package/dist/core/bazi/TrueSolarTime.js +210 -0
- package/dist/core/bazi/TrueSolarTime.js.map +1 -0
- package/dist/core/bazi/ephemerisData.d.ts +10 -0
- package/dist/core/bazi/ephemerisData.d.ts.map +1 -0
- package/dist/core/bazi/ephemerisData.js +88 -0
- package/dist/core/bazi/ephemerisData.js.map +1 -0
- package/dist/core/bazi/index.d.ts +8 -0
- package/dist/core/bazi/index.d.ts.map +1 -0
- package/dist/core/bazi/index.js +30 -0
- package/dist/core/bazi/index.js.map +1 -0
- package/dist/core/bazi/types.d.ts +116 -0
- package/dist/core/bazi/types.d.ts.map +1 -0
- package/dist/core/bazi/types.js +7 -0
- package/dist/core/bazi/types.js.map +1 -0
- package/dist/core/calendar/SolarTermsCalculator.d.ts +33 -0
- package/dist/core/calendar/SolarTermsCalculator.d.ts.map +1 -0
- package/dist/core/calendar/SolarTermsCalculator.js +111 -0
- package/dist/core/calendar/SolarTermsCalculator.js.map +1 -0
- package/dist/core/calendar/astronomicalCalendar.d.ts +74 -0
- package/dist/core/calendar/astronomicalCalendar.d.ts.map +1 -0
- package/dist/core/calendar/astronomicalCalendar.js +276 -0
- package/dist/core/calendar/astronomicalCalendar.js.map +1 -0
- package/dist/core/calendar/calendar.d.ts +81 -0
- package/dist/core/calendar/calendar.d.ts.map +1 -0
- package/dist/core/calendar/calendar.js +223 -0
- package/dist/core/calendar/calendar.js.map +1 -0
- package/dist/core/calendar/constants.d.ts +151 -0
- package/dist/core/calendar/constants.d.ts.map +1 -0
- package/dist/core/calendar/constants.js +97 -0
- package/dist/core/calendar/constants.js.map +1 -0
- package/dist/core/calendar/julian.d.ts +54 -0
- package/dist/core/calendar/julian.d.ts.map +1 -0
- package/dist/core/calendar/julian.js +142 -0
- package/dist/core/calendar/julian.js.map +1 -0
- package/dist/core/calendar/lunarCalendar.d.ts +79 -0
- package/dist/core/calendar/lunarCalendar.d.ts.map +1 -0
- package/dist/core/calendar/lunarCalendar.js +164 -0
- package/dist/core/calendar/lunarCalendar.js.map +1 -0
- package/dist/core/calendar/solarTerms.d.ts +105 -0
- package/dist/core/calendar/solarTerms.d.ts.map +1 -0
- package/dist/core/calendar/solarTerms.js +487 -0
- package/dist/core/calendar/solarTerms.js.map +1 -0
- package/dist/core/constants/bazi.d.ts +138 -0
- package/dist/core/constants/bazi.d.ts.map +1 -0
- package/dist/core/constants/bazi.js +332 -0
- package/dist/core/constants/bazi.js.map +1 -0
- package/dist/core/constants/index.d.ts +6 -0
- package/dist/core/constants/index.d.ts.map +1 -0
- package/dist/core/constants/index.js +37 -0
- package/dist/core/constants/index.js.map +1 -0
- package/dist/core/constants/positions.d.ts +27 -0
- package/dist/core/constants/positions.d.ts.map +1 -0
- package/dist/core/constants/positions.js +39 -0
- package/dist/core/constants/positions.js.map +1 -0
- package/dist/core/ziwei/BrightnessSystem.d.ts +53 -0
- package/dist/core/ziwei/BrightnessSystem.d.ts.map +1 -0
- package/dist/core/ziwei/BrightnessSystem.js +278 -0
- package/dist/core/ziwei/BrightnessSystem.js.map +1 -0
- package/dist/core/ziwei/IztroAdapter.d.ts +78 -0
- package/dist/core/ziwei/IztroAdapter.d.ts.map +1 -0
- package/dist/core/ziwei/IztroAdapter.js +314 -0
- package/dist/core/ziwei/IztroAdapter.js.map +1 -0
- package/dist/core/ziwei/MutagenCore.d.ts +81 -0
- package/dist/core/ziwei/MutagenCore.d.ts.map +1 -0
- package/dist/core/ziwei/MutagenCore.js +246 -0
- package/dist/core/ziwei/MutagenCore.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1101 -0
- package/dist/index.js.map +1 -0
- package/dist/output/fortuneTextRenderer.d.ts +63 -0
- package/dist/output/fortuneTextRenderer.d.ts.map +1 -0
- package/dist/output/fortuneTextRenderer.js +384 -0
- package/dist/output/fortuneTextRenderer.js.map +1 -0
- package/dist/output/listTextRenderer.d.ts +298 -0
- package/dist/output/listTextRenderer.d.ts.map +1 -0
- package/dist/output/listTextRenderer.js +942 -0
- package/dist/output/listTextRenderer.js.map +1 -0
- package/dist/services/bazi/BaziService.d.ts +83 -0
- package/dist/services/bazi/BaziService.d.ts.map +1 -0
- package/dist/services/bazi/BaziService.js +635 -0
- package/dist/services/bazi/BaziService.js.map +1 -0
- package/dist/services/bazi/analyzers/ClimateAnalyzer.d.ts +31 -0
- package/dist/services/bazi/analyzers/ClimateAnalyzer.d.ts.map +1 -0
- package/dist/services/bazi/analyzers/ClimateAnalyzer.js +194 -0
- package/dist/services/bazi/analyzers/ClimateAnalyzer.js.map +1 -0
- package/dist/services/bazi/analyzers/HiddenStemsAnalyzer.d.ts +16 -0
- package/dist/services/bazi/analyzers/HiddenStemsAnalyzer.d.ts.map +1 -0
- package/dist/services/bazi/analyzers/HiddenStemsAnalyzer.js +60 -0
- package/dist/services/bazi/analyzers/HiddenStemsAnalyzer.js.map +1 -0
- package/dist/services/bazi/analyzers/NaYinAnalyzer.d.ts +33 -0
- package/dist/services/bazi/analyzers/NaYinAnalyzer.d.ts.map +1 -0
- package/dist/services/bazi/analyzers/NaYinAnalyzer.js +209 -0
- package/dist/services/bazi/analyzers/NaYinAnalyzer.js.map +1 -0
- package/dist/services/bazi/analyzers/PatternAnalyzer.d.ts +159 -0
- package/dist/services/bazi/analyzers/PatternAnalyzer.d.ts.map +1 -0
- package/dist/services/bazi/analyzers/PatternAnalyzer.js +1150 -0
- package/dist/services/bazi/analyzers/PatternAnalyzer.js.map +1 -0
- package/dist/services/bazi/analyzers/RelationsAnalyzer.d.ts +114 -0
- package/dist/services/bazi/analyzers/RelationsAnalyzer.d.ts.map +1 -0
- package/dist/services/bazi/analyzers/RelationsAnalyzer.js +704 -0
- package/dist/services/bazi/analyzers/RelationsAnalyzer.js.map +1 -0
- package/dist/services/bazi/analyzers/ShenShaAnalyzer.d.ts +236 -0
- package/dist/services/bazi/analyzers/ShenShaAnalyzer.d.ts.map +1 -0
- package/dist/services/bazi/analyzers/ShenShaAnalyzer.js +2079 -0
- package/dist/services/bazi/analyzers/ShenShaAnalyzer.js.map +1 -0
- package/dist/services/bazi/analyzers/StrengthAnalyzer.d.ts +181 -0
- package/dist/services/bazi/analyzers/StrengthAnalyzer.d.ts.map +1 -0
- package/dist/services/bazi/analyzers/StrengthAnalyzer.js +1119 -0
- package/dist/services/bazi/analyzers/StrengthAnalyzer.js.map +1 -0
- package/dist/services/bazi/analyzers/TenGodsAnalyzer.d.ts +78 -0
- package/dist/services/bazi/analyzers/TenGodsAnalyzer.d.ts.map +1 -0
- package/dist/services/bazi/analyzers/TenGodsAnalyzer.js +383 -0
- package/dist/services/bazi/analyzers/TenGodsAnalyzer.js.map +1 -0
- package/dist/services/bazi/analyzers/TraditionalAnalyzer.d.ts +46 -0
- package/dist/services/bazi/analyzers/TraditionalAnalyzer.d.ts.map +1 -0
- package/dist/services/bazi/analyzers/TraditionalAnalyzer.js +260 -0
- package/dist/services/bazi/analyzers/TraditionalAnalyzer.js.map +1 -0
- package/dist/services/bazi/analyzers/YongShenAnalyzer.d.ts +70 -0
- package/dist/services/bazi/analyzers/YongShenAnalyzer.d.ts.map +1 -0
- package/dist/services/bazi/analyzers/YongShenAnalyzer.js +858 -0
- package/dist/services/bazi/analyzers/YongShenAnalyzer.js.map +1 -0
- package/dist/services/bazi/calculators/DaYunCalculator.d.ts +71 -0
- package/dist/services/bazi/calculators/DaYunCalculator.d.ts.map +1 -0
- package/dist/services/bazi/calculators/DaYunCalculator.js +496 -0
- package/dist/services/bazi/calculators/DaYunCalculator.js.map +1 -0
- package/dist/services/bazi/calculators/LiuNianCalculator.d.ts +88 -0
- package/dist/services/bazi/calculators/LiuNianCalculator.d.ts.map +1 -0
- package/dist/services/bazi/calculators/LiuNianCalculator.js +546 -0
- package/dist/services/bazi/calculators/LiuNianCalculator.js.map +1 -0
- package/dist/services/bazi/calculators/LiuRiCalculator.d.ts +66 -0
- package/dist/services/bazi/calculators/LiuRiCalculator.d.ts.map +1 -0
- package/dist/services/bazi/calculators/LiuRiCalculator.js +497 -0
- package/dist/services/bazi/calculators/LiuRiCalculator.js.map +1 -0
- package/dist/services/bazi/calculators/LiuYueCalculator.d.ts +50 -0
- package/dist/services/bazi/calculators/LiuYueCalculator.d.ts.map +1 -0
- package/dist/services/bazi/calculators/LiuYueCalculator.js +338 -0
- package/dist/services/bazi/calculators/LiuYueCalculator.js.map +1 -0
- package/dist/services/bazi/calculators/LuckCycleCalculator.d.ts +123 -0
- package/dist/services/bazi/calculators/LuckCycleCalculator.d.ts.map +1 -0
- package/dist/services/bazi/calculators/LuckCycleCalculator.js +414 -0
- package/dist/services/bazi/calculators/LuckCycleCalculator.js.map +1 -0
- package/dist/services/bazi/index.d.ts +21 -0
- package/dist/services/bazi/index.d.ts.map +1 -0
- package/dist/services/bazi/index.js +83 -0
- package/dist/services/bazi/index.js.map +1 -0
- package/dist/services/bazi/types.d.ts +597 -0
- package/dist/services/bazi/types.d.ts.map +1 -0
- package/dist/services/bazi/types.js +123 -0
- package/dist/services/bazi/types.js.map +1 -0
- package/dist/services/ziwei/ZiweiService.d.ts +86 -0
- package/dist/services/ziwei/ZiweiService.d.ts.map +1 -0
- package/dist/services/ziwei/ZiweiService.js +343 -0
- package/dist/services/ziwei/ZiweiService.js.map +1 -0
- package/dist/services/ziwei/calculators/BrightnessCalculator.d.ts +38 -0
- package/dist/services/ziwei/calculators/BrightnessCalculator.d.ts.map +1 -0
- package/dist/services/ziwei/calculators/BrightnessCalculator.js +142 -0
- package/dist/services/ziwei/calculators/BrightnessCalculator.js.map +1 -0
- package/dist/services/ziwei/calculators/DailyCalculator.d.ts +27 -0
- package/dist/services/ziwei/calculators/DailyCalculator.d.ts.map +1 -0
- package/dist/services/ziwei/calculators/DailyCalculator.js +55 -0
- package/dist/services/ziwei/calculators/DailyCalculator.js.map +1 -0
- package/dist/services/ziwei/calculators/DecadeCalculator.d.ts +46 -0
- package/dist/services/ziwei/calculators/DecadeCalculator.d.ts.map +1 -0
- package/dist/services/ziwei/calculators/DecadeCalculator.js +181 -0
- package/dist/services/ziwei/calculators/DecadeCalculator.js.map +1 -0
- package/dist/services/ziwei/calculators/HoroscopeStarsCalculator.d.ts +28 -0
- package/dist/services/ziwei/calculators/HoroscopeStarsCalculator.d.ts.map +1 -0
- package/dist/services/ziwei/calculators/HoroscopeStarsCalculator.js +84 -0
- package/dist/services/ziwei/calculators/HoroscopeStarsCalculator.js.map +1 -0
- package/dist/services/ziwei/calculators/HourlyCalculator.d.ts +41 -0
- package/dist/services/ziwei/calculators/HourlyCalculator.d.ts.map +1 -0
- package/dist/services/ziwei/calculators/HourlyCalculator.js +139 -0
- package/dist/services/ziwei/calculators/HourlyCalculator.js.map +1 -0
- package/dist/services/ziwei/calculators/MinorLimitCalculator.d.ts +30 -0
- package/dist/services/ziwei/calculators/MinorLimitCalculator.d.ts.map +1 -0
- package/dist/services/ziwei/calculators/MinorLimitCalculator.js +90 -0
- package/dist/services/ziwei/calculators/MinorLimitCalculator.js.map +1 -0
- package/dist/services/ziwei/calculators/MonthlyCalculator.d.ts +39 -0
- package/dist/services/ziwei/calculators/MonthlyCalculator.d.ts.map +1 -0
- package/dist/services/ziwei/calculators/MonthlyCalculator.js +128 -0
- package/dist/services/ziwei/calculators/MonthlyCalculator.js.map +1 -0
- package/dist/services/ziwei/calculators/MutagenCalculator.d.ts +20 -0
- package/dist/services/ziwei/calculators/MutagenCalculator.d.ts.map +1 -0
- package/dist/services/ziwei/calculators/MutagenCalculator.js +121 -0
- package/dist/services/ziwei/calculators/MutagenCalculator.js.map +1 -0
- package/dist/services/ziwei/calculators/PalaceDynamicCalculator.d.ts +35 -0
- package/dist/services/ziwei/calculators/PalaceDynamicCalculator.d.ts.map +1 -0
- package/dist/services/ziwei/calculators/PalaceDynamicCalculator.js +55 -0
- package/dist/services/ziwei/calculators/PalaceDynamicCalculator.js.map +1 -0
- package/dist/services/ziwei/calculators/YearlyCalculator.d.ts +35 -0
- package/dist/services/ziwei/calculators/YearlyCalculator.d.ts.map +1 -0
- package/dist/services/ziwei/calculators/YearlyCalculator.js +119 -0
- package/dist/services/ziwei/calculators/YearlyCalculator.js.map +1 -0
- package/dist/services/ziwei/index.d.ts +15 -0
- package/dist/services/ziwei/index.d.ts.map +1 -0
- package/dist/services/ziwei/index.js +48 -0
- package/dist/services/ziwei/index.js.map +1 -0
- package/dist/services/ziwei/transformers/PalaceTransformer.d.ts +62 -0
- package/dist/services/ziwei/transformers/PalaceTransformer.d.ts.map +1 -0
- package/dist/services/ziwei/transformers/PalaceTransformer.js +153 -0
- package/dist/services/ziwei/transformers/PalaceTransformer.js.map +1 -0
- package/dist/services/ziwei/types.d.ts +185 -0
- package/dist/services/ziwei/types.d.ts.map +1 -0
- package/dist/services/ziwei/types.js +54 -0
- package/dist/services/ziwei/types.js.map +1 -0
- package/dist/shared/logger.d.ts +51 -0
- package/dist/shared/logger.d.ts.map +1 -0
- package/dist/shared/logger.js +136 -0
- package/dist/shared/logger.js.map +1 -0
- package/dist/shared/types.d.ts +91 -0
- package/dist/shared/types.d.ts.map +1 -0
- package/dist/shared/types.js +7 -0
- package/dist/shared/types.js.map +1 -0
- package/dist/utils/ageCalculator.d.ts +30 -0
- package/dist/utils/ageCalculator.d.ts.map +1 -0
- package/dist/utils/ageCalculator.js +51 -0
- package/dist/utils/ageCalculator.js.map +1 -0
- package/package.json +54 -0
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// 精确万年历算法
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.PreciseCalendar = void 0;
|
|
5
|
+
const julian_1 = require("./julian");
|
|
6
|
+
const solarTerms_1 = require("./solarTerms");
|
|
7
|
+
const bazi_1 = require("../../core/constants/bazi");
|
|
8
|
+
const constants_1 = require("./constants");
|
|
9
|
+
class PreciseCalendar {
|
|
10
|
+
/**
|
|
11
|
+
* 计算精确的八字四柱
|
|
12
|
+
* @param date 公历日期
|
|
13
|
+
* @param hour 小时 (0-23)
|
|
14
|
+
* @param minute 分钟 (0-59)
|
|
15
|
+
* @returns 精确的八字信息
|
|
16
|
+
*/
|
|
17
|
+
static calculatePreciseBazi(date, hour = date.getHours(), minute = date.getMinutes()) {
|
|
18
|
+
const year = date.getFullYear();
|
|
19
|
+
const month = date.getMonth() + 1;
|
|
20
|
+
const day = date.getDate();
|
|
21
|
+
// 计算儒略日
|
|
22
|
+
const jd = (0, julian_1.gregorianToJulianDay)(year, month, day, hour, minute);
|
|
23
|
+
// 获取节气信息
|
|
24
|
+
const solarTermInfo = (0, solarTerms_1.findSolarTerm)(date);
|
|
25
|
+
let solarMonth;
|
|
26
|
+
try {
|
|
27
|
+
solarMonth = (0, solarTerms_1.getSolarTermMonthFromDate)(date);
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
// 如果无法获取节气月份,使用备用方法
|
|
31
|
+
solarMonth = {
|
|
32
|
+
monthIndex: date.getMonth(),
|
|
33
|
+
monthName: ['正月', '二月', '三月', '四月', '五月', '六月',
|
|
34
|
+
'七月', '八月', '九月', '十月', '十一月', '十二月'][date.getMonth()],
|
|
35
|
+
startTerm: '未知',
|
|
36
|
+
endTerm: '未知'
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
// 计算年柱(以立春为界)
|
|
40
|
+
const yearPillar = this.calculateYearPillar(date, solarTermInfo);
|
|
41
|
+
// 计算月柱(以节气为界)
|
|
42
|
+
const monthPillar = this.calculateMonthPillar(date, yearPillar.stem, solarTermInfo);
|
|
43
|
+
// 计算日柱(精确到分钟)
|
|
44
|
+
const dayPillar = this.calculateDayPillar(jd);
|
|
45
|
+
// 计算时柱
|
|
46
|
+
const hourPillar = this.calculateHourPillar(hour, minute, dayPillar.stem);
|
|
47
|
+
return {
|
|
48
|
+
year: yearPillar,
|
|
49
|
+
month: monthPillar,
|
|
50
|
+
day: dayPillar,
|
|
51
|
+
hour: hourPillar,
|
|
52
|
+
dayMaster: dayPillar.stem,
|
|
53
|
+
solarTermInfo: {
|
|
54
|
+
current: solarTermInfo.current ? {
|
|
55
|
+
name: solarTermInfo.current.name,
|
|
56
|
+
date: solarTermInfo.current.date
|
|
57
|
+
} : null,
|
|
58
|
+
next: solarTermInfo.next ? {
|
|
59
|
+
name: solarTermInfo.next.name,
|
|
60
|
+
date: solarTermInfo.next.date
|
|
61
|
+
} : null,
|
|
62
|
+
monthName: solarMonth.monthName
|
|
63
|
+
},
|
|
64
|
+
julianDay: jd
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* 计算年柱(以立春为分界点)
|
|
69
|
+
*/
|
|
70
|
+
static calculateYearPillar(date, solarTermInfo) {
|
|
71
|
+
let year = date.getFullYear();
|
|
72
|
+
// 获取该年立春时间
|
|
73
|
+
const solarTerms = (0, solarTerms_1.calculateSolarTerms)(year);
|
|
74
|
+
const lichun = solarTerms[2]; // 立春是第3个节气 (索引2)
|
|
75
|
+
// 如果在立春之前,年份要减1
|
|
76
|
+
if (date < lichun) {
|
|
77
|
+
year -= 1;
|
|
78
|
+
}
|
|
79
|
+
// 计算天干地支索引:以1984年甲子年为基准
|
|
80
|
+
// 1984是甲子年,甲=0,子=0
|
|
81
|
+
const yearDiff = year - 1984;
|
|
82
|
+
const stemIndex = yearDiff % 10;
|
|
83
|
+
const branchIndex = yearDiff % 12;
|
|
84
|
+
return this.createPillar(stemIndex >= 0 ? stemIndex : stemIndex + 10, branchIndex >= 0 ? branchIndex : branchIndex + 12);
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* 计算月柱(以节气为分界点)
|
|
88
|
+
*/
|
|
89
|
+
static calculateMonthPillar(date, yearStem, solarTermInfo) {
|
|
90
|
+
// 获取当前月份的节气信息来确定农历月
|
|
91
|
+
const year = date.getFullYear();
|
|
92
|
+
const month = date.getMonth() + 1; // JavaScript月份从0开始
|
|
93
|
+
const day = date.getDate();
|
|
94
|
+
// 计算当前月的节气月份(以节气为准)
|
|
95
|
+
let lunarMonth;
|
|
96
|
+
try {
|
|
97
|
+
const solarTerms = (0, solarTerms_1.calculateSolarTerms)(year);
|
|
98
|
+
// 按节气确定月份:立春为寅月起始,每个月两个节气
|
|
99
|
+
let termMonth = 2; // 从寅月开始(立春所在月)
|
|
100
|
+
for (let i = 2; i < solarTerms.length; i += 2) { // 从立春开始,每两个节气一个月
|
|
101
|
+
if (date >= solarTerms[i]) {
|
|
102
|
+
termMonth = 2 + Math.floor((i - 2) / 2);
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
break;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
lunarMonth = (termMonth - 1) % 12; // 转换为0-11的索引
|
|
109
|
+
}
|
|
110
|
+
catch (error) {
|
|
111
|
+
// 备用计算:简化的月份对应
|
|
112
|
+
const monthMapping = [10, 11, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; // 公历月到农历月的映射
|
|
113
|
+
lunarMonth = monthMapping[month - 1];
|
|
114
|
+
}
|
|
115
|
+
// 月干计算:根据年干推月干
|
|
116
|
+
const yearStemIndex = bazi_1.HEAVENLY_STEMS_ARRAY.indexOf(yearStem);
|
|
117
|
+
const monthStemIndex = ((yearStemIndex % 5) * 2 + lunarMonth) % 10;
|
|
118
|
+
// 月支:寅月为正月(索引2),依次类推
|
|
119
|
+
const monthBranchIndex = (lunarMonth + 2) % 12;
|
|
120
|
+
return this.createPillar(monthStemIndex, monthBranchIndex);
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* 计算日柱(基于儒略日)
|
|
124
|
+
*/
|
|
125
|
+
static calculateDayPillar(jd) {
|
|
126
|
+
const ganZhi = (0, julian_1.getGanZhiFromJulianDay)(jd);
|
|
127
|
+
const stemIndex = bazi_1.HEAVENLY_STEMS_ARRAY.indexOf(ganZhi.gan);
|
|
128
|
+
const branchIndex = bazi_1.EARTHLY_BRANCHES_ARRAY.indexOf(ganZhi.zhi);
|
|
129
|
+
return this.createPillar(stemIndex, branchIndex);
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* 计算时柱
|
|
133
|
+
*/
|
|
134
|
+
static calculateHourPillar(hour, minute, dayStem) {
|
|
135
|
+
// 时辰划分:子时23-1点,丑时1-3点,以此类推
|
|
136
|
+
// 精确到分钟:每个时辰120分钟
|
|
137
|
+
let hourBranchIndex;
|
|
138
|
+
if (hour === 23 || hour === 0) {
|
|
139
|
+
hourBranchIndex = 0; // 子时
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
hourBranchIndex = Math.floor((hour + 1) / 2);
|
|
143
|
+
}
|
|
144
|
+
// 如果是边界时间(如23:30),可能需要特殊处理
|
|
145
|
+
if (hour === 23 && minute >= 0) {
|
|
146
|
+
hourBranchIndex = 0; // 子时开始
|
|
147
|
+
}
|
|
148
|
+
else if (hour === 1 && minute === 0) {
|
|
149
|
+
hourBranchIndex = 1; // 丑时开始
|
|
150
|
+
}
|
|
151
|
+
// 时干计算:日干推时干
|
|
152
|
+
const dayStemIndex = bazi_1.HEAVENLY_STEMS_ARRAY.indexOf(dayStem);
|
|
153
|
+
const hourStemIndex = ((dayStemIndex % 5) * 2 + hourBranchIndex) % 10;
|
|
154
|
+
return this.createPillar(hourStemIndex, hourBranchIndex);
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* 创建柱子对象
|
|
158
|
+
*/
|
|
159
|
+
static createPillar(stemIndex, branchIndex) {
|
|
160
|
+
const stem = bazi_1.HEAVENLY_STEMS_ARRAY[stemIndex];
|
|
161
|
+
const branch = bazi_1.EARTHLY_BRANCHES_ARRAY[branchIndex];
|
|
162
|
+
const ganZhi = stem + branch;
|
|
163
|
+
return {
|
|
164
|
+
stem,
|
|
165
|
+
branch,
|
|
166
|
+
nayin: constants_1.NAYIN_WU_XING[ganZhi] || '未知',
|
|
167
|
+
wuxing: constants_1.STEM_WU_XING[stem],
|
|
168
|
+
hiddenStems: bazi_1.BRANCH_HIDDEN_STEMS[branch] || []
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* 获取某日的详细节气信息
|
|
173
|
+
*/
|
|
174
|
+
static getDetailedSolarTermInfo(date) {
|
|
175
|
+
const termInfo = (0, solarTerms_1.findSolarTerm)(date);
|
|
176
|
+
const solarMonth = (0, solarTerms_1.getSolarTermMonthFromDate)(date);
|
|
177
|
+
if (!termInfo.current || !termInfo.next) {
|
|
178
|
+
throw new Error('无法获取节气信息');
|
|
179
|
+
}
|
|
180
|
+
const daysToNext = Math.ceil((termInfo.next.date.getTime() - date.getTime()) / (1000 * 60 * 60 * 24));
|
|
181
|
+
// 判断季节
|
|
182
|
+
const seasons = ['冬', '冬', '春', '春', '春', '春', '夏', '夏', '夏', '夏', '秋', '秋', '秋', '秋', '冬', '冬', '冬', '冬', '冬', '冬', '冬', '冬', '冬', '冬'];
|
|
183
|
+
const season = seasons[termInfo.current.index];
|
|
184
|
+
return {
|
|
185
|
+
currentTerm: termInfo.current.name,
|
|
186
|
+
nextTerm: termInfo.next.name,
|
|
187
|
+
daysToNext,
|
|
188
|
+
monthName: solarMonth.monthName,
|
|
189
|
+
season
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* 验证计算结果的准确性
|
|
194
|
+
*/
|
|
195
|
+
static validateCalculation(date, result) {
|
|
196
|
+
const warnings = [];
|
|
197
|
+
let confidence = 100;
|
|
198
|
+
// 检查是否在节气边界附近
|
|
199
|
+
if (result.solarTermInfo.next) {
|
|
200
|
+
const daysToNext = Math.ceil((new Date(result.solarTermInfo.next.date).getTime() - date.getTime()) /
|
|
201
|
+
(1000 * 60 * 60 * 24));
|
|
202
|
+
if (daysToNext <= 1) {
|
|
203
|
+
warnings.push('日期接近节气交换点,请确认具体时间');
|
|
204
|
+
confidence -= 10;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
// 检查是否在年份边界
|
|
208
|
+
const year = date.getFullYear();
|
|
209
|
+
const lichun = (0, solarTerms_1.calculateSolarTerms)(year)[2];
|
|
210
|
+
const daysDiff = Math.abs((date.getTime() - lichun.getTime()) / (1000 * 60 * 60 * 24));
|
|
211
|
+
if (daysDiff <= 1) {
|
|
212
|
+
warnings.push('日期接近立春,年柱可能需要特别确认');
|
|
213
|
+
confidence -= 15;
|
|
214
|
+
}
|
|
215
|
+
return {
|
|
216
|
+
isValid: warnings.length === 0,
|
|
217
|
+
warnings,
|
|
218
|
+
confidence
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
exports.PreciseCalendar = PreciseCalendar;
|
|
223
|
+
//# sourceMappingURL=calendar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calendar.js","sourceRoot":"","sources":["../../../src/core/calendar/calendar.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
export declare const LUNAR_BASE_DATE: {
|
|
2
|
+
gregorian: Date;
|
|
3
|
+
lunar: {
|
|
4
|
+
year: number;
|
|
5
|
+
month: number;
|
|
6
|
+
day: number;
|
|
7
|
+
isLeap: boolean;
|
|
8
|
+
};
|
|
9
|
+
jd: number;
|
|
10
|
+
};
|
|
11
|
+
export declare const LUNAR_MONTH_DAYS: number[];
|
|
12
|
+
export declare const SOLAR_TERMS_BASE: number[][];
|
|
13
|
+
export declare const HEAVENLY_STEMS: string[];
|
|
14
|
+
export declare const EARTHLY_BRANCHES: string[];
|
|
15
|
+
export declare const STEM_WU_XING: {
|
|
16
|
+
甲: string;
|
|
17
|
+
乙: string;
|
|
18
|
+
丙: string;
|
|
19
|
+
丁: string;
|
|
20
|
+
戊: string;
|
|
21
|
+
己: string;
|
|
22
|
+
庚: string;
|
|
23
|
+
辛: string;
|
|
24
|
+
壬: string;
|
|
25
|
+
癸: string;
|
|
26
|
+
};
|
|
27
|
+
export declare const BRANCH_WU_XING: {
|
|
28
|
+
子: string;
|
|
29
|
+
丑: string;
|
|
30
|
+
寅: string;
|
|
31
|
+
卯: string;
|
|
32
|
+
辰: string;
|
|
33
|
+
巳: string;
|
|
34
|
+
午: string;
|
|
35
|
+
未: string;
|
|
36
|
+
申: string;
|
|
37
|
+
酉: string;
|
|
38
|
+
戌: string;
|
|
39
|
+
亥: string;
|
|
40
|
+
};
|
|
41
|
+
export declare const BRANCH_HIDDEN_STEMS: {
|
|
42
|
+
子: string[];
|
|
43
|
+
丑: string[];
|
|
44
|
+
寅: string[];
|
|
45
|
+
卯: string[];
|
|
46
|
+
辰: string[];
|
|
47
|
+
巳: string[];
|
|
48
|
+
午: string[];
|
|
49
|
+
未: string[];
|
|
50
|
+
申: string[];
|
|
51
|
+
酉: string[];
|
|
52
|
+
戌: string[];
|
|
53
|
+
亥: string[];
|
|
54
|
+
};
|
|
55
|
+
export declare const TEN_GODS: string[];
|
|
56
|
+
export declare const SHEN_SHA: {
|
|
57
|
+
天乙贵人: {
|
|
58
|
+
甲: string[];
|
|
59
|
+
乙: string[];
|
|
60
|
+
丙: string[];
|
|
61
|
+
丁: string[];
|
|
62
|
+
戊: string[];
|
|
63
|
+
己: string[];
|
|
64
|
+
庚: string[];
|
|
65
|
+
辛: string[];
|
|
66
|
+
壬: string[];
|
|
67
|
+
癸: string[];
|
|
68
|
+
};
|
|
69
|
+
太极贵人: {
|
|
70
|
+
甲乙: string[];
|
|
71
|
+
丙丁: string[];
|
|
72
|
+
戊己: string[];
|
|
73
|
+
庚辛: string[];
|
|
74
|
+
壬癸: string[];
|
|
75
|
+
};
|
|
76
|
+
文昌贵人: {
|
|
77
|
+
甲: string;
|
|
78
|
+
乙: string;
|
|
79
|
+
丙: string;
|
|
80
|
+
丁: string;
|
|
81
|
+
戊: string;
|
|
82
|
+
己: string;
|
|
83
|
+
庚: string;
|
|
84
|
+
辛: string;
|
|
85
|
+
壬: string;
|
|
86
|
+
癸: string;
|
|
87
|
+
};
|
|
88
|
+
};
|
|
89
|
+
export declare const NAYIN_WU_XING: {
|
|
90
|
+
甲子: string;
|
|
91
|
+
乙丑: string;
|
|
92
|
+
丙寅: string;
|
|
93
|
+
丁卯: string;
|
|
94
|
+
戊辰: string;
|
|
95
|
+
己巳: string;
|
|
96
|
+
庚午: string;
|
|
97
|
+
辛未: string;
|
|
98
|
+
壬申: string;
|
|
99
|
+
癸酉: string;
|
|
100
|
+
甲戌: string;
|
|
101
|
+
乙亥: string;
|
|
102
|
+
丙子: string;
|
|
103
|
+
丁丑: string;
|
|
104
|
+
戊寅: string;
|
|
105
|
+
己卯: string;
|
|
106
|
+
庚辰: string;
|
|
107
|
+
辛巳: string;
|
|
108
|
+
壬午: string;
|
|
109
|
+
癸未: string;
|
|
110
|
+
甲申: string;
|
|
111
|
+
乙酉: string;
|
|
112
|
+
丙戌: string;
|
|
113
|
+
丁亥: string;
|
|
114
|
+
戊子: string;
|
|
115
|
+
己丑: string;
|
|
116
|
+
庚寅: string;
|
|
117
|
+
辛卯: string;
|
|
118
|
+
壬辰: string;
|
|
119
|
+
癸巳: string;
|
|
120
|
+
甲午: string;
|
|
121
|
+
乙未: string;
|
|
122
|
+
丙申: string;
|
|
123
|
+
丁酉: string;
|
|
124
|
+
戊戌: string;
|
|
125
|
+
己亥: string;
|
|
126
|
+
庚子: string;
|
|
127
|
+
辛丑: string;
|
|
128
|
+
壬寅: string;
|
|
129
|
+
癸卯: string;
|
|
130
|
+
甲辰: string;
|
|
131
|
+
乙巳: string;
|
|
132
|
+
丙午: string;
|
|
133
|
+
丁未: string;
|
|
134
|
+
戊申: string;
|
|
135
|
+
己酉: string;
|
|
136
|
+
庚戌: string;
|
|
137
|
+
辛亥: string;
|
|
138
|
+
壬子: string;
|
|
139
|
+
癸丑: string;
|
|
140
|
+
甲寅: string;
|
|
141
|
+
乙卯: string;
|
|
142
|
+
丙辰: string;
|
|
143
|
+
丁巳: string;
|
|
144
|
+
戊午: string;
|
|
145
|
+
己未: string;
|
|
146
|
+
庚申: string;
|
|
147
|
+
辛酉: string;
|
|
148
|
+
壬戌: string;
|
|
149
|
+
癸亥: string;
|
|
150
|
+
};
|
|
151
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/core/calendar/constants.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,eAAe;;;;;;;;;CAI3B,CAAC;AAGF,eAAO,MAAM,gBAAgB,UAM5B,CAAC;AAGF,eAAO,MAAM,gBAAgB,YAQ5B,CAAC;AAGF,eAAO,MAAM,cAAc,UAAqD,CAAC;AACjF,eAAO,MAAM,gBAAgB,UAA+D,CAAC;AAG7F,eAAO,MAAM,YAAY;;;;;;;;;;;CAGxB,CAAC;AAEF,eAAO,MAAM,cAAc;;;;;;;;;;;;;CAG1B,CAAC;AAGF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;CAa/B,CAAC;AAGF,eAAO,MAAM,QAAQ,UAGpB,CAAC;AAGF,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAepB,CAAC;AAGF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiBzB,CAAC"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// 万年历常量定义
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.NAYIN_WU_XING = exports.SHEN_SHA = exports.TEN_GODS = exports.BRANCH_HIDDEN_STEMS = exports.BRANCH_WU_XING = exports.STEM_WU_XING = exports.EARTHLY_BRANCHES = exports.HEAVENLY_STEMS = exports.SOLAR_TERMS_BASE = exports.LUNAR_MONTH_DAYS = exports.LUNAR_BASE_DATE = void 0;
|
|
5
|
+
// 公历与农历转换基准点
|
|
6
|
+
exports.LUNAR_BASE_DATE = {
|
|
7
|
+
gregorian: new Date(1900, 0, 31), // 1900年1月31日
|
|
8
|
+
lunar: { year: 1900, month: 1, day: 1, isLeap: false },
|
|
9
|
+
jd: 2415021 // 儒略日
|
|
10
|
+
};
|
|
11
|
+
// 农历大小月信息(1900-2100年)
|
|
12
|
+
exports.LUNAR_MONTH_DAYS = [
|
|
13
|
+
// 1900年开始,每年12个月的大小月信息,1表示大月(30天),0表示小月(29天)
|
|
14
|
+
// 同时包含闰月信息
|
|
15
|
+
0x04bd8, 0x04ae0, 0x0a570, 0x054d5, 0x0d260, 0x0d950, 0x16554, 0x056a0, 0x09ad0, 0x055d2,
|
|
16
|
+
0x04ae0, 0x0a5b6, 0x0a4d0, 0x0d250, 0x1d255, 0x0b540, 0x0d6a0, 0x0ada2, 0x095b0, 0x14977,
|
|
17
|
+
// ... 继续到2100年,这里简化显示
|
|
18
|
+
];
|
|
19
|
+
// 24节气基础数据(以分钟为单位,相对于UTC时间)
|
|
20
|
+
exports.SOLAR_TERMS_BASE = [
|
|
21
|
+
// 小寒、大寒、立春、雨水、惊蛰、春分、清明、谷雨、立夏、小满、芒种、夏至
|
|
22
|
+
// 小暑、大暑、立秋、处暑、白露、秋分、寒露、霜降、立冬、小雪、大雪、冬至
|
|
23
|
+
[5.4055, 20.12], [6.3826, 21.94], [4.6295, 3.87], [5.63, 18.74], [6.9488, 5.63],
|
|
24
|
+
[8.326, 20.646], [10.5956, 4.81], [13.4611, 20.1], [16.175, 3.34], [18.934, 21.86],
|
|
25
|
+
[21.94, 5.59], [24.6773, 22.2], [26.7928, 7.928], [28.1911, 24.233], [28.8114, 8.35],
|
|
26
|
+
[28.5961, 23.95], [27.543, 9.098], [25.6728, 24.218], [23.0369, 8.218], [19.8013, 23.438],
|
|
27
|
+
[16.4769, 7.18], [12.8821, 22.6], [9.3709, 6.11], [5.90516, 21.37]
|
|
28
|
+
];
|
|
29
|
+
// 干支配置
|
|
30
|
+
exports.HEAVENLY_STEMS = ['甲', '乙', '丙', '丁', '戊', '己', '庚', '辛', '壬', '癸'];
|
|
31
|
+
exports.EARTHLY_BRANCHES = ['子', '丑', '寅', '卯', '辰', '巳', '午', '未', '申', '酉', '戌', '亥'];
|
|
32
|
+
// 五行配置
|
|
33
|
+
exports.STEM_WU_XING = {
|
|
34
|
+
'甲': '木', '乙': '木', '丙': '火', '丁': '火', '戊': '土',
|
|
35
|
+
'己': '土', '庚': '金', '辛': '金', '壬': '水', '癸': '水'
|
|
36
|
+
};
|
|
37
|
+
exports.BRANCH_WU_XING = {
|
|
38
|
+
'子': '水', '丑': '土', '寅': '木', '卯': '木', '辰': '土', '巳': '火',
|
|
39
|
+
'午': '火', '未': '土', '申': '金', '酉': '金', '戌': '土', '亥': '水'
|
|
40
|
+
};
|
|
41
|
+
// 藏干表
|
|
42
|
+
exports.BRANCH_HIDDEN_STEMS = {
|
|
43
|
+
'子': ['癸'],
|
|
44
|
+
'丑': ['己', '癸', '辛'],
|
|
45
|
+
'寅': ['甲', '丙', '戊'],
|
|
46
|
+
'卯': ['乙'],
|
|
47
|
+
'辰': ['戊', '乙', '癸'],
|
|
48
|
+
'巳': ['丙', '庚', '戊'],
|
|
49
|
+
'午': ['丁', '己'],
|
|
50
|
+
'未': ['己', '丁', '乙'],
|
|
51
|
+
'申': ['庚', '壬', '戊'],
|
|
52
|
+
'酉': ['辛'],
|
|
53
|
+
'戌': ['戊', '辛', '丁'],
|
|
54
|
+
'亥': ['壬', '甲']
|
|
55
|
+
};
|
|
56
|
+
// 十神配置
|
|
57
|
+
exports.TEN_GODS = [
|
|
58
|
+
'比肩', '劫财', '食神', '伤官', '偏财',
|
|
59
|
+
'正财', '七杀', '正官', '偏印', '正印'
|
|
60
|
+
];
|
|
61
|
+
// 神煞配置
|
|
62
|
+
exports.SHEN_SHA = {
|
|
63
|
+
// 四柱神煞
|
|
64
|
+
'天乙贵人': {
|
|
65
|
+
甲: ['丑', '未'], 乙: ['子', '申'], 丙: ['亥', '酉'], 丁: ['亥', '酉'], 戊: ['丑', '未'],
|
|
66
|
+
己: ['子', '申'], 庚: ['丑', '未'], 辛: ['寅', '午'], 壬: ['卯', '巳'], 癸: ['卯', '巳']
|
|
67
|
+
},
|
|
68
|
+
'太极贵人': {
|
|
69
|
+
甲乙: ['子', '午'], 丙丁: ['卯', '酉'], 戊己: ['辰', '戌', '丑', '未'],
|
|
70
|
+
庚辛: ['寅', '亥'], 壬癸: ['巳', '申']
|
|
71
|
+
},
|
|
72
|
+
'文昌贵人': {
|
|
73
|
+
甲: '巳', 乙: '午', 丙: '申', 丁: '酉', 戊: '申',
|
|
74
|
+
己: '酉', 庚: '亥', 辛: '子', 壬: '寅', 癸: '卯'
|
|
75
|
+
}
|
|
76
|
+
// 更多神煞将在后续添加
|
|
77
|
+
};
|
|
78
|
+
// 纳音五行配置
|
|
79
|
+
exports.NAYIN_WU_XING = {
|
|
80
|
+
// 甲子乙丑海中金,丙寅丁卯炉中火...
|
|
81
|
+
'甲子': '海中金', '乙丑': '海中金', '丙寅': '炉中火', '丁卯': '炉中火',
|
|
82
|
+
'戊辰': '大林木', '己巳': '大林木', '庚午': '路旁土', '辛未': '路旁土',
|
|
83
|
+
'壬申': '剑锋金', '癸酉': '剑锋金', '甲戌': '山头火', '乙亥': '山头火',
|
|
84
|
+
'丙子': '涧下水', '丁丑': '涧下水', '戊寅': '城墙土', '己卯': '城墙土',
|
|
85
|
+
'庚辰': '白蜡金', '辛巳': '白蜡金', '壬午': '杨柳木', '癸未': '杨柳木',
|
|
86
|
+
'甲申': '泉中水', '乙酉': '泉中水', '丙戌': '屋上土', '丁亥': '屋上土',
|
|
87
|
+
'戊子': '霹雳火', '己丑': '霹雳火', '庚寅': '松柏木', '辛卯': '松柏木',
|
|
88
|
+
'壬辰': '长流水', '癸巳': '长流水', '甲午': '沙中金', '乙未': '沙中金',
|
|
89
|
+
'丙申': '山下火', '丁酉': '山下火', '戊戌': '平地木', '己亥': '平地木',
|
|
90
|
+
'庚子': '壁上土', '辛丑': '壁上土', '壬寅': '金箔金', '癸卯': '金箔金',
|
|
91
|
+
'甲辰': '佛灯火', '乙巳': '佛灯火', '丙午': '天河水', '丁未': '天河水',
|
|
92
|
+
'戊申': '大驿土', '己酉': '大驿土', '庚戌': '钗钏金', '辛亥': '钗钏金',
|
|
93
|
+
'壬子': '桑柘木', '癸丑': '桑柘木', '甲寅': '大溪水', '乙卯': '大溪水',
|
|
94
|
+
'丙辰': '沙中土', '丁巳': '沙中土', '戊午': '天上火', '己未': '天上火',
|
|
95
|
+
'庚申': '石榴木', '辛酉': '石榴木', '壬戌': '大海水', '癸亥': '大海水'
|
|
96
|
+
};
|
|
97
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/core/calendar/constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 将公历日期转换为儒略日
|
|
3
|
+
* @param year 年
|
|
4
|
+
* @param month 月 (1-12)
|
|
5
|
+
* @param day 日
|
|
6
|
+
* @param hour 时 (0-23)
|
|
7
|
+
* @param minute 分 (0-59)
|
|
8
|
+
* @param second 秒 (0-59)
|
|
9
|
+
* @returns 儒略日数
|
|
10
|
+
*/
|
|
11
|
+
export declare function gregorianToJulianDay(year: number, month: number, day: number, hour?: number, minute?: number, second?: number): number;
|
|
12
|
+
/**
|
|
13
|
+
* 将儒略日转换为公历日期
|
|
14
|
+
* @param jd 儒略日数
|
|
15
|
+
* @returns 公历日期对象
|
|
16
|
+
*/
|
|
17
|
+
export declare function julianDayToGregorian(jd: number): {
|
|
18
|
+
year: number;
|
|
19
|
+
month: number;
|
|
20
|
+
day: number;
|
|
21
|
+
hour: number;
|
|
22
|
+
minute: number;
|
|
23
|
+
second: number;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* 计算某日的干支
|
|
27
|
+
* @param jd 儒略日数
|
|
28
|
+
* @returns 干支对象
|
|
29
|
+
*/
|
|
30
|
+
export declare function getGanZhiFromJulianDay(jd: number): {
|
|
31
|
+
gan: string;
|
|
32
|
+
zhi: string;
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* 计算两个儒略日之间的天数差
|
|
36
|
+
* @param jd1 第一个儒略日
|
|
37
|
+
* @param jd2 第二个儒略日
|
|
38
|
+
* @returns 天数差
|
|
39
|
+
*/
|
|
40
|
+
export declare function daysBetweenJulianDays(jd1: number, jd2: number): number;
|
|
41
|
+
/**
|
|
42
|
+
* 判断某年是否为闰年
|
|
43
|
+
* @param year 年份
|
|
44
|
+
* @returns 是否为闰年
|
|
45
|
+
*/
|
|
46
|
+
export declare function isLeapYear(year: number): boolean;
|
|
47
|
+
/**
|
|
48
|
+
* 获取某月的天数
|
|
49
|
+
* @param year 年份
|
|
50
|
+
* @param month 月份 (1-12)
|
|
51
|
+
* @returns 该月的天数
|
|
52
|
+
*/
|
|
53
|
+
export declare function getDaysInMonth(year: number, month: number): number;
|
|
54
|
+
//# sourceMappingURL=julian.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"julian.d.ts","sourceRoot":"","sources":["../../../src/core/calendar/julian.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,MAAW,EACjB,MAAM,GAAE,MAAU,EAClB,MAAM,GAAE,MAAU,GACjB,MAAM,CA4BR;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,CA4CA;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAc/E;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAEtE;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAKhD;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAQlE"}
|