Google Apps Script を使って何分後の時間を取得する

↓こちらのスプレッドシートでは、Google Apps Script を使います。

C列(何分後)とD列(項目名)に値が入ったら、A列に今の日時、B列にC分後の予定の日時が自動的に入るようにします。

var sheet = SpreadsheetApp.getActiveSheet();

function addDate() {
setNowDate(1, "yyyy/M/d H:m:s");
setInfoDate(2,"yyyy/M/d H:m:s");
}

function setNowDate(col, format) {
var lastrow = sheet.getLastRow();
if (sheet.getRange(lastrow, col).getValue() == "")
sheet.getRange(lastrow, col).setValue(formatDate(new Date(), format));
}

function formatDate(date, format) {
return Utilities.formatDate(date, 'Asia/Tokyo', format)
}

//---

function setInfoDate(col,format) {
var nowDate = new Date();
var lastrow = sheet.getLastRow();
var addMin = sheet.getRange(lastrow, 3).getValue();
var infoDate = new Date(nowDate.getYear(), nowDate.getMonth(), nowDate.getDate() ,nowDate.getHours(), nowDate.getMinutes()+addMin,nowDate.getSeconds());
if (sheet.getRange(lastrow, col).getValue() == "")
sheet.getRange(lastrow, col).setValue(formatDate(infoDate, format));
}

function checkInfoDate(){
var lastrow = sheet.getLastRow();
var nowDate = new Date();

if(lastrow == 1){ //データがなければ実行しない
return;
}

for (var i=2; i<=lastrow; i++) {
var infoDateTime = sheet.getRange(i, 2).getValue();
if(infoDateTime < nowDate){

var memo = sheet.getRange(i, 4).getValue();
sendHttpGet("お知らせします。" + memo + "の時間になりました。" + "繰り返します。" + memo + "の時間になりました。");
sheet.deleteRows(i, 1);
break;

}

}
}

function sendHttpGet(msg){
UrlFetchApp.fetch("http://【ngrok で作られたドメイン】/?msg=" + msg);
}

↓こちらのように1分単位で監視して、予定の日時が来たら特定のURLにアクセスして、その行を削除します。

関連記事

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA