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

記事番号:040765

kintoneは、入力された日付に応じて月末日を表示できます。
日付フィールドと、うるう年を判定する計算式を設定したフィールドを配置することで、うるう年を考慮した月末日を表示することが可能です。

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

フォームの設定

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

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

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

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

  • 「文字列(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通りに場合わけしています。

    • 4月、6月、9月、11月は末日が30日
    • うるう年の2月は末日が29日
    • 平年の2月は末日が28日
    • それ以外の月(1月、3月、5月、7月、8月、10月、12月)は末日が31日