• ベストアンサー

Google Apps Scriptの日付の比較

日付の比較を行うには、 どのようにしたらよろしいでしょうか? 比較対象セルには、 yyyy/mm/dd表示形式が設定されています。 単純に、d1 == d2 だと、できません。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#247307
noname#247307
回答No.1

前に確か回答したと思いますが……。 2つのセルに日付のフォーマットが設定されているのでしたら、それをもとにDateオブジェクトを作成し、そこからgetTimeでミリ秒換算した値を取り出して引き算すればいいです。得られた結果を1日のミリ秒数で割れば日数が得られます。 function testfunc(e) { var sheet = SpreadsheetApp.getActiveSheet(); // とりあえずアクティブシートを指定 var r1 = sheet.getRange(1, 1); // 1つ目のセル var r2 = sheet.getRange(2, 1); // 2つ目のセル var d1 = new Date(r1.getValue()); // Dateを作成 var d2 = new Date(r2.getValue()); // Dateを作成 var dt = Math.abs(d1.getTime() - d2.getTime()); // ミリ秒数値を引き算 var d = dt / (1000 * 60 * 60 * 24); // 1日のミリ秒数で割り算 Logger.log(d + "日 "); // ログに出力 }

tabokutora
質問者

お礼

何度も、質問にお答え頂き、ありがとうございます。 Google Script を、 現在、使用しておりますが、 ネットにも、なかなかなく、 書籍も詳しいものがないので、 苦労しておりますが、 色々と、アドバイスを頂戴し、 なんとか、システムの基盤ができつつあります。 また、わからい事がありましたら、 宜しくお願い申し上げます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • EXCEL 日付の入力形式

    こんにちは。 日付が、dd/mm/yyyyの形式で入力されたデータをもらいました。 関数を利用したいのでEXCELに日付として認識させたいのですが、 セルの書式設定で設定してもだめなようです。 質問 1)yyyy/mm/ddの形式で入力されていないと日付として認識されないのでしょうか? 2)現在の形式のまま、日付として認識させる方法はありますか? 3)dd/mm/yyyyをyyyy/mm/ddに変換する方法はありますか? 以上、よろしくお願いします。

  • 日付を米国式から日本式に変換出来ますか?

    日付データが、12-05-2007 と年度が最後にくるアメリカ形式で保存されている場合これを簡単に 2007-12-05 と変換する方法はありますか? mm-dd-yyyy → yyyy-mm-dd 日付は日本、アメリカ、ヨーロッパなどでいろんな表示形式があるようです。 エクセルでもセルの設定で変換するようですね。 もしご存知の方がいましたら教えてください。

    • 締切済み
    • PHP
  • エクセルVBA セルの書式につい

    ユーザーフォームのテキストボックスに入力した日付(yyyy/mm/ddの形式)をA1セルに入れるとします。  Range("A1").Value = Me.txt日付 A1セルの表示形式は書式設定でユーザー定義の"d"で表示されるように設定していますが、 テキストボックスに入力した形式のまま(yyyy/mm/dd)でA1セルに表示されてしまいます。 上記のみではNGでしょうか? ちなみに、yyyy/mm/ddと入力されたA1セルを一旦編集モード([F2]キーを押した状態)にして[Enter]を押すと"d"(書式設定で指定している書式)に変わります。 参考:A1セルの日付をみて別シートの一覧からVlookup関数で値を検索したいところが、yyyy/mm/ddで表示されるためにエラーとなってしまいます) ご存知の方教えていただきたいです。

  • 表示形式で日付をダブルコーテーションで括りたい。

    Excel2007 日付をダブルコーテーション2つ("")で括りたい。 表示形式 → ユーザー定義 → """yyyy/mm/dd""" とすると数式バーには、シリアル値が表示されるが セルには、yyyy/mm/ddと表示されます。 "2012/05/03"とダブルコーテーションで括って表示したい

  • openofficeのデフォルト日付表記を変更

    お世話になります。 openoffice calcでファイルを開くと、yyyy/mm/ddの日付が、○月○日形式で表示されます。 デフォルトをyyyy/mm/dd(あるいはそのまま)にできるでしょうか。 セルの書式設定で都度変更するのではなく、デフォルトを変更できればと思っております。 お手数ですが、ご回答よろしくお願い致します。

  • エクセルで日付、時間表示

    お世話になります。エクセル2000を使っています。 セルの書式設定-ユーザー定義で以下の条件で表示させたいのですが・・・・ 日付データとして、日付のみのものと、時間も入っているデータを、 日付のみのものは日付のみの表示に、 時間も入っているものは日付と時間を表示する。 具体的には、ある一つのセルに 2003/07/26と入力した時 → "2003/07/26"と表示 2003/07/26 18:30と入力した時 →  "2003/07/26 18:30"と表示 ユーザー定義で、 yyyy/mm/dd yyyy/mm/dd hh:mm でそれぞれの表示はできますが、例えば 時間データのないものに、yyyy/mm/dd hh:mmと定義すると、"2003/07/26 00:00"と表示されて都合がよくありません。 文字データとして、前に「’」を付ければ表示のみはできますが、数値データとして使えません。 少し長くなりましたが、よろしくご教示ください。

  • エクセル日付について

    エクセル2000を使用しています。 文字列で 99/99/99 のデータを YYYY/MM/DD 日付け形式に変換したいのですが、 どうすればよいのでしょうか。 セルには、98/11/20とか 03/03/04 とあります。

  • Excel97の日付の書式設定

    現在Excel97で日付入力をしたいのですが、 最終的に演算に使用する日付で yyyy/mm/ddとyyyy/mmどちらでも入力できる書式設定を探しています。 yyyy/mm/ddの指定にするとyyyy/mmと入力してもyyyy/mm/01となってしまいます。 yyyy/mmのセルとdd専用のセルを別に作ると、ddを入力した時に 閏年のエラーチェックなどがかけられないので演算部分(1年後該当日前日の指定等)がうまく働きません。 いい方法がありましたら教えてください。

  • ACCESSの日付形式

    テーブルに日付形式のフィールドがあり、エクスポートすると、形式がyyyy/mm/dd hh:mm:ddになってしまいます。 yyyy/mm/dd形式でエクスポートするには、どのようにしたらよいでしょうか。 VBAのDocmd.TransferTextで行いたいと思います ちなみにAccess97です。 よろしくお願いします

  • Excel vba 日付の形式判定

    Excelに日付、開始時間の列があります。 セルの形式をチェックしたいのですが、形式が下記のとおりであるか どう記述すればいいのでしょうか? 日付チェックはisdate関数を使いますが、日付の形式がyyyy/mm/dd、時間の形式がhh:mmであるかの 判定方法を教えてほしいです。 例) 日付    時間  2021/05/01 10:00  H33/05/01   ← yyyy/mm/dd形式でない為、NG   10時00分 ← hh:mm形式でない為、NG