npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@tony801015/chinese-lunar

v0.20.2

Published

只要輸入年月日,就可以轉換成年柱,月柱,日柱,時柱,農曆月,農曆日,節氣,星期,生肖,星座等資訊,目前年份已經支援從1900年開始至2050年

Downloads

49

Readme

命理基本的查詢

npm version npm Build Status Coverage Status codebeat badge

目前已提供年柱,月柱,日柱,時柱,農曆月,農曆日,節氣,星期,生肖,星座,紫白,納音,胎元,命宮,身宮,藏幹,副星的資訊

ChangeLog

  • 2021/01/30 0.20.0 版本修復#16
  • 2020/11/16 0.19.0 版本移除moment.js改用day.js
  • 2020/04/05 0.18.0 版本提供胎元, 命宮, 身宮 .getTaiYuan() .getMingGong() .getShenGong()
  • 2020/02/21 0.17.0 版本提供取得紫白九星的方法和取得納音屬性 .getNayin() .getPurpleWhites()
  • 2020/02/08 0.16.0 版本提供日期加減的計算 .add() .subtract()
  • 2020/02/02 0.15.0 版本提供上(下)一個節氣的距離天數 .getSolarTermDistance()
  • 2020/01/25 0.14.0 版本農曆轉公(國)曆的功能囉 .lunarToSolar()
  • 2020/01/18 0.13.0 版本提供讓八字有更精準的計算。底下的特殊方法有介紹八字計算,歡迎大家試算看看唷~
  • 2020/01/08 0.12.1-beta版本提供更簡單的使用方式,預設當前時間,也可以自訂自己使用的時間。
  • 2019/10/24 0.9.0版本提供了此年的農曆中每個月有多少天getLunarPerMonthHasDays,這裡可以搭配0.6.4版推出的閏月是哪一天來應用。
  • 2019/10/23 0.8.0版本提供了星座,可以從.getJson()constellationproperty 拿到
  • 2019/10/23 0.8.1版本修復十神,十神需提供使用者出生的年柱做搭配
  • 2019/10/21 0.7.0版本提供了更長的範圍,從 1956 到 1900 補齊囉~接下來應該就會再往 2050 年之後邁進
  • 2019/10/19 0.6.4版本提供了此年的閏月是哪一個月份的查詢,新增在AdvancedLunar
  • 2019/10/18 0.6.2版本提供了十神的查詢,新增在ApplicationLunar,所以要使用此方法需 new ApplicationLunar()。
  • 2019/10/17 0.6.0版本提供了生肖的查詢。
  • 2019/10/16 0.5.0版本提供了.getJson()的方法讓大家可以方便取得所有資訊。

使用範例

npm i @tony801015/chinese-lunar -S

預設使用方式

const lunar = require("@tony801015/chinese-lunar");
console.log(lunar().getJson()); // 抓取目前的年,月,日

自定日期

const lunar = require("@tony801015/chinese-lunar");
console.log(lunar("2020", "01", "09").getJson()); 

取得參數

const lunar = require("@tony801015/chinese-lunar");
const data = lunar("2020", "01", "09").getJson();
console.log(data.year); // 2020
console.log(data.week); // 4
console.log(data.constellation); // 魔羯座

提供特殊方法

setTime() 自訂時間

如果沒有輸入,程式會抓取當前時間

const lunar = require("@tony801015/chinese-lunar");
const data = lunar('2021', '02', '13')
  .setTime('00')
  .getJson();
console.log(data.chineseTime); // 庚子

setChineseAge() 自訂出生年(天干地支)

如果沒有輸入程式會顯示提醒 請輸入年齡

const lunar = require("@tony801015/chinese-lunar");
const data = lunar('2021', '02', '13') // 出生年月日
  .setTime('00') // 出生時
  .setChineseAge('壬子') // 出生年
  .getJson();
console.log(data.chineseYearTenGod); // 印
console.log(data.chineseMonthTenGod); // ㄗ
console.log(data.chineseDayTenGod); // 比
console.log(data.chineseTimeTenGod); // ㄗ

// 這樣簡單的八字計算就出來囉。 歡迎自己算算看唷~
console.log(`年=> ${data.chineseYear}, 十神=> ${data.chineseYearTenGod}`); // 年=> 辛丑, 十神=> 印
console.log(`月=> ${data.chineseMonth}, 十神=> ${data.chineseMonthTenGod}`); // 月=> 庚寅, 十神=> ㄗ
console.log(`日=> ${data.chineseDay}, 十神=> ${data.chineseDayTenGod}`); // 日=> 壬辰, 十神=> 比
console.log(`時=> ${data.chineseTime}, 十神=> ${data.chineseTimeTenGod}`); // 時=> 庚子, 十神=> ㄗ

lunarToSolar() 農曆轉公(國)曆

const lunar = require("@tony801015/chinese-lunar");
const data = lunar(
  '2020', '04', '16'
)
  .lunarToSolar() 
  // 如果有遇到閏月,要轉國曆請記得加true, 不然預設都會是false 非閏月的月份
  // lunarToSolar({{true|false}})
  .setTime('00')
  .setChineseAge('壬子')
  .getJson();
console.log(`農曆月=> ${data.lunarMonth}, 農曆日=> ${data.lunarDay}`); 
// 農曆月=> 四月, 農曆日=> 十六
console.log(`國曆月=> ${data.month}, 國曆日=> ${data.day}`);
// 國曆月=> 05, 國曆日=> 08

getSolarTermDistance() 查看距離上(下)一個節氣天數

const lunar = require("@tony801015/chinese-lunar");
const data = lunar(
  '2019', '07', '07'
).getSolarTermDistance();
// 因節氣會看到小時,這裡有提供 diffDistanceDetail 這個參數再乘上24即可得知幾個小時
// { previous: 
//    { solarTerm: '夏至',
//      diffDistanceDay: 16,
//      diffDistanceDetail: 15.004062500000002 },
//   next: 
//    { solarTerm: '大暑',
//      diffDistanceDay: 16,
//      diffDistanceDetail: 16.451574074074074 } }

subtract()、add() 計算加減

const lunar = require("@tony801015/chinese-lunar");
const demoAdd = lunar('2019', '07', '07').add(1,'d').day // 08
const demoSubtract = lunar('2019', '07', '07').subtract(1,'d').day // 06
// add()與subtract()這背後是使用moment.js這個好用的套件所完成的,因此有用過moment.js的朋友一定不陌生

兩個method的文件如下:
subtract() 減的使用方式
add() 加的使用方式

紫白與納音

const lunar = require("@tony801015/chinese-lunar");
lunar('2020', '02', '21').getNayin(); // 土

lunar('2020', '02', '21').getPurpleWhites(); 
// [ '八白', '七赤', '六白', '五黃', '四綠', '三碧', '二黑', '一白', '九紫', '八白', '七赤', '六白' ]

胎元,命宮,身宮,藏幹,副星

const lunar = require("@tony801015/chinese-lunar");
// 身宮
lunar('2020', '04', '05').getShenGong(); // 戊子
// 命宮
lunar('2020', '04', '05').getMingGong(); // 壬午
// 空亡
lunar('2020', '04', '05').getKongWang('子', '甲');  // 戌亥
// 藏幹
lunar('2020', '04', '05').getCangGan('子'); // 癸
// 胎元
lunar('2020', '04', '05').getTaiYuan(); // 辛未

使用getJson()會得到以下參數

| 中文名稱 | 參數名稱 | 型態 | 範例 | 備註 | | :----------------: | :------------------: | :-----: | :------------------------------------------------------------------------------------------------: | :--: | | 年 | year | string | 2020 | | | 月 | month | string | 01 || | 日 | day | string | 09 || | 節氣 | solarTerms | string | 小寒 || | 農曆月 | lunarMonth | string | 腊月 || | 農曆日 | lunarDay | string | 十五 || | 農曆月數值 | lunarMonthDigit | number | 12 || | 農曆日數值 | lunarDayDigit | number | 15 || | 當前農曆月份是否閏月 | isLunarLeapMonth | boolean | false || | 當年閏幾月 | leapMonth | number | 0 || | 年柱 | chineseYear | string | 己亥 || | 月柱 | chineseMonth | string | 丁丑 || | 日柱 | chineseDay | string | 辛亥 || | 時柱 | chineseTime | string | 戊子 | 需要先 setTime() 如果沒有就會是目前的時間 | | 年柱十神 | chineseYearTenGod | string | 殺 |需要先 setChineseAge()| | 月柱十神 | chineseMonthTenGod | string | 印 |需要先 setChineseAge()| | 日柱十神 | chineseDayTenGod | string | ㄗ |需要先 setChineseAge()| | 時柱十神 | chineseTimeTenGod | string | 比 |需要先 setChineseAge()| | 時柱十神清單 | chineseTimesTenGod | array | [ 'ㄗ', '印', '比', '劫', '食', '傷', '才', '財', '殺', '官', 'ㄗ', '印' ] |需要先 setChineseAge()| | 時柱清單 | chineseTimes | array | [ '戊子', '己丑', '庚寅', '辛卯', '壬辰', '癸巳', '甲午', '乙未', '丙申', '丁酉', '戊戌', '己亥' ] || | 星期 | week | string | 4 || | 生肖 | animal | string | 鼠 || | 星座 | constellation | string | 魔羯座 || | 國曆二月是否有閏月 | chineseFeb | boolean | true || | 登貴 | dengGui | string | 戌午 || | 農曆潤幾月 | leapMonth | number | 4 || | 農曆每月有幾日 | lunarPerMonthHasDays | array | [ '29','30','30','30','29','30','29','29','30','29','30','29','30' ] ||

分享

設定檔 config.js 裡面有一些整理過的資訊,希望可以幫助到大家對於命理上的研究。歡迎大家找我討論~

注意事項

  • 目前計算的時間以 1900 年開始至 2050 年,1900 以前的都無法計算。

未來規劃

未來會再增加

  • 星座 BasicLunar 2019/10/23 完成 0.8.0
  • 此年的閏月是幾月 AdvancedLunar 2019/10/19 完成 0.6.4
  • 此年的農曆中每個月有多少天 AdvancedLunar 2019/10/24 完成 0.9.0
  • 農曆日期的差距有幾天 ApplicationLunar
  • 十神的查詢 ApplicationLunar 2019/10/17 完成 0.6.2
  • 提供時間的輸入,在八字裡面其實就是把,,,轉成年柱,月柱,日柱,時柱,因此要把八字更精準推出命理相關的數據,需要的協助囉。 2020/01/18 完成 0.13.0
  • 輸入農曆轉換成國曆 2020/1/25 完成 0.14.0
  • 製作前端使用js 2020/1/25 完成 0.14.3
  • 加強節氣資訊,距離前(後)節氣天數 2020/2/2 完成 0.15.0
  • 加減 subtract(), add() 2020/02/08 完成 0.16.0
  • 取得紫白九星的方法 2020/02/21 完成 0.17.0
  • 取得納音屬性 2020/02/21 完成 0.17.0
  • 提供「農曆的日期」數字的形式呈現 #7 感謝 @creatxrgithub 大大提供建議 0.17.3
  • 提供胎元,命宮,身宮,藏幹,副星 0.18.0
  • 支援較舊的版本 IOS6 感謝 @921010wxm 大大提供建議 0.20.0 #16
  • 製作萬年曆
  • 查詢農曆年的API
  • 查詢流年,流月,大運
  • 建立使用手冊