LoginSignup
19
16

More than 5 years have passed since last update.

Date#afterとDate#before実行結果まとめ

Last updated at Posted at 2014-10-21

概要

日付を扱うクラスjava.util.Date
その中で日付の大小(前後)を比較するときに使用するメソッド2つ。
 ・public boolean after(Date when)
 ・public boolean before(Date when)
コーディング作業中にDateオブジェクトと引数どちらにどれを指定すればよいの??
未来日?過去日?…同日はどういう結果になるのだ??
と混乱したため忘備録として各種サンプルと実行結果を記載。

実行サンプル

BeforeAfterTest
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;


public class BeforeAfterTest {

    // 日付文字列指定でDate型を生成
    public static Date toDate(String str) {
        // 日付フォーマットを作成
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");

        // Date型へ変換
        try {
            return dateFormat.parse(str);
        } catch ( ParseException e ) {
            return null;
        }
    }

    public static void main(String[] args) {
        Date a = toDate("2014/01/01");
        Date b = toDate("2013/01/01");

        System.out.println("A:" + a);
        System.out.println("B:" + b);
        System.out.println("a.after(b)の結果:" + a.after(b));
        System.out.println("b.after(a)の結果:" + b.after(a));
        System.out.println("a.before(b)の結果:" + a.before(b));
        System.out.println("b.before(a)の結果:" + b.before(a));
        System.out.println("a.after(a)の結果:" + a.after(a));
        System.out.println("a.before(a)の結果:" + a.before(a));
    }
}

・実行結果(AがBより未来日の場合の実行結果)
 A:Wed Jan 01 00:00:00 JST 2014
 B:Tue Jan 01 00:00:00 JST 2013
 a.after(b)の結果:true
 b.after(a)の結果:false
 a.before(b)の結果:false
 b.before(a)の結果:true
 a.after(a)の結果:false
 a.before(a)の結果:false


19
16
3

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
19
16