このようなスプレッドシートから日付を処理するにはどうすればよいですか。
列 2 から最後の日付を取得し、次の日付を見つける必要があります。最後の日付を取得するためにこのコードを作成しました。
lastDateRow = sheet.getLastRow()-1;
lastDate = Date(sheet.getRange("B"+(lastDateRow)+":B"+(lastDateRow).getValue());
このようなスプレッドシートから日付を処理するにはどうすればよいですか。
列 2 から最後の日付を取得し、次の日付を見つける必要があります。最後の日付を取得するためにこのコードを作成しました。
lastDateRow = sheet.getLastRow()-1;
lastDate = Date(sheet.getRange("B"+(lastDateRow)+":B"+(lastDateRow).getValue());
シートから取得した値はすでに日付オブジェクト (年、日付、時間などを含む) であるため、これ以上の操作は必要ありません。
「次のデート」って言うのは「次の日」のことですか?その場合、ミリ秒単位で日付に 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
実際、これは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));
}