CLIでも使える和暦西暦変換ツール

天皇退位に関連して、1/1に改元するのか、即位の儀はいつやるとか、いろいろニュースが盛り上がっていますね。

和暦西暦変換について調べていたら面白くなってきたので、CLIでもブラウザでも使える和暦西暦変換ツールを作りました。

 

YuG1224/japanese-calendar

Contribute to japanese-calendar development by creating an account on GitHub.

 

Install

npm install -g japanese-calendar
npm install japanese-calendar

CLIで使いたい場合は global install、ブラウザで使いたい場合は local install してください。

 

Usage

CLI

$ japanese-calendar -f christian -t heisei -y 2017
# 29

$ japanese-calendar -f heisei -t christian -y 29
# 2017

$ japanese-calendar -f heisei -t meiji -y 29
# 150

CLIで使う場合は、ショートオプションまたはロングオプションで引数を指定します。

-f --from で変換元の暦を -t --to で変換後の暦を -y --year で変換する年を指定します。

js

const calendar = require('japanese-calendar');

console.log(calendar('christian', 'heisei', 2017));
// 29

console.log(calendar('heisei', 'christian', 29));
// 2017

console.log(calendar('heisei', 'meiji', 29));
// 150

ブラウザで使う場合は require で読み込んで使います。

引数は from, to, year の順番で指定します。

 

Logic

明治:1867 大正:1911 昭和:1925 平成:1988

これらの数字は改元の前年ですが、西暦から和暦の場合は西暦にこの数を「引き」、和暦から西暦の場合は「足す」ことで、暦の変換をしています。

 

package.json

今回、CLIでもブラウザでも使えるツールをNode.jsで作りましたが、CLIとブラウザではentry pointとなるjsが違います。

しかし package.json の設定だけで、これらを簡単に切り替えることが出来たのですごく簡単でした。

CUI用のjsは "bin" ブラウザ用のjsは "main" にそれぞれ指定し、CUIの場合は同時にコマンド名も指定しています。

{
  "name": "japanese-calendar",
  "version": "0.0.11",
  "description": "japanese-calendar - Japanese calendar converter.",
  "main": "./lib/app.js",
  "bin": {
    "japanese-calendar": "./lib/bin.js"
  }
}

 

新元号はどんな単語になるんでしょうね。発表されたらアップデートしたいと思います。

 

以上

JavaScriptNode.js