キンコミ kintone user community

みんなの投稿

2021/10/19 17:22

日付計算について質問です。
kintoneの日付計算について、以下のような場合、
皆さんどうされていますか?

1) 生年月日をもとに、現在年齢を表示
kintoneの計算式で現在時刻(NOW)がとれないため、
JavaScriptでがんばるしかないでしょうか。

2) 基準日から10年後の1日前 (2021/10/18 → 2031/10/17)
N 年後の計算式だと、うるう年で日付がずれて、
2021/10/18 の10年後の1日前が、2031/10/16になってしまいます。(添付画像)

日付計算プラグインを使ってみましたが、
10年後は設定できても、10年後の1日前という設定ができませんでした。

社内のアプリ作成者から、度々日付計算について質問されるのですが、
なかなかうまく対応できず、悩ましいです。
アイディアがありましたら、教えていただきたいです。

2件のコメント (新着順)

いつまさん
krewsheetを導入できるのでしたら、私もそれがお勧めです。

なお、
2) 基準日から10年後の1日前 (2021/10/18 → 2031/10/17)
は、標準機能でも可能です。
キンコミのこちらの記事
https://kincom.cybozu.co.jp/chats/hx9kd0vufwqx8fue
でもお答えしましたが、「指定月数後の日付をkintoneの標準機能で計算する」の方法で、
https://qiita.com/t0ru/items/4874ad6dff60020b346c
10年後=120か月後の日付を計算できるので、そこから1*24*60*60を引けば、
「基準日から10年後の1日前」を計算できます。

また、
1) 生年月日をもとに、現在年齢を表示
については、標準機能でやるなら、「現在日」という日付フィールド(初期値:レコード登録時の日付)をもたせて、「現在日」と「生年月日」の差で現在年齢を計算し、
毎日、日付が変わるたびに
・CSVファイル書き出しでレコード番号と現在日を書き出す
・CSVファイル読み込みで「現在日」に今日の日付を入れてレコード番号で上書き更新
すれば、現在年齢を最新に再計算させられます。
その操作をkintoneコマンドラインツールを利用してシェルスクリプトを定期的に実行したり、Microsoft PowerAutomateなどのRPAツールで自動化するという手もあります。

いかがでしょうか。


いつま
2021/10/21 15:11

中村徹さん
アドバイスありがとうございます。
2) 基準日から10年後の1日前
標準機能で計算するの方法で、実装できました!
ありがとうございますっ

1) 生年月日をもとに、現在年齢を表示
担当者に相談して、多少ずれてもいいわよ・・・ということになり、
今回はJavaScriptで対応したのですが、
日々上書き更新する方法があるんですね!
kintoneコマンドラインツールは、まだ試したことがなかったので、
試してみますっ。
社内でkintone活用が進み始めていて、
一括更新系の対応は、今後要望されそうです。

アドバイスありがとうございました

suji バッジ画像
2021/10/20 09:35

いつまさん

1)計算式に”更新日時”が使えるのでそこから計算しています。
 更新する仕掛けが必要なのですが一括更新系のプラグインで・・・。
 ただ、こちらも標準機能だとうるう年でずれるんですよね。

 と思ってたらこんなプラグイン見つけました。
 https://ribbit.work/blog/kintone-plugin-age/
 未検証ですが・・・。

2)こちらのnoteが参考になりそうです
https://note.com/46u/n/nbdc0b1813273

なお、どちらもkrewsheetがあれば楽々実装可能ですよ! #ダイマ
https://blog-krew.grapecity.com/entry/20210615/krewsheet/age/


いつま
2021/10/20 11:31

sujiさん
コメントありがとうございます。
たしかに、krewSheetなら即対応できますね!
krewSheet導入したいものです・・・

プラグインもレコード登録時の年齢計算に使えそうです!
noteの記事も試してみます!

アドバイスありがとうございました