今天在测试的时候又遇到了一个小问题:
起源于我把星期列表定义为一个DWORD型。
星期日代表0,星期一代表1,星期二代表2,星期三代表4。
为了清楚起见,我特意在文档说明了这个字段类型。
------------------------------------------------------------------
关于dwWeekList:
放入7个CheckBox,分别是:
星期日:1 -代表pow(2,1-1)=pow(2,0)=1
星期一:2 -代表pow(2,2-1)=pow(2,1)=2
星期二:3 -代表pow(2,3-1)=pow(2,2)=4
星期三:4 -代表pow(2,4-1)=pow(2,3)=8
星期四:5 -代表pow(2,5-1)=pow(2,4)=16
星期五:6 -代表pow(2,6-1)=pow(2,5)=32
星期六:7 -代表pow(2,7-1)=pow(2,6)=64
例:
从星期列表选择的结果得到值:
如果选择:星期一,星期三,星期四,星期五:
则dwWeekList的值为:2+8+16+32=58
从值转为星期列表:
如果dwWeekList为58,变成二进制为:0111010—〉从右向左排列:0101110
其中:0表示不选中,1表示选中.
从右向左代表:星期日(0), 星期一(1), 星期二(0), 星期三(1), 星期四(1),星期五(1), 星期六(0)
下述办法可以取得。&表示与
58&1=0: 星期日
58&2=1: 星期一
58&4=0: 星期二
58&8=1: 星期三
58&16=1: 星期四
58&32=1: 星期五
58&64=0: 星期六
------------------------------------------------------------------
结果她还是把星期一当成1,星期二当成2,星期三当成4处理,结果存入数据库。
结果我程序里面读取进行分解的时候造成不一致。
她问我,能不能在我这里改啊。我晕......
她说每次我和你不一致时,你总是让我改。
我回答:刚开始就是这么定义的。如果我没有按照定义去执行,那肯定是我要改。
但如果是你没有按照定义去做,那就是你改了。
她无奈的说,好吧,我知道了。
其实让别人改,我也不怎么好意思的。可是...
唉,不说了。