知識庫
SU-003 / 宿曜占星

本命宿算法為什麼不同

內容版本 · · 資料與出處

宿名對不上?先查規則,再比結果
儲存分享卡 ↓

兩個網站給出的本命宿不同,先看它們走的是「月日查表」還是「月亮黃經分區」。用一次 799/800 角分的演算、兩份資料的對照和一張核查單,找到最先出現分歧的那一步。

閱讀提要約 6 分鐘讀完

兩個網站的宿名不同,先分清它們回答的是「查月日表」還是「按月亮黃經分區」。這是兩個不同的問題,輸入鏈本來就不一樣。

  • 月日查表要的是曆法轉換、月日序號和一張表;黃經分區要的是確定的時刻、月亮黃經和聲明過的坐標起點。
  • 國立天文臺的二十七分法每段 13 度 20 分,即 800 角分:799 角分在第 1 區,800 角分進入第 2 區。
  • 「都依據《宿曜經》」不夠:兩份資料裡正月初一的格子分別是室宿和虛宿。核對時記下最先分歧的那一步,缺資料就寫「未確認」。
18 秒看差異:先看查表與分區兩條路,再用 799/800 角分演算分區邊界,最後三項核查。

前置閱讀

宿曜占星與本命宿是什麼? ↗

二十七宿與二十八宿有什麼區別? ↗

為什麼同一個生日會得到兩個宿名

網站甲說你是室宿,網站乙說是虛宿。很自然的反應,是讀兩段性格描述,挑更像自己的那個。但這樣選出來的是喜歡的解釋,不是核對過的算法。

要查差異,第一步是保存輸入和規則:生日用的是哪種曆法,日期怎樣轉換,用了哪張表,或者是不是按月亮的位置分區。先把結果暫記為「甲法」「乙法」,比過早認定誰才是真實的自己,更容易找到可以復算的原因。

兩條並列的輸入路徑:歷日查表從月份日序經指定月初表到宿名;黃經分區從時刻與坐標基準經月亮黃經到區號再到宿名。開啟原圖放大查看

輸入路徑對照,不是優劣排名:兩條路要的證據不同,結果不能直接比較。

「都叫二十七宿」,不等於同一套計算

一

宿的名單

參與排列的宿是哪些。

二

月初起宿

每個月從哪一宿開始。

三

日期換算

生日怎樣轉成所用曆法的月日。

四

分區起點

黃經從哪裡開始量。

兩條路,要的證據不同

月日查表法先取得所用曆法的月份和日序,再由起宿表與推進規則得到標簽。按黃經分區的方法則需要某個時刻的月亮黃經,並明確坐標起點,再判斷它落在哪個區間。

歷日查表輸入:月份與日序月份 · 日序曆法轉換後查指定月初表起宿 + 推進得宿名結果黃經分區輸入:時刻與坐標時刻 · 坐標基準要聲明算月亮黃經落入哪個區間得區號 → 宿名結果一個用日期格,一個用天體位置:輸入鏈本來就不同
放大圖解 · 可橫向滑動查看
歷日查表輸入:月份與日序月份 · 日序曆法轉換後查指定月初表起宿 + 推進得宿名結果黃經分區輸入:時刻與坐標時刻 · 坐標基準要聲明算月亮黃經落入哪個區間得區號 → 宿名結果一個用日期格,一個用天體位置:輸入鏈本來就不同
歷日查表從月份與日序經指定月初表得到宿名;黃經分區從時刻與坐標經月亮黃經落入的區間得到區號再到宿名。兩條路的輸入不同。

查表需要曆法轉換、月日序號和對應的表;分區需要確定的時刻、月亮黃經和聲明過的坐標約定。

演算一遍:799 與 800 角分

國立天文臺的 Nakṣatra 條目說明了一種二十七等分:一周 360 度,每段 13 度 20 分。換成角分,360 × 60 ÷ 27 = 800,每段正好 800 角分。

12345678910111213141516171819202122232425262727 區每區 800 角分799′ 在第 1 區 · 800′ 進入第 2 區
放大圖解 · 可橫向滑動查看
12345678910111213141516171819202122232425262727 區每區 800 角分799′ 在第 1 區 · 800′ 進入第 2 區
黃道被分成 27 個區,每區 800 角分;799 角分仍在第 1 區,800 角分進入第 2 區。

下面做一個純算術練習:假定黃經已經換成該分區所需的坐標,把第一段記為第 1 區,區間包含起點、不含終點。

假定黃經所在區原因0′第 1 區起點包含在內799′第 1 區還沒到 800800′第 2 區到了第一段的終點,進入下一段1599′第 2 區第 2 區到 1599 為止1600′第 3 區2 × 80021599′第 27 區26 × 800 = 20800,第 27 區是 20800 至 2159921600′ 就是 360 度,回到起點,重新是第 1 區
放大圖解 · 可橫向滑動查看
假定黃經所在區原因0′第 1 區起點包含在內799′第 1 區還沒到 800800′第 2 區到了第一段的終點,進入下一段1599′第 2 區第 2 區到 1599 為止1600′第 3 區2 × 80021599′第 27 區26 × 800 = 20800,第 27 區是 20800 至 2159921600′ 就是 360 度,回到起點,重新是第 1 區
假定黃經 0 與 799 角分在第 1 區,800 與 1599 在第 2 區,1600 在第 3 區,21599 在第 27 區;21600 角分回到起點。

同一個書名,不等於同一張表

即使都做「月日查表」,只寫「依據《宿曜經》」也不是完整的規格。看一個具體例子:兩份資料裡兩個明確標出的格子。

國立天文臺 暦Wiki二十七宿表(月初配當)正月初一配為室宿CBETA 2023.Q4 電子本《宿曜經》· 大唐月建圖正月一日格子是虛宿圖中另列有牛宿兩份資料、兩個明確標出的格子,結果不同
放大圖解 · 可橫向滑動查看
國立天文臺 暦Wiki二十七宿表(月初配當)正月初一配為室宿CBETA 2023.Q4 電子本《宿曜經》· 大唐月建圖正月一日格子是虛宿圖中另列有牛宿兩份資料、兩個明確標出的格子,結果不同
國立天文臺暦Wiki的二十七宿表把正月初一配為室宿;CBETA 2023.Q4 電子本《宿曜經》的大唐月建圖,正月一日格是虛宿,圖中另列有牛宿。

工具的說法,要復現需要什麼

「傳統曆法算法」

要復現,需要

所用的表及版本,或有出處的改訂規則。

「由你的生日算出」

要復現,需要

輸入的曆法,以及轉換後的月、日。

「以月亮位置為準」

要復現,需要

採用的時刻、坐標設置與區間方案。

「已處理閏月」

要復現,需要

寫明的閏月規則,而不是猜出來的默認值。

核查單:停在第一個分歧的那一步

遇到真實的分歧,按順序留四行記錄;哪一步缺資料,就在那一步寫「未確認」。

一 原始生日及曆法輸入的是哪種曆法、哪一天二 轉換得到的日期或時刻閏月單列;邊界日保存實際轉換結果三 採用的表或分區規則表及版本,或坐標起點與區間方案四 最終宿名最後才記結果哪一步缺資料,就在那一步寫「未確認」
放大圖解 · 可橫向滑動查看
一 原始生日及曆法輸入的是哪種曆法、哪一天二 轉換得到的日期或時刻閏月單列;邊界日保存實際轉換結果三 採用的表或分區規則表及版本,或坐標起點與區間方案四 最終宿名最後才記結果哪一步缺資料,就在那一步寫「未確認」
核查單四行:原始生日及曆法、轉換得到的日期或時刻、採用的表或分區規則、最終宿名;缺資料的那一步寫未確認。

兩站都說查表,但其中一站不公布月初表時,只憑輸出倒推不出它用了哪份古籍。這樣日期換算不同、表不同和程序出錯,才能分別定位;同一臺鐘讀數相同,若時區假設不同,也可能指向不同的時刻。

重現了宿名的算法,並不證明性格或關係的說法成立。想分清日曆上的當日宿和本命宿,可讀本命宿與當日宿,日曆格的讀法見宿曜日曆怎麼讀。

讀完常有的疑問

為什麼兩個網站給出的本命宿會不一樣?

最常見的原因是兩個站走了不同的路:一個按月日查表,一個按月亮的黃經分區。就算同樣查表,用的曆法轉換、月初起宿和閏月處理也可能各不相同。

兩個站都說依據《宿曜經》,結果還會不同嗎?

會。同一個書名下可以有不同的表和版本:國立天文臺暦Wiki的二十七宿表把正月初一配為室宿,CBETA 電子本的「大唐月建圖」正月一日是虛宿。不能只憑書名斷定兩站用了同一張表。

能不能讀兩段性格描述,挑更像自己的那個?

不能。這樣選出來的是自己喜歡的解釋,不是核對過的算法。即使把宿名算對了,也不能證明後面的性格或關係說法成立,那是另一個獨立的問題。

這篇文章對你有幫助嗎?

所在學習路徑

宿曜:從本命宿到關係邊界 · 第 3 步 / 共 3 步已上線

資料與出處

  1. NAOJ 暦Wiki — 二十八宿・二十七宿(月初配当表) ↗
  2. T1299, CBETA 2023.Q4 — 大唐月建圖 ↗
  3. NAOJ 暦Wiki — Nakṣatra divisions and coordinates ↗

繼續閱讀

回歸黃道與恆星黃道:同一方向為什麼有兩種讀數 ↗