0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

rex0220 計算式プラグイン 和暦変換

Last updated at Posted at 2019-04-02

令和が発表されましたので、kintone アプリの和暦変換ネタです。
計算式プラグインを使って、和暦変換してみます。

和暦変換アプリ例

日付項目と元号、和暦年を配置します。
元号は、文字列項目またはドロップダウン項目が使えます。
テーブルにすると、元号の変わり目のチェックも簡単です。
※LET関数を使った計算式を追加しました。(2024/12/10)

2019-04-02_10h44_15.png

計算式プラグイン設定

テーブル内項目もフィールドコードを変えるだけでOKです。

2019-04-02_10h48_47.png

元号

元号の始まる日付で、元号を切り替えます。

.js
IF(日付,
IFS(DATE_FORMAT(日付)>="2019-05-01","令和",
DATE_FORMAT(日付)>="1989-01-08","平成",
DATE_FORMAT(日付)>="1926-12-25","昭和",
DATE_FORMAT(日付)>="1912-07-30","大正",
DATE_FORMAT(日付)>="1868-01-25","明治"))

和暦の年

元号の始まる日付で、和暦の年を計算します。
計算の基準日は、元号の始まる年の1月1日にします。

.js
IF(日付,
DATE_DIFF(
IFS(DATE_FORMAT(日付)>="2019-05-01","2019-01-01",
DATE_FORMAT(日付)>="1989-01-08","1989-01-01",
DATE_FORMAT(日付)>="1926-12-25","1926-01-01",
DATE_FORMAT(日付)>="1912-07-30","1912-01-01",
DATE_FORMAT(日付)>="1868-01-25","1868-01-01"),
日付,"years")+1)

LET 関数を使った和暦変換

LET関数を使うとわかりやすく記述できます。

.js
// 元号 DROP_DOWN
LET(
  fDate, DATE_FORMAT(日付), // 日付取得
  IFS(
    fDate >= "2019-05-01", "令和",
    fDate >= "1989-01-08", "平成",
    fDate >= "1926-12-25", "昭和",
    fDate >= "1912-07-30", "大正",
    fDate >= "1868-01-25", "明治",
    "" // 無効日
  ),
)

// 年 NUMBER
LET(
  fDate, DATE_FORMAT(日付), // 日付取得
  eDate, IFS(
    fDate >= "2019-05-01", "2019-01-01", // 令和
    fDate >= "1989-01-08", "1989-01-01", // 平成
    fDate >= "1926-12-25", "1926-01-01", // 昭和
    fDate >= "1912-07-30", "1912-01-01", // 大正
    fDate >= "1868-01-25", "1868-01-01", // 明治
    "" // 無効日
  ),
  IF(eDate, DATE_DIFF(eDate, fDate, "year")+1) // 年差分
)

// Table.元号T DROP_DOWN
LET(
  fDate, DATE_FORMAT(日付T), // 日付取得
  IFS(
    fDate >= "2019-05-01", "令和",
    fDate >= "1989-01-08", "平成",
    fDate >= "1926-12-25", "昭和",
    fDate >= "1912-07-30", "大正",
    fDate >= "1868-01-25", "明治",
    "" // 無効日
  ),
)

// Table.年T NUMBER
LET(
  fDate, DATE_FORMAT(日付T), // 日付取得
  eDate, IFS(
    fDate >= "2019-05-01", "2019-01-01", // 令和
    fDate >= "1989-01-08", "1989-01-01", // 平成
    fDate >= "1926-12-25", "1926-01-01", // 昭和
    fDate >= "1912-07-30", "1912-01-01", // 大正
    fDate >= "1868-01-25", "1868-01-01", // 明治
    "" // 無効日
  ),
  IF(eDate, DATE_DIFF(eDate, fDate, "year")+1) // 年差分
)

注意事項

明治以降の元号に対応しています。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?