回答編集履歴

3

出力形式の修正

2025/03/31 02:05

投稿

YAmaGNZ
YAmaGNZ

スコア10540

test CHANGED
@@ -20,8 +20,8 @@
20
20
  let minute = 30;
21
21
  let result = work.subtract({hours: hour, minutes: minute});
22
22
 
23
- // 求めた時刻をHH:mmの形式で表示
23
+ // 求めた時刻をHHmmの形式で表示
24
- console.log(result.format('HH:mm'));
24
+ console.log(result.format('HHmm'));
25
25
  ```
26
26
 
27
27
  日をまたいだ場合も正しく計算されるかと思います。

2

解説を追加

2025/03/31 01:16

投稿

YAmaGNZ
YAmaGNZ

スコア10540

test CHANGED
@@ -1,3 +1,9 @@
1
+ Utilities.parseDateを使用すれば
2
+ ```javascript
3
+ let time = Utilities.parseDate((`0000${timeint}`).slice(-4), 'JST', 'HHmm');
4
+ ```
5
+ といった感じでDateクラスには出来るのですが標準のDateクラスでは日付や時間の計算が簡単に出来ないので外部のライブラリを使用したほうが簡単です。
6
+
1
7
  Momentライブラリを使えば下記のようにできます。
2
8
  ```javascript
3
9
  // 時刻を数値として宣言 00:15の場合は15とすること
@@ -10,12 +16,12 @@
10
16
  let work = Moment.moment((`0000${timeint}`).slice(-4),'HHmm');
11
17
 
12
18
  // 変換した時刻から2時間30分引く
19
+ let hour = 2;
20
+ let minute = 30;
13
- let result = work.subtract({hours: 2, minutes: 30});
21
+ let result = work.subtract({hours: hour, minutes: minute});
14
22
 
15
23
  // 求めた時刻をHH:mmの形式で表示
16
24
  console.log(result.format('HH:mm'));
17
-
18
-
19
25
  ```
20
26
 
21
27
  日をまたいだ場合も正しく計算されるかと思います。

1

コード変更

2025/03/31 01:02

投稿

YAmaGNZ
YAmaGNZ

スコア10540

test CHANGED
@@ -1,5 +1,6 @@
1
1
  Momentライブラリを使えば下記のようにできます。
2
- ```GAS
2
+ ```javascript
3
+ // 時刻を数値として宣言 00:15の場合は15とすること
3
4
  const timeint = 2315;
4
5
 
5
6
  // 数字を0埋めして文字列としたものを確認