【kintoneノーコード開発】日付フィールドを使ってこんな表示があったらいいな～の値を計算で取得してみよう！

# はじめに
こんにちは、現在kintoneノーコード開発で日々試行錯誤しているばんちゃん（[@Banchan_k12](https://x.com/Banchan_k12)）です。
今回は、日付フィールドを使って、こんな表示があったらいいな～という値の設定方法がkintoneヘルプで紹介されているので設定してみたいと思います。
### 対象
- 和暦を使う機会があり、西暦から和暦を調べて変換している方
- 特定の日付からn日後の締め切りや期限などを自動で知りたい方
# 導入
kintoneのフィールドを設定する中で、申込日・開始日/終了日・生年月日など日付フィールドを設定することが多くあります。
kintoneでは入力した日付を使って計算設定することもできます。日付フィールドを使った計算について少し掘り下げてみようと思います。

kintoneには日付、時刻、日時フィールドの3種があり、計算式から参照が可能です。

:::note info
kintone ヘルプ
（この記事を書くために開いたら、画面がリニューアルしていてびっくり:astonished:）

[日付、時刻、日時の計算](https://jp.cybozu.help/k/ja/id/040502.html "日付、時刻、日時の計算")
:::

##### 事例１：生年月日を和暦で表示したい
詳しい設定方法はkintoneヘルプに記載されているので、その通りに設定してみます。

:::note info
kintone ヘルプ
[日付を和暦で表示したい](https://jp.cybozu.help/k/ja/id/040777.html "日付を和暦で表示したい")

![20250315_2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3957411/c32b80ab-ab91-411b-a8e5-543434d26aa2.jpeg)

計算フィールドの設定画面
![20250315_3.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3957411/9bf2c425-cda3-4d79-898b-6e326cb07532.jpeg)
文字列（1行）フィールドの自動計算設定画面
![20250315_4.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3957411/b669999f-3edd-4067-b87c-68776a200627.jpeg)
:::
生年月日を入力すると和暦が表示され、設定完了！
![20250315_1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3957411/050076c3-1ffd-431b-97fd-90c229bea6cd.jpeg)
いや～すばらしい:clap:
和暦ってなんだかんだで必要だったりするので、西暦をいちいち調べて変換するのは結構大変。
と思っていました．．．が、

入力時に生年月日が不明な方の「生年月日」フィールドを空欄にして保存したところ、こんな風になりました。:eyes:
![20250315_5.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3957411/eef257f9-bced-46ec-8ae6-f138076b5e75.jpeg)

生年月日を入力していないのに、なんで日付が入ってる:question:
しかもなんで「昭和45年1月1日:question:」

kintoneヘルプを見直してみます。

:::note info
kintoneヘルプ
[日付、時刻、日時フィールドの値の扱われ方](https://jp.cybozu.help/k/ja/id/040502.html#autocalc_date_time_10 "日付、時刻、日時フィールドの値の扱われ方")
>日付、時刻、日時のフィールドの値は、UNIX時刻として扱われます。UNIX時刻とは、1970年1月1日午前0時 協定世界時（UTC）からの経過秒数のことです。
:::

:::note warn
kintoneヘルプ
[注意：日付フィールドが未入力の場合](https://jp.cybozu.help/k/ja/id/040502.html#autocalc_date_time_2020 "注意：日付フィールドが未入力の場合")
>DATE_FORMAT関数で参照している日付フィールドが空欄の場合、文字列（1行）フィールドには、1970-01-01が表示されます。
:::

上記2点の仕様で「昭和45年1月1日」という値がセットされてしまうのですね。
では、回避する方法は～
>- 日付フィールドの初期値を設定する
>- 文字列（1行）フィールドにIF関数の計算式を設定する
日付が空欄の場合、文字列（1行）も空欄にできます

今回の場合、初期値設定ではなく、「生年月日」がはいっていなければ和暦も空欄にしたいということで、以下のように計算式を修正してみました。

:::note info
もし「生年月日」が空欄なら、値を空欄で返す
![20250315_6.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3957411/f0687db5-3941-45a7-afe3-7c214f190fc3.jpeg)
:::

この設定に変更してデータを保存すると
無事、「生年月日（和暦）」フィールドも空欄になりました:clap:
![20250315_7.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3957411/b7257458-1797-4db2-8611-8149a4022df7.jpeg)

##### 事例2：申込日から30日後の終了日を計算したい
はい、またまた詳しい設定方法はkintoneヘルプに記載されているので、その通りに設定してみます。

:::note info
kintoneヘルプ
[申込日から30日後の試用終了日を計算する](https://jp.cybozu.help/k/ja/id/040501.html#autocalc_date_format_4050 "申込日から30日後の試用終了日を計算する")
>kintoneでは、日付、時刻、日時のフィールドの値はUNIX時刻として扱われます。このため、日付や日時は秒単位で扱い、計算式も秒単位で指定します。たとえば、1分間は「60」、1時間は「3600」または「60*60」と入力します。

文字列（1行）フィールドの自動計算設定画面
![20250315_8.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3957411/025e5788-532e-455b-b11d-6ddaa6e63d05.jpeg)
:::
「体験申し込み日」から30日後の日付が「体験終了日」に表示されました。
![20250315_9.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3957411/70ba4a42-f905-4f43-a658-d70f35080269.jpeg)


と、ここでまたもや空欄なのに経過日付が表示される問題発生！
![20250315_10.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3957411/a5f3ec9d-e865-480a-a981-57f6ac6436d9.jpeg)

生年月日の時と同じ回避方法で、以下の通り計算式を修正してみました。

:::note info
もし「体験申し込み日」が空欄なら、値を空欄で返す
![20250315_11.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3957411/ecb9df0f-a77d-4240-93b0-ff5e0d24da3b.jpeg)
:::
こちらも無事に空欄にすることができました！
![20250315_12.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3957411/6f569dd0-d025-4935-b097-31ede845bdaf.jpeg)

# まとめ
日付フィールドを設定するだけでなく、日付を使って色んな計算をすることができるので、kintoneヘルプにはTipsが紹介されているのでぜひ調べてみて、あったらいいな～と思う値を設定してみてください。
ますます活用の幅が広がると思います。