LoginSignup
0
2

More than 3 years have passed since last update.

Java 単体テスト 同一日判定 ArDate,Date,Calendar,longが時刻を無視して同一日かを判定する

Posted at

目次 ⇒ Java単体テストライブラリ-Artery-サンプル

Q05_02.java
package jp.avaj.lib.test;

import java.util.Date;

import jp.avaj.lib.algo.ArDate;
import jp.avaj.lib.algo.ArDateUtil;

/**
 Java 単体テスト 同一日判定 ArDate,Date,Calendar,longが時刻を無視して同一日かを判定する

 ・このサンプルではArDateとDateを比較するサンプル示すが、上記のどの組み合わせでも比較可能.
 ・注、ArDateは日付のみを保持しており、時刻は扱わない.
*/
public class Q05_02 {
  public static void main(String[] args) {
    // テストケースを開始する.
    ArTest.startTestCase("Q05_02");

    // 当日
    ArDate arDate0 = new ArDate();
    // 当日、当時刻
    Date date1 = new Date();
    // これを比較すれば同一日
    ArTest.sameDate("ArDate vs Date","arDate0",arDate0,"date1",date1);

    // date1を一時間進める、引数は日→時間→分の指定、このメソッドはCalendar,longでも使用可能.
    date1 = ArDateUtil.forward(date1,0,1,0,0);
    // (このテストを23時以前に実行すれば)同一日となる
    ArTest.sameDate("ArDate vs Date","arDate0",arDate0,"date1",date1);

    // arDate0を一日進める
    arDate0.forward(1);
    // 両方を比較すれば、同一日ではない
    ArTest.notSameDate("ArDate vs Date","arDate0",arDate0,"date1",date1);

    // date1を一日進める、
    date1 = ArDateUtil.forward(date1,1,0,0,0);
    // 再び同一日となる
    ArTest.sameDate("ArDate vs Date","arDate0",arDate0,"date1",date1);
    //
    // テストケースを終了する
    ArTest.endTestCase();
  }
}


結果は次の通り

result.txt
**** Q05_02 start ****
OK ArDate vs Date:arDate0=2019/10/23:date1=2019/10/23 06:37:09
OK ArDate vs Date:arDate0=2019/10/23:date1=2019/10/23 07:37:09
OK ArDate vs Date:arDate0=2019/10/24:date1=2019/10/23 07:37:09
OK ArDate vs Date:arDate0=2019/10/24:date1=2019/10/24 07:37:09
**** Q05_02 summary ****
test count = 4
success    = 4

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2