如果是星期一,星期二或星期三,我想向前滚2天,如果是星期四或星期五,我想滚到下一个星期一。但我的逻辑公式有问题。看起来Java程序员没有正确设置最终值。无论一周中哪一天,第一个陈述似乎总是正确的。
import static java.util.Calendar.*;
import java.util.GregorianCalendar;
public class Demo {
public static void main(String[] args) {
GregorianCalendar gc = new GregorianCalendar();
gc.roll(DAY_OF_WEEK, 2);
if((gc.get(DAY_OF_WEEK) & (MONDAY | TUESDAY | WEDNESDAY)) == gc.get(DAY_OF_WEEK)){
System.out.println("it is monday or tuesday or wednesday");
gc.roll(DAY_OF_WEEK, 2);
}else{
System.out.println("other day");
}
}
}
答案 0 :(得分:4)
星期几表示值
SUNDAY = 1;
MONDAY = 2;
TUESDAY = 3;
WEDNESDAY = 4;
THURSDAY = 5;
FRIDAY = 6;
SATURDAY = 7;
所以您需要做的就是检查gc.get(DAY_OF_WEEK)
的结果是否在2
和4
之间(包括),所以可能会将您的条件更改为
if (MONDAY <= gc.get(DAY_OF_WEEK) && gc.get(DAY_OF_WEEK) <= WEDNESDAY) {
请记住,过早优化是万恶之源。专注于为人类编写代码。