あなたのビジネスと共に歩むサイト

with-Biz

【超簡単】kintoneでJava Scriptを使って正確な年齢を自動計算する方法

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を活用してより一層便利に活用しましょう!

kintoneで見やすいのカンバン形式を無料で導入する方法

kintoneでカンバン形式のタスク管理を使う場合、有料のプラグインを使うか、無料の場合はjava scriptでコード ...

Kintoneはプラグインでこんなに良くなる!Kintoneのオススメプラグイン

ノンコーディングでアプリが作成できるフレームワーク「Kintone」。しかし、細かいカスタマイズをしようとすると、どうし ...

Kintoneで郵便番号から住所を検索する方法

過去に同様の記事を書きましたが、2020年6月でAPIの提供が終了してしまいました。 新たにzipcloudが郵便番号検 ...

WordPressの問い合わせフォームContact Form 7とkintoneを連携する方法

WordPressでHPを作成している場合、プラグインの Contact Form 7 で問い合わせフォームを作成してい ...

【kintone】ボタンクリックで別アプリの編集画面に値をコピーした状態で開く方法

タイトルだけ見ると何を言ってるか分かりませんよね…^^; Aアプリのスペースに設定したボタンからBアプリの編集画面を立ち ...

【kintone】JavaScriptを使って郵便番号から住所を作成する(コピペでOK)

kintoneの顧客管理アプリを作ってる中で、ふとこんなことを思ったのがきっかけ。 kotopapa住所入力面倒だなぁ… ...

JavaScriptを使ってkintoneの一覧画面上に全レコードを対象とした一括処理ボタンを実装したい

kintoneを使っているとよく発生する事象です。 アプリ内のレコード数が数千件あるが、この新しくフィールドを追加するこ ...

kintoneのJava Scriptで非同期処理の完了を待つ方法

kintoneのjava scriptで機能拡張していると、便利なはずの非同期処理がかえって困るケースがあります。 例え ...

kintoneでJava Scriptを使ってサブテーブルを初期化する方法

kintoneで別アプリのレコード情報をサブテーブルにまとめて取得する場合、まずはサブテーブルを初期化…。 あれ?サブテ ...

kintoneでJava Scriptを使ってダイアログ(確認ポップアップ)を表示する

kintoneの保存前に保存チェックをしたり、保存キャンセルをしたり、ダイアログを表示することで処理の切り替えをすること ...