UNPKG

@xzkcz/iztro-mcp-server

Version:

MCP server exposing iztro astrology methods for Zi Wei Dou Shu astrolabe generation and horoscope analysis

65 lines 2.01 kB
import { astro } from "iztro"; /* [ "00:00~01:00", "01:00~03:00", "03:00~05:00", "05:00~07:00", "07:00~09:00", "09:00~11:00", "11:00~13:00", "13:00~15:00", "15:00~17:00", "17:00~19:00", "19:00~21:00", "21:00~23:00", "23:00~00:00", ]; */ export function getAstroYear({ solarBirthDate, timeIndex, gender, fixLeap, locale }) { const astrolabe = astro.bySolar(solarBirthDate, timeIndex, gender, fixLeap, locale); const FiveElementsClass = { 水二局: 1, 木三局: 2, 金四局: 3, 土五局: 4, 火六局: 5, }; const fortunateStartYear = astrolabe.rawDates.lunarDate.lunarYear + FiveElementsClass[astrolabe.fiveElementsClass]; const fortunateStartMonth = astrolabe.solarDate.split("-")[1]; const fortunateStartDay = astrolabe.solarDate.split("-")[2]; const endYear = fortunateStartYear + 100; // 大限 const decadePeriods = []; // 小限 const agePeriods = []; // 流年 const yearPeriods = []; for (let i = fortunateStartYear; i <= endYear; i++) { const currentDate = [i, fortunateStartMonth, fortunateStartDay].join("-"); const horoscope = astrolabe.horoscope(currentDate); const { stars, yearlyDecStar, ...selectedYearlyFields } = horoscope.yearly; yearPeriods.push({ solarDate: horoscope.solarDate, yearly: selectedYearlyFields, }); agePeriods.push({ solarDate: horoscope.solarDate, age: horoscope.age, }); if (decadePeriods.length === 0 || horoscope.decadal.index !== decadePeriods[decadePeriods.length - 1].index) { // remove stars from decadal fields const { stars, ...selectedDecadalFields } = horoscope.decadal; decadePeriods.push(selectedDecadalFields); } } return { astrolabe, decadePeriods, agePeriods, yearPeriods }; } //# sourceMappingURL=getAstroYear.js.map