0

我有 2 天,需要找出给定的日期是否在输入范围内。
我只有几天。

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

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

4

2 回答 2

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.
}
于 2013-05-27T05:45:47.893 回答
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,endDay 将在下周

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);

}
于 2013-05-27T05:42:26.037 回答