1

このようなスプレッドシートから日付を処理するにはどうすればよいですか。ここに画像の説明を入力

列 2 から最後の日付を取得し、次の日付を見つける必要があります。最後の日付を取得するためにこのコードを作成しました。

lastDateRow = sheet.getLastRow()-1;
lastDate = Date(sheet.getRange("B"+(lastDateRow)+":B"+(lastDateRow).getValue());
4

2 に答える 2

1

シートから取得した値はすでに日付オブジェクト (年、日付、時間などを含む) であるため、これ以上の操作は必要ありません。

「次のデート」って言うのは「次の日」のことですか?その場合、ミリ秒単位で日付に 24*60*60*1000 を追加するだけで、翌日になります ;-)

コードでは、次のようになります。

function xxx(){
var sheet = SpreadsheetApp.getActiveSheet()
var lastDateRow = sheet.getLastRow();
var lastDate = sheet.getRange(lastDateRow,2).getValue();
Logger.log(lastDate)
var nextDay = new Date(lastDate.getTime()+24*60*60*1000);
Logger.log(nextDay)
}

テストのロガー結果:

Tue Aug 21 15:00:00 PDT 2012
Wed Aug 22 15:00:00 PDT 2012
于 2012-08-20T10:54:47.577 に答える
1

実際、これはstackowerflowでjs nextdate fnctionを調べた結果です。

var lastDateRow = sheet.getLastRow();
var lastDate = sheet.getRange(lastDateRow,2).getValue();
lastDate = getTomorrow(lastDate,1);

function getTomorrow(d,offset) {
    if (!offset) { offset = 1 }
    return new Date(new Date(d.getTime()).setDate(d.getDate() + offset));
}
于 2012-08-20T11:10:28.340 に答える