编辑:2020.07.24。这是一个电子表格,您可以在其中看到我的问题。 https://docs.google.com/spreadsheets/d/1-knADrKsStLz5lS_9gayHpZFcaZPsEbBMmrpOGXGMqg/edit?usp=sharing
我有一个电子表格(我不能分享),用脚本制作了我自己的自定义函数。
=cutomF(A1,A2,A3)
A1 = 8:00 (1899.12.30.08:00)
A2 = 16:00 (1899.12.30.16:00)
A3 = 05:00 (1899.12.30.05:00)
在脚本中,如果我只用其中两个时间(如 A2-A1)进行计算,它会返回一个正确的数字,我需要除以 /1000/60/60/24
但如果我想计算这个:A2-A3-A1 它只会返回极端错误的数字。
有什么可能是错的?
编辑:代码从我的语言稍微改写为英语......
在电子表格单元格中有这样的时间内容 08:00;
我想存档类似工人之间的比较的东西。
function CUSTOM_WORK_TIME(ROW_DATA,DAY,KM,ADDRESS,AVERAGE_KM,AVERAGE_ADDRESS,AVERAGE_TIME){
if(ROW_DATA[0][0]!=""){
Utilities.sleep(50);
var WORK_TIME;
var WORK_OVERTIME;
var WORK_TIME_WEEKEND = ((ROW_DATA[0][2]-ROW_DATA[0][1])/1000/60/60/24);
var return_array = [[]];
var KM_RATE = ((KM/AVERAGE_KM)*0.33);
var ADDRESS_RATE = ((ADDRESS/AVERAGE_ADDRESS)*0.33);
var TIME_RATE = ((ROW_DATA[0][2]-ROW_DATA[0][1])/AVERAGE_TIME)*0.34;
var PRINT_THIS;
PRINT_THIS = (ROW_DATA[0][2]-ROW_DATA[0][1])/1000/60/60/24; // JUST FOR TESTING
switch (ROW_DATA[0][0]){
case "TRANSPORT":
if(ROW_DATA[0][2]!="" && ROW_DATA[0][1]!=""){
Utilities.sleep(100);
if(DAY=="SATURDAY" || DAY=="SUNDAY"){
return_array[0][0] = "";
return_array[0][1] = "";
return_array[0][2] = WORK_TIME_WEEKEND;
return return_array;
}else{
Utilities.sleep(200);
WORK_TIME = ((ROW_DATA[0][2]-ROW_DATA[0][1])/1000/60/60/24);
if(WORK_TIME >(9/24)){
WORK_OVERTIME = (((ROW_DATA[0][2]-ROW_DATA[0][1])/1000/60/60/24) - (9/24))*(TIME_RATE+KM_RATE+ADDRESS_RATE);
WORK_TIME = (9/24);
return_array[0][0] = WORK_TIME;
return_array[0][1] = WORK_OVERTIME;
return_array[0][2] = "";
return return_array;
// return PRINT_THIS;
}else{
return_array[0][0] = WORK_TIME*(TIME_RATE+KM_RATE+ADDRESS_RATE);
return_array[0][1] = "";
return_array[0][2] = "";
return return_array;
}
}
}else{return "H";}
break;
default:
break;
}
}
}