最优雅的方式来改变这个序列

Ed *_*mes 1 .net c# enums sequence

我将一周的日期存储在数据库表中(我无法控制),我需要在我的代码中使用它.

问题是,我想使用System.DayOfWeek枚举来表示它,并且序列不一样.

在数据库中,它如下:

1  2  3  4  5  6  7
S  M  T  W  T  F  S
Run Code Online (Sandbox Code Playgroud)

我需要它如下:

0  1  2  3  4  5  6
M  T  W  T  F  S  S
Run Code Online (Sandbox Code Playgroud)

最优雅的方式是什么?

例如,我可以这样做:

i = dayOfWeek;
i = i - 2;
if (i < 0) {
    i = 6;
}
Run Code Online (Sandbox Code Playgroud)

但那有点不优雅.有什么建议?

<编辑>

咳咳.显然(.net反射器说)DayOfWeek从星期日开始是0索引.

在提出愚蠢问题之前,请务必阅读文档.

但是,我仍然对答案感兴趣,只是为了满足自己的好奇心,所以去吧.

</ EDIT>

Aak*_*shM 5

你想要的价值是

(DayOfWeek)((dbDay + 5) % 7)
Run Code Online (Sandbox Code Playgroud)

使用模运算符%.