fortel-codex.js – 中國術數基本codex (陰陽/五行/天干/地支)

Project info

Project code: fortel-codex
Type: node.js module
Version: 0.01
Last update date: 2017-03-23

 

Description

A Node.js Library for Chinese Astrology Common Codex. (中國術數基本codex)

Background

I am planning to write a bundle of node.js modules which are related to Chinese Astrology/Divination, including 紫微斗數, 八字, 九宮飛星 ……
And I find that most of Chinese Astrology/Divination system actually sharing some common codex.
So I write this common module to represent the common codex, including 陰陽, 五行, 天干, 地支, 時辰, 生肖, 氣節, 農曆 etc

 

Links

Github: https://github.com/airicyu/fortel-codex
NPM: https://www.npmjs.com/package/fortel-codex

 

Dev Log

  • 2017-03-23: v0.0.1
    • Support features:
      • basic codex for 陰陽, 五行, 天干, 地支, 時辰, 生肖
    • Pending to do:
      • include 氣節, 農曆
      • implement some more utility functions (e.g: check生肖by year)
      • Update API document

Java農曆公曆轉換

早前需要在Java上用到農曆公曆互相轉換,但在網上找了好些別人寫的library,要不就是只能做到公曆轉農曆,要不就是會計錯了農曆閏月部份。
最後在 中国阴历与阳历的转换实现【java实现】 這一個網頁上找到了一個能計算農曆閏月部份並互相轉換的source code。
但我在使用時測試過,以香港天文台的 公曆與農曆日期對照表對照 後發覺有些日子會轉換錯誤,e.g: 1990-06-23 <-> 閏五月初一。
所以我把那網頁的source code修改了一下修正了問題。
後來亦參考了 1900年至2100年公历、农历互转Js代码 而加入了一些年份數據,令它支援到1900至2099年之間的計算。

註:這程式只能支援換算以下日期:

 

  • 農曆轉公曆: 農曆一九零零(庚子)年一月初一農曆二零九九(己未)年十二月三十日之間。
  • 公曆轉農曆: 公曆1900年1月31日公曆2099年12月31日之間。

 

Code repository:

https://bitbucket.org/Airic/lunarutil

 

更新日誌:

  • 2017-10-13-v1.3.1:
    • 修正2017年農曆閏六月三十日無法轉成公曆8月21日的bug。
  • 2016-04-21-v1.3:
    • Format code,加入Unit test。
  • 2016-02-05-v1.2:
    • 修正2033置閏問題。
    • 加入2050-2099的年份資料以支援該年份計算。
  • 2014-12-29 – v1.1:
    • 用上了 Joda-Time 去修正了一些因為timezone而出現的bug。
    • 加入了兩個新method:
      • Lunar getPrevLunar(int year, int month, int day, boolean isLeap)
        輸入農曆日期,輸出前一天的農曆日期
      • Lunar getNextLunar(int year, int month, int day, boolean isLeap)
        輸入農曆日期,輸出後一天的農曆日期
  • 2014-12-27 – v1.0: 最初版本

(最後更新日期:2017-10-13)

如找到有bug,請email到 airic.yu@gmail.com 告訴我。