年と月と日を日付に変換
kintoneでは、分かれて入力された「年」と「月」と「日」を1つのフィールドにまとめて、日付形式で表示するための関数がありません(2021年10月現在)。
下記の手順で、年と月と日をkintoneの標準機能で日付形式に変換することができます。
ただし、ここでは計算フィールドで変換しているため、リマインダー通知の基準日など、日付・日時フィールドであることが必要な機能に利用することはできません。日付・日時フィールドに計算結果を入力するには、JavaScriptカスタマイズやプラグインなどが必要です。
例1
年 : 2021
月 : 10
日 : 9
↓
日付 : 2021-10-9
例2
ただし、月に2、日に31などが入力されて、月末日を超えている場合は、翌月の1日とします。
年 : 2021
月 : 2
日 : 31
↓
日付 : 2021-3-1
参考
1か月後の日付をkintoneの標準機能で計算
指定月数後の日付をkintoneの標準機能で計算する
考え方
1.年の扱い
kintoneでは1970年1月1日からの秒数で日付を扱う(UNIX日付)ため、1970との年数の差を秒単位で足します。4年に1度のうるう年も考慮します。1900年以降なら下記の計算で対応できます。
その年 : ((年-1970)365+ROUNDDOWN((年-1968)/4))246060
2.月の扱い
上記で求めた年に、月を秒単位で足します。1月の場合は、足す必要がないため、月から1を引きます。
その月 : その年+(月-1)31246060
3.日の扱い
その月に日を加えて結果日付を求めます。
その月の日 : DATE_FORMAT(その月,"d","Etc/GMT")
その月の1日 : その月-(その月の日-1)246060
結果日付 : その月の1日+(日-1)246060
4.月末の扱い
結果日付が月末を超えている場合に翌月の1日とします。
結果日 : DATE_FORMAT(結果日付,"d","Etc/GMT")
日付 : IF(日>結果日,結果日付-(結果日-1)2460*60,結果日付)
kintoneのアプリ
※フィールドコードはフィールド名と同じにします。
完成イメージ
入力
・年[数値フィールド](1900~)
・月[数値フィールド](1~12)
・日[数値フィールド](1~31)
計算用
・その年[計算フィールド]
計算式 : ((年-1970)*365+ROUNDDOWN((年-1968)/4))*24*60*60
表示形式 : 日付
・その月[計算フィールド]
計算式 : その年+(月-1)*31*24*60*60
表示形式 : 日付
・その月の日 [計算フィールド]
計算式 : DATE_FORMAT(その月,"d","Etc/GMT")
表示形式 : 数値
・その月の1日 [計算フィールド]
計算式 : その月-(その月の日-1)*24*60*60
表示形式 : 日付
・結果日付 [計算フィールド]
計算式 : その月の1日+(日-1)*24*60*60
表示形式 : 日付
・結果日 [計算フィールド]
計算式 : DATE_FORMAT(結果日付,"d","Etc/GMT")
表示形式 : 数値
変換された日付
・日付 [計算フィールド]
計算式 : IF(日>結果日,結果日付-(結果日-1)*24*60*60,結果日付)
表示形式 : 日付