以下是一个基于Python的农历生日星座查询器实现方案。该工具使用`zhdate`库进行农历到阳历的转换,并根据阳历日期判断对应的星座。
python
from zhdate import ZhDate
星座判断逻辑
def get_zodiac(month, day):
根据阳历月份和日期返回星座
signs = [
((1, 20), (2, 18), "水瓶座"),
((2, 19), (3, 20), "双鱼座"),
((3, 21), (4, 19), "白羊座"),
((4, 20), (5, 20), "金牛座"),
((5, 21), (6, 21), "双子座"),
((6, 22), (7, 22), "巨蟹座"),
((7, 23), (8, 22), "狮子座"),
((8, 23), (9, 22), "处女座"),
((9, 23), (10, 23), "天秤座"),
((10, 24), (11, 22), "天蝎座"),
((11, 23), (12, 21), "射手座"),
((12, 22), (12, 31), "摩羯座"),
((1, 1), (1, 19), "摩羯座"),
for start, end, name in signs:
start_month, start_day = start
end_month, end_day = end
if (month == start_month and day >= start_day) or (month == end_month and day <= end_day):
return name
return "未知
主程序
try:
输入农历日期
year = int(input("请输入农历年份(如1990):"))
month = int(input("请输入农历月份(1-12):"))
day = int(input("请输入农历日期(1-30):"))
is_leap = input("是否是闰月(输入‘是’或‘否’):").strip.lower == '是'
转换为阳历
lunar_date = ZhDate(year, month, day, leap_month=is_leap)
solar_date = lunar_date.to_datetime
获取星座
zodiac = get_zodiac(solar_date.month, solar_date.day)
输出结果
print(f"
阳历生日:{solar_date.strftime('%Y年%m月%d日')}")
print(f"星座:{zodiac}")
except ValueError:
print("错误:输入的日期不合法,请检查年份、月份、闰月信息是否正确。")
except Exception as e:
print(f"发生未知错误:{str(e)}")
1. 安装依赖库:需先安装农历转换库 `zhdate`
bash
pip install zhdate
2. 运行程序:输入农历日期信息
请输入农历年份(如1990):2000
请输入农历月份(1-12):5
请输入农历日期(1-30):15
是否是闰月(输入‘是’或‘否’):否
3. 输出结果:
阳历生日:2000年06月16日
星座:双子座
1. 农历转阳历:通过`zhdate`库将用户输入的农历日期转换为阳历日期。
2. 星座判断:根据阳历日期匹配固定的星座日期区间(如白羊座3.21-4.19,金牛座4.20-5.20等),支持跨年的摩羯座(12.22-1.19)。
如有其他问题,可调整星座日期表或扩展异常处理逻辑。
版权声明: 知妳网保留所有权利,部分内容为网络收集,如有侵权,请联系QQ793061840删除,添加请注明来意。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态
