My favorites | Sign in
Project Home Downloads Wiki Issues Source
Search
for
ZiWei  
紫微斗數
Featured
Updated Feb 4, 2010 by gasolin

Introduction

# 古時月份從3月開始
寅宮地支表 = 地支表[2:]+地支表[:2]
# 五行局數 河圖+洛書
# http://hk.myblog.yahoo.com/lawrencioy/article?mid=363
# http://hk.myblog.yahoo.com/lawrencioy/article?mid=368
火.局數 = 6
土.局數 = 5
金.局數 = 4 
木.局數 = 3
水.局數 = 2

Details

  • 星曜
  • 宮垣

紫微

從 copy 導入 deepcopy
類別 紫微斗數(生辰八字):
    """
    出生時辰 < 命宮位置 < 命宮天干 < 五行局 < 紫微星 > 十四主星
    http://hk.myblog.yahoo.com/lawrencioy/article?mid=257
    """
    定義 __初始化__(我, 姓名, 性別, 生年, 生月, 生日, 生時, 閏月 = 0):

        super(紫微斗數, self).__初始化__(姓名, 性別, 生年, 生月, 生日, 生時, 閏月)

        # 1. 安命身宮
        我.命宮 = 我._取命宮() #命宮地支
        我.身宮 = 我._取身宮()
        我.命主 = 我._取命主()
        我.身主 = 我._取身主()

        # 2. 安十二宮
        我.__命宮支數 = 寅宮地支表.索引(我.命宮)
        # 讓各個紫微斗數物件擁有獨立的宮垣物件
        我.十二宮位 = deepcopy(十二宮表[-我.__命宮地支:]) + \
                    deepcopy(十二宮表[:-我.__命宮地支])

        # 3. 定宮位天干
        我.寅宮天干表 = 天干表[天干表.索引(我.五虎遁(我.生年.天干)):] + \
                           天干表[:(天干表.索引(我.五虎遁(我.生年.天干))+2)]
        # 將寅宮干支填入十二宮位
        取 順序, 宮位 自 列舉(我.十二宮位):
            宮位.天干 = 我.寅宮天干表[順序]
            宮位.地支 = 寅宮地支表[順序]

        # 4. 安五行局
        我.五行局 = 我._安五行局()
        # 5. 安十四主星的宮位
        我._安十四主星()
        # 安輔、佐、煞、化、雜曜
        我._安七吉六煞星()
        我._安四化星()
        我._安年系星()
        我._安月系星()
        我._安日系星()
        # 判斷亮度

      ....

定寅宮天干

...
    定義 五虎遁(我, 生年天干):
        """
        定寅宮天干
        
        就命主出生的年干,按表尋得所化之五行
        找出該五行所洩的五行
        對應所洩五行的天干便是「寅」宮的天干
        """
        如果 生年天干 在 (甲, 己): # 土
            返回 土.相洩.天干[0] #丙
        假使 生年天干 在 (乙, 庚): # 金
            返回 金.相洩.天干[0] #戊
        假使 生年天干 在 (丙, 辛): # 水
            返回 水.相洩.天干[0] #庚
        假使 生年天干 在 (丁, 壬): # 木
            返回 木.相洩.天干[0] #壬
        假使 生年天干 在 (戊, 癸): # 火
            返回 火.相洩.天干[0] #甲

定盤

....
    定義 定盤(我):
        印出 我.姓名
        印出 字串(我.生年.陰陽)+字串(我.性別), \
        字串(我.五行局)+字串(我.五行局.局數)+"局", \
            "生肖", 字串(我.生年.地支.生肖)
    	印出 "定盤日期", 字串(我.生年)+"年 "+\
    	    字串(我.生月)+"月 "+字串(我.生日)+"日 "+字串(我.時辰)+"時"
    	印出 "命宮", 字串(我.命宮), "身宮", 字串(我.身宮)
    	印出 "命主", 字串(我.命主), "身主", 字串(我.身主), "\n"
    	
    	取 宮位 自 我.十二宮位:
    	    印出 宮位.天干, 宮位.地支, 宮位
    	    如果 宮位.正曜:
    	        取 正曜 自 宮位.正曜:
    	            印出 正曜
    	    如果 宮位.輔曜:
    	        取 輔曜 自 宮位.輔曜:
    	            印出 輔曜

使用

直接修改 "主程式" 區塊, 填入你要的命盤, 如

主程式:
    # 代號 = 紫微斗數(姓名, 性別, 生年, 生月, 生日, 生時)
    q = 紫微斗數("如花", 女, 辛酉, 2, 24, 午)
    q.定盤()

測試

先透過周蟒 zhpy 命令來生成 python 原始碼

 $ zhpy -p zwds.twpy

注意 -p 選項會將 zwds.twpy 轉換成 python 原始碼後儲存到 n_zwds.py 中.

然後使用 nose 工具來測試

 $ nosetests n_zwds.py
........
----------------------------------------------------------------------
Ran 8 tests in 0.009s

OK 

從外部使用

先透過周蟒 zhpy 命令來生成 python 原始碼

 $ zhpy -p zwds.twpy

注意 -p 選項會將 zwds.twpy 轉換成 python 原始碼後儲存到 n_zwds.py 中.

然後可透過周蟒調用

    從 n_zwds 導入 紫微斗數
    q = 紫微斗數("如花", 女, 辛酉, 2, 24, 午)
    q.定盤()

參考: 地支, 五行, 出生時間, 宮垣


Sign in to add a comment
Powered by Google Project Hosting