日付の値に応じて月末日を表示したい(うるう年を考慮した表示)

記事番号:040765

日付フィールドと、うるう年を判定する計算式を設定したフィールドを配置することで、うるう年を考慮した月末日を表示できます。

完成イメージ うるう年の計算結果

準備

フォームに以下のフィールドを配置し、フィールド名とフィールドコードを設定してください。

  • 「日付」フィールド
    フィールド名、フィールドコード:日付

  • 「計算」フィールド
    フィールド名、フィールドコード:年

  • 「計算」フィールド
    フィールド名、フィールドコード:月

  • 「文字列(1行)」フィールド
    フィールド名、フィールドコード:うるう年判定

  • 「文字列(1行)」フィールド
    フィールド名、フィールドコード:月末日

配置したフィールド完成図

計算式の設定

計算フィールドと文字列(1行)フィールドに計算式を設定します。

  • 「年」フィールドの計算式

    コピーされました
    DATE_FORMAT(日付, "YYYY", "Etc/GMT")
  • 「月」フィールドの計算式

    コピーされました
    DATE_FORMAT(日付, "M", "Etc/GMT")
  • 「うるう年判定」フィールドの計算式

    コピーされました
    IF(OR(年/4-ROUNDDOWN(年/4)!=0,AND(年/100-ROUNDDOWN(年/100)=0,年/400-ROUNDDOWN(年/400)!=0)),"平年","うるう年")
  • 「月末日」フィールドの計算式

    コピーされました
    IF(OR(月=4,月=6,月=9,月=11),DATE_FORMAT(日付, "YYYY年M月30日", "Etc/GMT"),IF(AND(月=2,うるう年判定="うるう年"),DATE_FORMAT(日付, "YYYY年M月29日", "Etc/GMT"),IF(AND(月=2,うるう年判定="平年"),DATE_FORMAT(日付, "YYYY年M月28日", "Etc/GMT"),DATE_FORMAT(日付, "YYYY年M月31日", "Etc/GMT"))))

参考:アプリテンプレート

この計算式が設定されたアプリのテンプレートを、以下からダウンロードできます。

アプリテンプレート:leap_year.zip(日本語のみ)

リンクをクリックしてテンプレートファイル(zip)をダウンロードしたあと、解凍せずにkintoneで読み込んでください。

計算式の解説

  • 「うるう年判定」フィールドでは、「年」フィールドの値に応じて「平年」または「うるう年」のどちらかが表示されるようにしています。
    参考までに、「平年」と「うるう年」のどちらに当てはまるかは、以下の法令上の扱いを元に算出しています。

    • 西暦が4で割り切れる年をうるう年とする
    • 西暦が100で割り切れて、400で割り切れない年は、平年とする
      参考:うるう年をめぐる法令(弊社ページではありません)
  • 「月末日」フィールドでは、IF関数を使い、月末日を以下の4通りに場合わけしています。