检查日期是否在两个日期之间

时间:2014-07-29 08:58:27

标签: java

我有示例代码,检查两个日期之间的日期是否不是,但我不知道为什么它不起作用。

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

    Date d = sdf.parse("1900-01-01");
    Date s = sdf.parse("1990-01-01");
    Date e = sdf.parse("1990-01-02");

    if(d.before(s) || d.after(e)) {
        System.out.println("1");
    }
    else {
        System.out.println("0");
    }

当我期望 0 时,结果 1

3 个答案:

答案 0 :(得分:1)

您期待错误的值

if(d.before(s) || d.after(e)) { // d.before(s) is true
    System.out.println("1");
}

然后你会得到1

要满足if条件,d.before(s)=trued.after(e)=true或两者都应为true。在这里d.before(s)=true,您的if条件就满足了。

答案 1 :(得分:1)

 if(d.before(s) || d.after()) { 
        System.out.println("1");
    } //this is a true condition 

答案 2 :(得分:1)

1900-01-01是1990-01-01之前的90年,因此其中一个条件为真,输出为1.