轻量查询

不排整盘就能拿到的生肖、星座与命宫主星。

有些问题不需要整张星盘。这五个函数各自只跑到必要的那一步就返回, 结果与完整排盘的对应字段永远一致——它们走的是同一套核心逻辑。

本页示例统一用 Language::ZhCN 排盘,因此输出里的展示值都是中文。


get_zodiac_by_solar_date

用途 由公历日期取生肖。

斗数含义 生肖由年支决定,而年支的换算时点受 year_divide 影响。 正月初一与立春之间出生的人,两种配置会得到不同的生肖——这不是 bug,是流派差异。

签名

pub fn get_zodiac_by_solar_date(
    solar_date: &str,
    language: Language,
    config: Config,
) -> Result<String, IztroError>

参数

参数类型必填默认说明
solar_date&str公历日期,格式 YYYY-M-D
languageLanguage输出语言
configConfigyear_divide 影响结果

返回值 String——按语言翻译的生肖名。

示例

println!("{}", get_zodiac_by_solar_date("2000-8-16", Language::ZhCN, Config::default())?);

输出

边界与陷阱

跨年边界会随配置改变

默认按正月初一换年。改成 YearDivide::Exact 后按立春换年, 1 月下旬到 2 月上旬出生的人可能拿到不同生肖。


get_sign_by_solar_date / get_sign_by_lunar_date

用途 取星座。

斗数含义 星座是西洋占星概念,只由公历日期决定,与斗数算法无关。 农历版本先把农历转成公历再判定,因此两者对同一天的结果相同。

签名

pub fn get_sign_by_solar_date(solar_date: &str, language: Language) -> Result<String, IztroError>
pub fn get_sign_by_lunar_date(
    lunar_date: &str,
    is_leap_month: bool,
    language: Language,
) -> Result<String, IztroError>

参数

参数类型必填默认说明
solar_date / lunar_date&str日期,格式 YYYY-M-D
is_leap_monthbool仅农历版本:该月是否闰月
languageLanguage输出语言

config 参数——星座不受任何配置影响。

返回值 String

示例

println!("{}", get_sign_by_solar_date("2000-8-16", Language::ZhCN)?);
println!("{}", get_sign_by_lunar_date("2000-7-17", false, Language::ZhCN)?);

输出

狮子座
狮子座

get_major_star_by_solar_date / get_major_star_by_lunar_date

用途 只取命宫主星,不排整盘。

斗数含义 命宫主星是斗数最常被单独问起的一项。 命宫为空宫时按惯例借对宫主星来看,本函数已经处理了这一步。

签名

pub fn get_major_star_by_solar_date(
    solar_date: &str,
    time_index: u8,
    fix_leap: bool,
    language: Language,
    config: Config,
) -> Result<String, IztroError>

pub fn get_major_star_by_lunar_date(
    lunar_date: &str,
    time_index: u8,
    leap: LeapMonth,
    language: Language,
    config: Config,
) -> Result<String, IztroError>

参数

参数类型必填默认说明
solar_date / lunar_date&str日期
time_indexu8时辰索引 0–12,命宫由月份与时辰共同决定
fix_leapbool仅阳历版本:阳历日期落在闰月十五之后时是否视作次月
leapLeapMonth仅农历版本:NotLeap / Leap / LeapFixed,见 by_lunar
languageLanguage输出语言
configConfig排盘配置

返回值 String——多颗主星以逗号分隔;空宫时返回对宫主星。

示例

let cfg = Config::default();

println!("{}", get_major_star_by_solar_date("2000-8-16", 2, true, Language::ZhCN, cfg.clone())?);
println!("{}", get_major_star_by_solar_date("2000-8-16", 2, true, Language::EnUS, cfg.clone())?);

输出

紫微
emperor

边界与陷阱

本页目录