我有2天需要查看给定日期是否在输入内。 我所有的只有几天。
例如:如果我的开始时间是星期三,结束时间是星期日,当天是星期四,我应该检查当前星期三和下一个星期日之间的时间跨度,然后函数应该返回布尔值是。
示例2:如果开始日是星期五,结束日是星期一,当天是星期四,我应该检查当前星期五和即将到来的星期一(下周),在这种情况下它应该返回false。
答案 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);
}