我有 2 天,需要找出给定的日期是否在输入范围内。
我只有几天。
例如:如果我的开始时间是星期三,结束时间是星期天,今天是星期四,我应该检查当前星期星期三和下星期日之间的时间跨度,那么函数应该返回布尔值是。
示例 2:如果开始日是星期五,结束日是星期一,当天是星期四,我应该在本周星期五和即将到来的星期一(下周)内检查,在这种情况下它应该返回 false。
我有 2 天,需要找出给定的日期是否在输入范围内。
我只有几天。
例如:如果我的开始时间是星期三,结束时间是星期天,今天是星期四,我应该检查当前星期星期三和下星期日之间的时间跨度,那么函数应该返回布尔值是。
示例 2:如果开始日是星期五,结束日是星期一,当天是星期四,我应该在本周星期五和即将到来的星期一(下周)内检查,在这种情况下它应该返回 false。
通过这个链接,我想你会很容易得到想要的东西。 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.
}
使用常量声明天数
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);
}