如何通过Java中的一天来获取日期

时间:2013-05-27 05:16:41

标签: java

我有2天需要查看给定日期是否在输入内。 我所有的只有几天。

例如:如果我的开始时间是星期三,结束时间是星期日,当天是星期四,我应该检查当前星期三和下一个星期日之间的时间跨度,然后函数应该返回布尔值是。

示例2:如果开始日是星期五,结束日是星期一,当天是星期四,我应该检查当前星期五和即将到来的星期一(下周),在这种情况下它应该返回false。

2 个答案:

答案 0 :(得分:2)

通过此链接,我认为您将轻松获得所需的内容。 http://www.mkyong.com/java/how-to-compare-dates-in-java/

我提到了一些代码,所以你可以有一个想法,

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date1 = sdf.parse("2010-01-12");
Date date2 = sdf.parse("2010-01-17");
Date dateCurrent = sdf.parse("2010-01-13");

System.out.println(sdf.format(date1));
System.out.println(sdf.format(date2));
System.out.println(sdf.format(dateCurrent));

if(date1.before(dateCurrent) && date2.after(dateCurrent)){
    // return true.
}else{
    // return false.
}

答案 1 :(得分:1)

使用常量声明天数

private static final int CONST_SUNDAY = 0;
private static final int CONST_MONDAY = 1;
private static final int CONST_TUESDAY = 2;
private static final int CONST_WEDNESDAY = 3;
private static final int CONST_THURSDAY = 4;
private static final int CONST_FRIDAY = 5;
private static final int CONST_SATURDAY = 6;

然后创建一个方法来检查范围,如果值小于startDay,那么诀窍就是在下一周结束

public static boolean isDayInRange(int startDay, int endDay, int currentDay) {
    if (endDay < startDay) {
        endDay += 7;
    }

    return ((currentDay >= startDay) && (currentDay <= endDay));
}

测试代码

public static void main(String[] args) {
    boolean result = isDayInRange(CONST_WEDNESDAY, CONST_SUNDAY,
            CONST_THURSDAY);
    boolean result2 = isDayInRange(CONST_FRIDAY, CONST_MONDAY,
            CONST_THURSDAY);
    System.out.println(result);
    System.out.println(result2);

}