我将星期几存储在数据库表中(我无法控制),我需要在我的代码中使用它。
问题是,我想使用 System.DayOfWeek 枚举来表示它,但序列不一样。
在数据库中,是这样的:
1 2 3 4 5 6 7
S M T W T F S
我需要它如下:
0 1 2 3 4 5 6
M T W T F S S
执行此操作最优雅的方法是什么?
例如,我可以这样做:
i = dayOfWeek;
i = i - 2;
if (i < 0) {
i = 6;
}
但这有点不雅。有什么建议吗?
<编辑>
咳咳。显然(.net 反射器说)DayOfWeek 从星期日开始索引为 0。
在问愚蠢的问题之前一定要阅读文档。
不过,我还是很想知道答案,只是为了满足自己的好奇心,所以去吧。
编辑>
最佳答案
你要的值是
(DayOfWeek)((dbDay + 5) % 7)
使用模运算符 %
。
关于c# - 变形此序列的最优雅方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2637704/