現在、和暦から西暦に変換をする為のコードと年齢を自動計算させる2つを組み合わせて利用しています。
和暦から西暦変換は正常に動作しますが、年齢自動計算が昭和44年(1969年)以降に設定すると正常にYMD1へピックアップされず、計算が出来ない不具合が発生していまいます。
改善策を見つけることが出来ていません。アドバイスを頂けると幸いです。
宜しくお願い致します。
生年月日 日付 フィールドコード:誕生日
和暦から西暦変換コードはJavascriptで下記の様に組んでいます。
(function() {
‘use strict’;
var tri = [
‘和暦’,
‘和暦年’,
‘和暦月’,
‘和暦日’
];
kintone.events.on([‘app.record.create.show’,‘app.record.edit.show’] ,(event)=> {
let events = [];
tri.forEach(target=>{
events.push(‘app.record.create.change.’+target);
events.push(‘app.record.edit.change.’+target);
});
kintone.events.on(events,event=>{
const record = event.record;
if(record[‘和暦’].value && record[‘和暦年’].value && record[‘和暦月’].value && record[‘和暦日’].value){
let nen;
if(record[‘和暦’].value === “大正”){
nen = parseInt(record[‘和暦年’].value) + 1911;
}else if(record[‘和暦’].value === “昭和”){
nen = parseInt(record[‘和暦年’].value) + 1925;
}else if(record[‘和暦’].value === “平成”){
nen = parseInt(record[‘和暦年’].value) + 1988;
}else{
nen = parseInt(record[‘和暦年’].value) + 2018;
}
record[‘誕生日’].value = nen + “-” + record[‘和暦月’].value + “-” + record[‘和暦日’].value;
}
return event;
});
return event;
});
})();
年齢自動計算は下記の様に連動させています。
生年月日 ⇔ YMD1
更新日時 ⇔ YMD2
YMD1,YMD2 ⇒ 年齢
計算式は以下の通りです。
【YMD1】
IF(誕生日<0,0
DATE_FORMAT(誕生日,“YYYYMMdd”,“system”)
)
【YMD2】
IF(更新日時<0,0
DATE_FORMAT(更新日時,“YYYYMMdd”,“system”)
)
【年齢】
ROUNDDOWN((YMD2-YMD1)/10000.0)