Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
5
Help us understand the problem. What is going on with this article?
@aves

GoogleAppsScriptで24時間を超える経過時間の取得に困った時の対処法

More than 1 year has passed since last update.

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

時を操るのは難しいなぁ

5
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
aves

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
5
Help us understand the problem. What is going on with this article?