opn48 / cnlunar Goto Github PK
View Code? Open in Web Editor NEW农历,**农历历法项目,无需数据库环境,以《钦定协纪辨方书》为核心的python3 农历、黄历、二十四节气、节假日、星次、每日凶煞、每日值神、农历建除十二神、农历每日宜忌、彭祖百忌、每日五行、二十八星宿、天干地支、农历生辰八字、时辰凶吉等开源项目。
License: GNU General Public License v3.0
农历,**农历历法项目,无需数据库环境,以《钦定协纪辨方书》为核心的python3 农历、黄历、二十四节气、节假日、星次、每日凶煞、每日值神、农历建除十二神、农历每日宜忌、彭祖百忌、每日五行、二十八星宿、天干地支、农历生辰八字、时辰凶吉等开源项目。
License: GNU General Public License v3.0
如题,2.4日立春之后依然显示癸卯年。难道是因为今年立春早于农历新年的原因?
就是我用的是Linux系统,经量封装appimage
self.lunarMonth = _leap_month # (_leap_month << 4) | self.lunarMonth
self.isLunarLeapMonth = True
致: 感谢作者提供此好用的库
目前看代码好像只接受一个阳历日期
宜 : ['诸事不宜']
忌 : ['诸事不宜']
日期 : 2020-06-12 00:00:00
农历数字 : (2020, 68, 21)
我设置6月份的时候,农历数字就会变成这样~~~7月好像又正常~其他月份有没有问题就不知道了
@cuba3
TypeError: 'module' object is not callable
提示错误,请教大佬是什么问题?
工具非常完善了,但每个时辰的吉凶这个是不是可以考虑加上?
将全年二十四节气数据-最小公差向量可得:
[2,2, 1,1, 1,2, 2,3, 2,2, 2,1, 2,2, 2,2, 2,2, 2,2 2,1]
可按月份逆序储存为二进制:(12月.11月.10月...1月)
0110 1010 1010 1010 1010 0110 1010 1010 1001 1010 0101 1010
二十四节气数据-最小公差向量 后的数据只有 22 个。
其中第八个节气差值为3,但逆序存储表中未见有 0x11 的数据。
('天愿', '甲子癸未甲午甲戌乙酉丙子丁丑戊午甲寅丙辰辛卯戊辰'[men], d,
1.是不是格式存在错误
2.我在百度搜索 天愿日
http://ygkyfs.com/wap.php?action=article&id=28077
发现数据也存在差异,不知道那个是正确的
1.年干支切换以立春节为准,不是农历新年;2022年2月4日04:50:36前为辛丑年辛丑月丁亥日,之后为壬寅年壬寅月丁亥日;
2.换月最好能精确到具体时间,除立春外,其他节气到点之前请按上个月纪月。
1993, 2, 3, 19, 30
八字 : 癸酉 癸丑 乙卯 丙戌
今日节气 : 无
下一节气 : ('立春', (2, 4), 1993)
实际上年干是壬申,因为还没有立春
看到下一个节气有nextSolarTermDate,和nextSolarTermYear,不知道上一个节气怎么获取呢?八字推大运的时候有反向拿的case。
有没有计划增加个last方法呢?ღ( ´・ᴗ・` )比心
想看每个时辰喜神、财神、福神的方位,但是没有,能不能加个呢?
此项目是否需要联网?
项目真的很棒,建议做成python包并发布
problem during installation:
File "", line 9, in
UnicodeDecodeError: 'gbk' codec can't decode byte 0xb4 in position 89: illegal multibyte sequence
fix setup.py by adding code: encoding='utf-8' in 'long_description=' as below:
from setuptools import setup
setup(
name='cnlunar',
version='0.0.9',
packages=['cnlunar'],
url='https://github.com/OPN48/cnLunar',
author='cuba3',
author_email='[email protected]',
long_description=open('README.rst',encoding='utf-8').read(),
)
能不能实现一下,宜忌抵消后相克,岁德、月德、凤凰麒麟压朱雀白虎、三丧、月破、岁破、重丧、天罡等算法啊?
作者程序的结果:
农历:二零二零 庚子[鼠]年 冬月小廿五
宜:['诸事不宜']
忌:['诸事不宜']
但在别的平台查询的结果大多是:
宜:祭祀、冠笄、嫁娶、会友、认养、裁衣、结网
忌:造庙、移徙、入宅、作灶、安葬
请问是算法不同的原因导致的吗?
重新比较复杂,能不能写个完整的demo.py。
这样新手方便看
a,想看下哪天适合结婚,但是每天都宜嫁娶
b,出行 嫁娶 开市 祭祀 祈福 动土,这几个重复好像感觉很多,不会是程序写错了吧?
c,还有比如“进人”这个(不止进人一个),我找很久,只有忌进人的日子,好像没有宜进人的日子(找不到),囧
代码demo如下
`
import datetime
import cnlunar
import pandas as pd
import os
start_date = datetime.datetime(1901, 11, 6, 0, 0)
end_date = datetime.datetime(1903, 12, 10, 0, 0)
delta = datetime.timedelta(days=1)
calendar = []
while start_date <= end_date:
# a = cnlunar.Lunar(start_date, godType='8char') # 常规算法,即在正月初一切换年干生肖
a = cnlunar.Lunar(start_date, godType='8char', year8Char='beginningOfSpring') # 八字立春切换算法。
dic = {
'公历日期': a.date,
'农历日期数字': '%s-%s-%s' % (a.lunarYear, a.lunarMonth, a.lunarDay),
'农历日期': '%s%s' % (a.lunarMonthCn, a.lunarDayCn),
'星期': a.weekDayCn,
'年干支': a.year8Char,
'月干支': a.month8Char,
'日干支': a.day8Char,
# '时干支': a.twohour8Char,
'今日节气': a.todaySolarTerms,
'下一节气': (a.nextSolarTerm, a.nextSolarTermDate, a.nextSolarTermYear),
'今年节气表': a.thisYearSolarTermsDic,
}
calendar.append(dic)
start_date += delta
print(start_date)
df = pd.DataFrame(calendar)
file_name = "万年历输出表.xlsx"
sheet_name = datetime.datetime.now().strftime("%H-%M-%S")
if os.path.exists(file_name):
# 如果文件已存在,读取原有数据
with pd.ExcelWriter(file_name, mode='a') as writer:
df.to_excel(writer, sheet_name=sheet_name, index=False)
print(f"已在 {file_name} 中添加新的sheet表:{sheet_name}")
else:
# 如果文件不存在,直接保存
df.to_excel(file_name, sheet_name=sheet_name, index=False)
print(f"已在 {file_name} 中创建新的sheet表:{sheet_name}")
`
1、节气详细不到分钟或秒,会导致年,或月不准。
2、建议:可以从http://24jieqi.xixik.com/#anchor8 整理一下节气的时间数据,然后做各节气的判断。
/usr/bin/python3 /Users/zhao95/Documents/IOS/pyLunarCalendar-master/date2LunarData.py
八字月柱与八字日柱算神煞版本
日期 : 2021-12-19 17:47:50.566570
农历数字 : (2021, 11, 16, '')
农历 : 二零二一 辛丑[牛]年 冬月大十六
星期 : 星期日
今日节日 : ('', '', '')
八字 : 辛丑 庚子 辛丑 丁酉
今日节气 : 无
下一节气 : ('冬至', (12, 21), 2021)
今年节气表 : {'小寒': (1, 5), '大寒': (1, 20), '立春': (2, 3), '雨水': (2, 18), '惊蛰': (3, 5), '春分': (3, 20), '清明': (4, 4), '谷雨': (4, 20), '立夏': (5, 5), '小满': (5, 21), '芒种': (6, 5), '夏至': (6, 21), '小暑': (7, 7), '大暑': (7, 22), '立秋': (8, 7), '处暑': (8, 23), '白露': (9, 7), '秋分': (9, 23), '寒露': (10, 8), '霜降': (10, 23), '立冬': (11, 7), '小雪': (11, 22), '大雪': (12, 7), '冬至': (12, 21)}
季节 : 仲冬
今日时辰 : ['戊子', '己丑', '庚寅', '辛卯', '壬辰', '癸巳', '甲午', '乙未', '丙申', '丁酉', '戊戌', '己亥', '庚子']
时辰凶吉 : ['凶', '凶', '吉', '吉', '凶', '吉', '凶', '凶', '吉', '凶', '吉', '吉', '吉']
生肖冲煞 : 牛日冲羊
星座 : 射手座
星次 : 星纪
彭祖百忌 : 辛不合酱 主人不尝,丑不冠带 主不还乡
彭祖百忌精简 : 辛不合酱
丑不冠带
十二神 : ('除', '天德', '黄道日')
廿八宿 : 房日兔
今日三合 : ['蛇', '鸡']
今日六合 : 鼠
今日五行 : ['天干', '辛', '属金', '地支', '丑', '属土', '纳音', '土', '属土', '廿八宿', '房', '宿', '十二神', '除', '日']
纳音 : 壁上土
九宫飞星 : 279135684
吉神方位 : ['喜神西南', '财神正东', '福神西北', '阳贵东北', '阴贵正南']
今日胎神 : 厨灶厕房内南
神煞宜忌 : ((['岁德合', '六合', '不将', '地财', '阴德', '普护', '吉期', '兵宝'], ['天瘟', '义日']), (['祭祀', '出行', '结婚姻', '宴会', '嫁娶', '沐浴', '剃头', '上官', '进人口', '经络', '纳财', '扫舍宇', '安葬', '施恩', '搬移', '雪冤', '立券交易', '赴任', '纳采', '临政', '安抚边境', '入宅', '整容', '恤孤茕', '举正直', '整手足甲', '选将', '解除', '出师', '祈福'], ['冠带']))
今日吉神 : ['岁德合', '六合', '不将', '地财', '阴德', '普护', '吉期', '兵宝']
今日凶煞 : ['天瘟', '义日']
宜忌等第 : 无
宜 : ['祭祀', '出行', '结婚姻', '宴会', '嫁娶', '沐浴', '剃头', '上官', '进人口', '经络', '纳财', '扫舍宇', '安葬', '施恩', '搬移', '雪冤', '立券交易', '赴任', '纳采', '临政', '安抚边境', '入宅', '整容', '恤孤茕', '举正直', '整手足甲', '选将', '解除', '出师', '祈福']
忌 : ['冠带']
时辰经络 : 肾
Process finished with exit code 0
{'公历日期': datetime.date(2023, 5, 9), '农历年 份': '二零二三', '农历月份': '三月小', '农历日': '二十'}
请看转换结果。
{"日期": "2020-06-20 23:30:00", "农历数字": [2020, 5, 3, ""], "农历": "二零二零 庚子[鼠]年 五月小初三", "星期": "星期六", "今日节日": ["", "", ""], "八字": "庚子 壬午 乙未 丙子", "今日节气": "无", "下一节气": ["夏至", [6, 21], 2020], "今年节气表": {"小寒": [1, 6], "大寒": [1, 20], "立春": [2, 4], "雨水": [2, 19], "惊蛰": [3, 5], "春分": [3, 20], "清明": [4, 4], "谷雨": [4, 19], "立夏": [5, 5], "小满": [5, 20], "芒种": [6, 5], "夏至": [6, 21], "小暑": [7, 6], "大暑": [7, 22], "立秋": [8, 7], "处暑": [8, 22], "白露": [9, 7], "秋分": [9, 22], "寒露": [10, 8], "霜降": [10, 23], "立冬": [11, 7], "小雪": [11, 22], "大雪": [12, 7], "冬至": [12, 21]}, "季节": "仲夏", "今日时辰": ["丙子", "丁丑", "戊寅", "己卯", "庚辰", "辛巳", "壬午", "癸未", "甲申", "乙酉", "丙戌", "丁亥", "戊子"], "时辰凶吉": ["凶", "凶", "吉", "吉", "凶", "吉", "凶", "凶", "吉", "凶", "吉", "吉", "吉"], "生肖冲煞": "羊日冲牛", "星座": "双子座", "星次": "鹑首", "彭祖百忌": "乙不栽植 千株不长,未不服药 毒气入肠", "彭祖百忌精简": "乙不栽植
未不服药", "十二神": ["除", "勾陈", "黄道日"], "廿八宿": "胃土雉", "今日三合": ["猪", "兔"], "今日六合": "马", "今日五行": ["天干", "乙", "属木", "地支", "未", "属土", "纳音", "金", "属金", "廿八宿", "胃", "宿", "十二神", "除", "日"], "纳音": "砂中金", "九宫飞星": "957813462", "吉神方位": ["喜神西北", "财神东北", "福神西南", "阳贵西南", "阴贵正北"], "今日胎神": "碓磨厕房内北", "神煞宜忌": [[["岁德合", "六合", "不将", "不守塚", "吉期", "兵宝"], ["勾陈", "三娘煞", "四离", "制日"]], [["结婚姻", "沐浴", "剃头", "修造", "上官", "进人口", "经络", "纳财", "扫舍宇", "破土", "安葬", "选将", "纳畜", "赴任", "宴会", "整手足甲", "安抚边境", "立券交易", "入宅", "出师", "施恩", "整容", "搬移", "酝酿", "解除", "举正直", "纳采", "临政"], ["栽种"]]], "今日吉神": ["岁德合", "六合", "不将", "不守塚", "吉期", "兵宝"], "今日凶煞": ["勾陈", "三娘煞", "四离", "制日"], "宜": ["结婚姻", "沐浴", "剃头", "修造", "上官", "进人口", "经络", "纳财", "扫舍宇", "破土", "安葬", "选将", "纳畜", "赴任", "宴会", "整手足甲", "安抚边境", "立券交易", "入宅", "出师", "施恩", "整容", "搬移", "酝酿", "解除", "举正直", "纳采", "临政"], "忌": ["栽种"], "时辰经络": "胆"}
举个例子1993 0203 20:00 是壬申。0204 00:00依然应该是壬申 , 到4点左右才应该立春,走到癸酉,而不是简单的以天为界限
@cuba3
2020年6月16日、18日、30日~~~7月1日.....(后面的没测,应该还有很多)
查看以上日期时候,程序崩溃,爆出错误
C:\Users\Administrator\Desktop\pyLunarCalendar-master>python date2LunarData.py Traceback (most recent call last): File "date2LunarData.py", line 39, in <module> '神煞宜忌':a.get_AngelDemon(), File "C:\Users\Administrator\Desktop\pyLunarCalendar-master\lunar.py", line 743, in get_AngelDemon goodBadGodAndThingDic = getTodayGoodBadThing(goodBadGodAndThingDic) File "C:\Users\Administrator\Desktop\pyLunarCalendar-master\lunar.py", line 737, in getTodayGoodBadThing dic[badThingKey] += godItem[4] IndexError: tuple index out of range
输入阳历:1991年4月5日3时
输出八字:辛未 壬辰 乙巳 戊寅
但与多个八字排盘软件显示,应该是:辛未 辛卯 乙巳 戊寅
月柱好像错了,不应该是”壬辰“,应该是"辛卯"
请有空查下孰对孰错,谢谢!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.