ユーザーの年齢を計算できますか?

記事番号:040265

kintoneでは、今日を基準日とした年齢の自動計算はできませんが、レコードの更新日や特定の日付を基準日とした年齢の計算ができます。
レコードの更新日時点での年齢を計算する場合は更新日時フィールド、特定の日付時点での年齢を計算する場合は日付フィールド、日時フィールドを活用して、生年月日との差から年齢を計算します。

ここでは、レコードの更新日を基準日として、うるう年を考慮せずおおよその年齢を計算する簡易的な方法と、うるう年を考慮して年齢を計算する方法の2通りについて説明します。

方法1:うるう年を考慮しない

うるう年を考慮せず1年を365日と考え、生年月日から更新日時までの年数を年齢として計算します。実際の年齢より高く算出されることがあります。

準備

アプリ設定のフォームで以下のフィールドを配置し、それぞれにフィールド名とフィールドコードを設定します。

  • 更新日時フィールド
    フィールド名:更新日時
    フィールドコード:更新日時

  • 日付フィールド
    フィールド名:生年月日
    フィールドコード:生年月日

  • 計算フィールド
    フィールド名:年齢
    フィールドコード:年齢

計算式の設定

計算フィールドに以下の計算式を設定します。
計算フィールドの[小数点以下の表示桁数]は「0」に設定してください。

  • 「年齢」フィールド

    コピーされました
    (更新日時-生年月日)/ (60*60*24*365)

計算式の解説

1年を365日として、更新日時と生年月日の差の年数を計算します。

日付の値の扱いや関数についての詳細は、次のページを参照してください。
日付、時刻、日時の計算

方法2:うるう年を考慮する

うるう年を考慮し、生年月日から更新日時までの年数を年齢として計算します。

準備

アプリ設定のフォームで以下のフィールドを配置し、それぞれにフィールド名とフィールドコードを設定します。

  • 更新日時フィールド
    フィールド名:更新日時
    フィールドコード:更新日時

  • 計算フィールド
    フィールド名:更新日時A
    フィールドコード:更新日時A

  • 日付フィールド
    フィールド名:生年月日
    フィールドコード:生年月日

  • 計算フィールド
    フィールド名:生年月日A
    フィールドコード:生年月日A

  • 計算フィールド
    フィールド名:年齢
    フィールドコード:年齢

計算式の設定

計算フィールドに以下の計算式を設定します。

  • 「更新日時A」フィールド

    コピーされました
    DATE_FORMAT(更新日時,"YYYYMMdd","system")
  • 「生年月日A」フィールド

    コピーされました
    DATE_FORMAT(生年月日,"YYYYMMdd","system")
  • 「年齢」フィールド

    コピーされました
    ROUNDDOWN((更新日時A-生年月日A)/10000,0)

計算式の解説

更新日時と生年月日を、DATE_FORMAT関数を使用して日時形式の値に変換し、その差を計算します。
計算結果の万の位から上位が年齢を表すため、計算結果を「10000」で割り、ROUNDDOWN関数を使用して小数点以下を切り捨てます。

関数についての詳細は、次のページを参照してください。
[DATE_FORMAT関数]日付や時刻の表示形式を指定して表示する
[ROUND関数、ROUNDUP関数、ROUNDDOWN関数]数値を四捨五入、切り上げ、切り捨てする