一个关于日程方面的算法
0-6的2次幂方分别为1,2,4,8,16,32,64,用它们分别代表礼拜天到礼拜六
现在为了实现日程的重复选项,例如:设置多选项选择日期安排自己的日程,问设计怎么样的算法进行安排,使选择的日期(有可能选择一天,有有可能选择一个礼拜)对应具体的数值
如:3就代表选择了礼拜天和礼拜一,12就代表了选择礼拜二和礼拜三,先征求java的实现算法程序
0-6的2次幂方分别为1,2,4,8,16,32,64,用它们分别代表礼拜天到礼拜六
现在为了实现日程的重复选项,例如:设置多选项选择日期安排自己的日程,问设计怎么样的算法进行安排,使选择的日期(有可能选择一天,有有可能选择一个礼拜)对应具体的数值
如:3就代表选择了礼拜天和礼拜一,12就代表了选择礼拜二和礼拜三,先征求java的实现算法程序
public static final int SUNDAY = 0x01; //1
public static final int MONDAY = 0x02; //2
public static final int TUESDAY = 0x04; //4
public static final int WEDNESDAY = 0x08; //8
public static final int THURSDAY = 0x10; //16
public static final int FRIDAY = 0x20; //32
public static final int SATURDAY = 0x40; //64 public static void main(String[] args) {
int status = 3;
if ((status & SUNDAY) != 0) {
System.out.println("SUNDAY");
}
if ((status & TUESDAY) != 0) {
System.out.println("TUESDAY");
}
...
}
}
public static final int MONDAY = 0x02; //2
public static final int TUESDAY = 0x04; //4
public static final int WEDNESDAY = 0x08; //8
public static final int THURSDAY = 0x10; //16
public static final int FRIDAY = 0x20; //32
public static final int SATURDAY = 0x40; //6400000000 没有选择任何一天
00000001 选择了周一
00000002 ..周二
00000003 ..周一和周二
00000004 ..周三
00000005 ..周一和周三
....用二进制算就好了