GASで標準時間を超える経過時間の取得や利用
SpreadSheetで勤怠管理などをしていたら月の労働時間が24時間を超えることはざらにありますよね。
でもそれを取得して色々触りたい場合、なかなかうまくいきませんでした。
例えばA1セルに 35:00:00 のように色々と足し合わされて35時間と表示されていたとします。
これを普通に取得しようとすると
time.gas
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('労働時間');
var time = sheet.getRange('A1').getValue();
Logger.log(time);
[18-05-25 00:48:07:869 PDT] Sun Dec 31 11:00:00 GMT+09:00 1899
こんな風に表示されて、24で割ったあまりしか出てきません。
GASは1899年12月30日0時0分0秒が基準時刻となっているようなので、これを引きミリ秒計算します。
time.gas
var baseTime = new Date("Sun Dec 30 00:00:00 GMT+09:00 1899");
Logger.log((tim-baseTime)/1000/60/60);//ミリ秒を時間に換算
[18-05-25 00:48:07:869 PDT] 35.0
時を操るのは難しいなぁ