使用日历来确定它是星期一,星期二还是

时间:2014-03-13 21:06:51

标签: java calendar

如果是星期一,星期二或星期三,我想向前滚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");
        }
    }
}

1 个答案:

答案 0 :(得分:4)

星期几表示值

SUNDAY = 1;
MONDAY = 2;
TUESDAY = 3;
WEDNESDAY = 4;
THURSDAY = 5;
FRIDAY = 6;
SATURDAY = 7;

所以您需要做的就是检查gc.get(DAY_OF_WEEK)的结果是否在24之间(包括),所以可能会将您的条件更改为

if (MONDAY <= gc.get(DAY_OF_WEEK) && gc.get(DAY_OF_WEEK) <= WEDNESDAY) {

请记住,过早优化是万恶之源。专注于为人类编写代码。