很努力给定的总持续时间的分割后拿到propper持续时间值。谷歌Apps脚本我司期限
下面是函数的一个例子。这是实际功能的缩写版本。在实际函数中,我循环遍历一个范围,并将每个行持续时间(单元格设置为格式Time:h:mm:ss)合计到totDur中。我从较大的函数中获取了这个值,并明确地为此示例设置了值。令人困惑的是,这种方法在同一个函数中大约25次其他的持续时间除法运算中工作正常,但不是这个。我有一种感觉,它与数据类型或相关的东西有关。
function myFunction() {
var totDur=new Date();
var totRev=137;
var totCtr=82
totDur.setUTCHours(0,0,0,0);
totDur=-301170516818000;
Logger.log('TOT DUR:'+totDur)
var nTime = new Date();
nTime.setUTCHours(0,0,0,0);
var diffGm=totDur-nTime;
var diffRev=totDur-nTime;
var divGm=diffGm/totCtr;
var divRev=diffRev/totRev;
Logger.log('TOT DUR: '+Utilities.formatDate(new Date(totDur), 'UTC', 'HH:mm:ss'))
Logger.log('BY REV: '+Utilities.formatDate(new Date(diffRev), 'UTC', 'HH:mm:ss')+'/'+totCtr+'='+Utilities.formatDate(new Date(divRev), 'UTC', 'HH:mm:ss'))
Logger.log('BY GM: '+Utilities.formatDate(new Date(diffGm), 'UTC', 'HH:mm:ss')+'/'+totRev+'='+Utilities.formatDate(new Date(divGm), 'UTC', 'HH:mm:ss'))
}
下面是所得日志输出:
[17-01-18 10:20:33:442 MST] TOT DUR UNFORMATTED:-301170516818000
[17- 10月1日至18日:20:33:443 MST] TOT DUR FORMATTED:3点06分22秒
[17-01-18 10:20:33:444 MST] BY REV:03:06:82分之22= 23 :50:50
[17-01-18 10:20:33:445 MST] BY GM:03:06:137分之22= 01:12:31
TOT DUR值是正确的,但其他两个都没有。我假设我正在进行不正当的划分。显然3小时6分22秒除以82不是23小时。
日期只是自1970年以来,顶部一些奇特的方法毫秒,你真的需要使用日期呢?我宁愿尝试解析从电子表格中获取时间戳的持续时间,然后在计算后将其解析回来。 –
感谢您的回复。你的评论让我重新思考这个过程。我最终将Value转换为毫秒并对其进行分割。然后重新格式化为HH:mm:ss。现在,减少代码和值的方法都是正确的。谢谢 – user3692874