kintoneの標準機能では年齢表示をすることができないのをご存じでしょうか。
kotopapa
標準機能の計算フィールドを使って年齢計算するとうるう年が考慮されなかったりしてズレるんだよね…
そう、計算フィールドを使って簡易的に実装はできるものの、うるう年の計算などが考慮されておらず、標準機能では完璧な年齢計算ができません。
そこで、コピペするだけで使える年齢計算のJava Scriptコードを公開したいと思います。
環境構築
【超簡単】初心者でもできる!kintoneの開発環境構築手順(VSCode)
kintoneといえば、ノンプログラミングでアプリを作成できるツールであり、いろいろな自治体をはじめ、多くの企業で活用さ ...
続きを見る
コピペするだけ、年齢計算のJava Script
年齢計算のコードは関数で作成します。
第一引数:birthdate
Date型で誕生日を指定。
第二引数:targetdate
Date型で基準日を指定。
戻り値:age
年齢を計算してreturn。
// 年齢を計算する関数
function calcAge(birthdate, targetdate) {
var age = targetdate.getFullYear() - birthdate.getFullYear();
var birthday = new Date(targetdate.getFullYear(), birthdate.getMonth(), birthdate.getDate());
if (targetdate < birthday) {
age--;
}
return age;
}
サンプルコード①
1レコードに1名の情報がある場合のサンプルコード。
用意するフィールド
フィールド名 | フィールド |
誕生日 | 日付 |
年齢 | 数値 |
誕生日フィールド(DATE)の内容を取得し、イベントが走った日付と比較して年齢を計算します。
(function() {
"use strict";
var events = [
// レコード編集時の処理
'app.record.create.show',
'app.record.edit.show',
'app.record.create.change.誕生日',
'app.record.edit.change.誕生日'
]
kintone.events.on(events,function(event) {
// 誕生日情報を取得
var date = new Date(event.record['誕生日'].value);
var today = new Date();
// 年齢フィールドに年齢を登録
event.record['年齢'].value = calcAge(date,today);
return event;
});
// 年齢を計算する関数
function calcAge(birthdate, targetdate) {
var age = targetdate.getFullYear() - birthdate.getFullYear();
var birthday = new Date(targetdate.getFullYear(), birthdate.getMonth(), birthdate.getDate());
if (targetdate < birthday) {
age--;
}
return age;
}
})();
サンプルコード②
サブテーブルに個人情報がまとめられている場合のサンプルコードです。
用意するフィールド
フィールド名 | フィールド |
個人情報 | サブテーブル |
誕生日 | 日付 |
年齢 | 数値 |
(function() {
"use strict";
var events = [
// レコード編集時の処理
'app.record.create.show',
'app.record.edit.show',
'app.record.create.change.誕生日',
'app.record.edit.change.誕生日'
]
kintone.events.on(events,function(event) {
// 個人情報サブテーブル内を1行ずつチェックし、誕生日情報を取得
for(let i = 0; i < event.record['個人情報'].value.length; i++){
var date = new Date(event.record['個人情報'].value[i].value['誕生日'].value);
var today = new Date();
// 年齢フィールドに年齢を登録
event.record['個人情報'].value[i].value['年齢'].value = calcAge(date,today);
}
return event;
});
// 年齢を計算する関数
function calcAge(birthdate, targetdate) {
var age = targetdate.getFullYear() - birthdate.getFullYear();
var birthday = new Date(targetdate.getFullYear(), birthdate.getMonth(), birthdate.getDate());
if (targetdate < birthday) {
age--;
}
return age;
}
})();
kintoneはJava Scriptでカスタマイズをして便利に活用しよう
kintoneはノンプログラミングでアプリが作れる、非常に優秀なフレームワークです。
しかし、アプリを作っていけばいくほど、不足することも多いのが実態。
Java Scriptを活用してより一層便利に活用しましょう!