一个关于日程方面的算法
  0-6的2次幂方分别为1,2,4,8,16,32,64,用它们分别代表礼拜天到礼拜六
现在为了实现日程的重复选项,例如:设置多选项选择日期安排自己的日程,问设计怎么样的算法进行安排,使选择的日期(有可能选择一天,有有可能选择一个礼拜)对应具体的数值
如:3就代表选择了礼拜天和礼拜一,12就代表了选择礼拜二和礼拜三,先征求java的实现算法程序

解决方案 »

  1.   

    public class Schedule {
      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");
        }
        ...
      }
    }
      

  2.   

    设定的时候,使用 int status = SUNDAY | MONDAY | THURSDAY;
      

  3.   

    shine333(enihs) 是准备用七个if吧,嘿嘿。
      

  4.   

    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; //6400000000 没有选择任何一天
    00000001 选择了周一
    00000002 ..周二
    00000003 ..周一和周二
    00000004 ..周三
    00000005 ..周一和周三
    ....用二进制算就好了