关于C#枚举的用法
- C# code
private DateTime GetDate(DayOfWeek dw, DateTime jcTime) { if ((jcTime.DayOfWeek & dw) != 0) { return jcTime; } for (int i = 1; i < 7; i++) { DateTime time = jcTime.AddDays(i); if ((time.DayOfWeek & dw) != 0) { return time; } } return jcTime; } protected void Page_Load(object sender, EventArgs e) { DateTime today = DateTime.Now; DayOfWeek dw; switch (m_GameType) { case 1://双色球 dw = DayOfWeek.Tuesday | DayOfWeek.Thursday | DayOfWeek.Sunday; timeStr = ConvertToString(GetKJDate(dw, DateTime.Now)) + " 19:30:00"; break; case 2://七乐彩 dw = DayOfWeek.Monday | DayOfWeek.Wednesday | DayOfWeek.Friday; timeStr = ConvertToString(GetKJDate(dw, DateTime.Now)) + " 19:30:00"; break; case 3://3D timeStr = ConvertToString(today) + " 19:30:00"; break; } }为什么我使用的时候GetDate()返回的值总是一样呢?
[解决办法]
dayofweek这个枚举上没有[Flag]标记吧, 在枚举上使用&运算符只有在标有flag的枚举上,或者指定枚举值为2的次方的时候才有意义
dayofweek的值好像是1-7吧,这个&运算符没有道理啊