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"
  }
}

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

以上