目的: 1>時間字串相加 --> "88:40 " +"01:30"="90:10" , TM_ADD("88:40 ", "01:30 ")
2>日期字串相加 --> 2026/06/01 +2年 = 2028/06/01 , DATE_ADD("2026/06/01","A",2) ;
2026/07/01 +6月=2027/01/01 , DATE_ADD("2026/07/01","B",6) ;
2026/07/15 +20天=2026/08/05 , DATE_ADD("2026/07/15","C",20) ;
2026/07/01 +6月=2027/01/01 , DATE_ADD("2026/07/01","B",6) ;
2026/07/15 +20天=2026/08/05 , DATE_ADD("2026/07/15","C",20) ;
1>時間字串相加 - TM_ADD(par_TM1,par_TM2);
//Ex: Tmp_AFHR_ = get_TM_ADD(Tmp_AFHR, Tmp_FYTM);
function get_TM_ADD(par_TM1, par_TM2) {
var Tmp_hh1, Tmp_hh2,Tmp_hh3;
var Tmp_mm1, Tmp_mm2, Tmp_mm3;
Tmp_hh1 = Number(StrExtract(par_TM1, 1, ":"));
Tmp_mm1 = Number(StrExtract(par_TM1, 2, ":"));
Tmp_hh2 = Number(StrExtract(par_TM2, 1, ":"));
Tmp_mm2 = Number(StrExtract(par_TM2, 2, ":"));
Tmp_mm3 = (Tmp_mm1 + Tmp_mm2) % 60;
Tmp_hh = Math.trunc((Tmp_mm1 + Tmp_mm2) / 60);
Tmp_hh3 = Tmp_hh1 + Tmp_hh2 + Tmp_hh;
return Tmp_hh3.toString() + ":" + Tmp_mm3.toString();
}
var Tmp_hh1, Tmp_hh2,Tmp_hh3;
var Tmp_mm1, Tmp_mm2, Tmp_mm3;
Tmp_hh1 = Number(StrExtract(par_TM1, 1, ":"));
Tmp_mm1 = Number(StrExtract(par_TM1, 2, ":"));
Tmp_hh2 = Number(StrExtract(par_TM2, 1, ":"));
Tmp_mm2 = Number(StrExtract(par_TM2, 2, ":"));
Tmp_mm3 = (Tmp_mm1 + Tmp_mm2) % 60;
Tmp_hh = Math.trunc((Tmp_mm1 + Tmp_mm2) / 60);
Tmp_hh3 = Tmp_hh1 + Tmp_hh2 + Tmp_hh;
return Tmp_hh3.toString() + ":" + Tmp_mm3.toString();
}
function TM_ADD(par_TM1, par_TM2) {
return get_TM_ADD(par_TM1, par_TM2)
}
2>日期字串相加 - DATE_ADD(par_DT,par_UNIT,par_VAL);
par_UNIT: A/B/C: 年/月/日
/*
* function DATE_ADD(par_DT, par_UNIT,par_VAL)
* 傳入參數: par_DT: 原始日期
* par_UNIT: A/B/C: 年/月/日
* par_VAL: 累加數值
日期字串相加-- > 2026 / 06 / 01 + 2年 = 2028 / 06 / 01, DATE_ADD("2026/06/01", "A", 2);
2026 / 07 / 01 + 6月 = 2027 / 01 / 01, DATE_ADD("2026/07/01", "B", 6);
2026 / 07 / 15 + 20天 = 2026 / 08 / 05, DATE_ADD("2026/07/15", "C", 20);
*/
function DATE_ADD(par_DT, par_UNIT,par_VAL) {
var Tmp_YYYY, Tmp_MM, Tmp_DD;
var Tmp_YYYY1, Tmp_MM1, Tmp_DD1;
var Tmp_ADD_YY1, Tmp_ADD_MM1;
var Tmp_DT = DatetoStr(par_DT, "Y/m/d");
Tmp_YYYY = Number(StrExtract(Tmp_DT, 1, "/"));
Tmp_MM = Number(StrExtract(Tmp_DT, 2, "/"));
Tmp_DD = Number(StrExtract(Tmp_DT, 3, "/"));
Tmp_YYYY1 = Tmp_YYYY; Tmp_MM1 = Tmp_MM; Tmp_DD1 = Tmp_DD;
switch (par_UNIT) {
case "A": //年
{
Tmp_YYYY1 = Tmp_YYYY + parseInt(par_VAL);
break;
}
case "B": //月
{
Tmp_MM1 = Tmp_MM + parseInt(par_VAL);
Tmp_ADD_YY1 = Math.trunc((Tmp_MM1) / 12); //取商數
Tmp_YYYY1 = Tmp_YYYY + Tmp_ADD_YY1;
Tmp_MM1 = Math.trunc((Tmp_MM1) % 12); //取餘數
break;
}
case "C": //天
{
//日期函式 Tmp_DT.setDate( ) ; 日期不對
//Tmp_DD1 = Tmp_DD1 + par_VAL;
var Tmp_DT = new Date(par_DT);
var Tmp_DD = Tmp_DT.getDate();
//console.log("2 Tmp_DT:", Tmp_DT);
//Tmp_DD 及 par_VAL 必需先轉成數值,才可以累加
Tmp_DT.setDate(parseInt(Tmp_DD) + parseInt(par_VAL));
//console.log("3 Tmp_DT.setDate():", Tmp_DT);
Tmp_YYYY1 = Tmp_DT.getFullYear(); // 年份 (例如 2026)
Tmp_MM1 = Tmp_DT.getMonth() + 1; // 月份 (0~11,要 +1 才是正常月份)
Tmp_DD1 = Tmp_DT.getDate(); // 日期 (1~31)
break;
}
}// end of switch (par_UNIT)
return Tmp_YYYY1.toString() + "/"+Tmp_MM1.toString() +"/"+ Tmp_DD1.toString();
} // end of function DATE_ADD(par_DT, par_UNIT,par_VAL) {