和暦や休日情報をREST APIで提供するサービスを公開

Program & Service

概要

以下の情報の取得や変換を行えるサービスを公開しました。

  • 和暦→西暦変換
  • 西暦→和暦
  • 休日一覧
  • 年齢
元号くん
西暦・元号・干支の情報を提供します。APIでも呼び出せます。

APIの利用例

和暦を取得

今年に関する情報を取得。

% curl -s https://seireki.teraren.com/seireki/2023.json | jq
{
  "seireki": "2023年",
  "wareki": "令和5年",
  "eto": "卯",
  "age": 0,
  "url": "https://seireki.teraren.com/seireki/2023.json"
}

1950年生まれの人の年齢を取得

% curl -s https://seireki.teraren.com/seireki/1950.json | jq '.age'
73

2023年の休日一覧を取得

curl -s https://seireki.teraren.com/holiday/2023.json | jq
[
  {
    "date": "2023-01-01",
    "name": "元日"
  },
  {
    "date": "2023-01-02",
    "name": "振替休日"
  },
  {
    "date": "2023-01-09",
    "name": "成人の日"
  },
  {
    "date": "2023-02-11",
    "name": "建国記念の日"
  },
  {
    "date": "2023-02-23",
    "name": "天皇誕生日"
  },
  {
    "date": "2023-03-21",
    "name": "春分の日"
  },
  {
    "date": "2023-04-29",
    "name": "昭和の日"
  },
  {
    "date": "2023-05-03",
    "name": "憲法記念日"
  },
  {
    "date": "2023-05-04",
    "name": "みどりの日"
  },
  {
    "date": "2023-05-05",
    "name": "こどもの日"
  },
  {
    "date": "2023-07-17",
    "name": "海の日"
  },
  {
    "date": "2023-08-11",
    "name": "山の日"
  },
  {
    "date": "2023-09-18",
    "name": "敬老の日"
  },
  {
    "date": "2023-09-23",
    "name": "秋分の日"
  },
  {
    "date": "2023-10-09",
    "name": "スポーツの日"
  },
  {
    "date": "2023-11-03",
    "name": "文化の日"
  },
  {
    "date": "2023-11-23",
    "name": "勤労感謝の日"
  }
]

Google SpreadsheetやExcelから利用する方法

Google Spreadsheetでは和暦を表示できません。Google App Scriptで西暦から和暦への変換プログラムを書いてよいのですが、なかなか複雑なので今回使ったサービスを使って和暦を表示してみたいと思います。

また、自分でロジックを書くと新たな和暦が登場したときにメンテナンスが必要になるという問題も発生します。

Google SpreadsheetではGoogle App Scriptを使うとREST APIの呼び出しと、JSONのパースができるようになります。

出力例とサンプルファイルのURL↓

https://docs.google.com/spreadsheets/d/1DiEUrZNH3Y7jJNrryQmRn04eMQO4zpoSHzKJg05Km38/edit?usp=sharing

Google App ScriptでREST APIを呼び出します。

function getWarekiFromSeireki(year) {
  
  const url = 'https://seireki.teraren.com/seireki/' + year  + '.json';
  
  try {
    ContactsApp response = UrlFetchApp.fetch(url, {'muteHttpExceptions': true});
    response_object = JSON.parse(response);
    return response_object['wareki'];
  }catch(e){
    Logger.log(e);
  }
}

その他

機能要望や不具合要望はDiscordの方へご連絡願います。

Discord - A New Way to Chat with Friends & Communities
Discord is the easiest way to communicate over voice, video, and text. Chat, hang out, and stay close with your friends ...

コメント