質問編集履歴

1 題名を変えた

sakana_motoki

sakana_motoki score 15

2020/06/26 03:50  投稿

gas繰り返しの処理がうまくいかない
javascriptの繰り返しの処理がうまくいかない
はじめまして
![イメージ説明](3f3b16cb0e042230b79890ef317dcf79.png)
上記の表から退会通知日=今日の日付になったらメッセージにアカウント名とグループ名を取得し通知を送信する仕組みをgasとline messaging apiで作っております。
しかし繰り返し処理がうまく書けずに悩んでおります。
問題点1 上から三つまでしかチェックされていない
問題点2 07/23の日付もまるがついてしまっている
```javascript
function checkAcount(){
//年月日を取得
var today = new Date();
today.setHours(0, 0, 0, 0);
// 利用しているシート
var data = SpreadsheetApp.openById('xxxxxxx').getSheetByName('シート1');
//最終行を取得
var last_row = data.getLastRow();
//退会の行のみ取得
var cansellRow=data.getRange(2,4,last_row-1,1).getValues();
for(var i = 2; i < cansellRow.length; i++) {
var cansellrow =new Date(cansellRow[i]);
console.log(cansellrow.getTime());
if(cansellrow.getTime() ==today.getTime() ){
var accountName = data.getRange(i,2).getValue();
var groupName = data.getRange(i,1).getValue();
data.getRange(i,5).setValue("◎");
}else{
data.getRange(i, 5).setValue("×");
}
}
}
```
問題点1はどのような解決方法があるのでしょうか?
問題点2
console.log(cansellrow.getTime());
この結果
D 2020-06-25T18:46:17.012Z 1593097200000
D 2020-06-25T18:46:17.224Z 1593097200000
D 2020-06-25T18:46:17.740Z 1593097200000
が返ってきました。
多分日付の比較の仕方がまずいのかなと思います。
このあと退会通知日の5日前にはスプレッドシートの該当部分の色をかえるという処理を加えるのでわかりやすいような日付比較を教えていただけますと幸いですよろしくお願いします。
  • JavaScript

    32627 questions

    JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

  • Google Apps Script

    2790 questions

    Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る