Skip to content

hungtcs/traditional-chinese-calendar-database

Repository files navigation

农历数据库

数据来源于香港天文台,请遵守相关协议使用。

提供1901年至2100年的公历农历日期对照,包含二十四节气星期十二生肖数据。


JSON文件由 database/origin 中的文本文件解析转换来的,转换之后的数据我没有仔细校验,如果发现数据不准确,可以自己对原文件进行转换。


使用方式

<main id="content"></main>
<section id="json"></section>
<script src="../dist/index.esm.js" type="module"></script>
<script type="module">
  import { Database } from '../dist/index.esm.js';
  const database = new Database();
  database.load('../database/all.bin')
    .then(data => {
      const now = new Date();
      const date = database.getCompoundDate(now.getFullYear(), now.getMonth() + 1, now.getDate());
      document.querySelector('#content').innerHTML = `今天是:${ date.toString() }`;
      document.querySelector('#json').innerHTML = `<pre>${ JSON.stringify(date, null, 2) }</pre>`;
    });
</script>

示例

数据格式

database/all.json.zip

包含1901年到2100年的数据,使用zlib压缩,大小为639KB。

JSON源文件

  • database/json
  • database/json/min

JSON数据以每年为一个独立的文件存储,内容格式为:

{
  // 星期
  day: string,
  // 公历日期
  gregorian: {
    year: number,
    month: number,
    date: number,
  },
  // 农历日期
  lunar: {
    year: string,
    month: string,
    date: string,
    // 是否閏月
    leapMonth: boolean,
  },
  // 生肖
  zodiac: string,
  // 节气
  solarTerm: string,
}

ZIP压缩的JSON源文件

使用zlib压缩的json文件,适合在浏览器端使用,体积较小,单个文件大约3.6KB。

浏览器端解压可使用pako库, 例子请查看:browser-unzip.html