c# - 变形此序列的最优雅方式

标签 c# .net enums sequence

我将星期几存储在数据库表中(我无法控制),我需要在我的代码中使用它。

问题是,我想使用 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/

相关文章:

c# - 如何将 System.Windows.Control WebBrowser.Document 转换为 mshtml.MSHTMLDocumentClass?

c# - TextBox 不遵守 Get 返回的值

java - 如何让 JAXB 选择枚举?

c++ - 位掩码作为具有默认参数的成员枚举

c# - 使用全局常量或枚举而不指定类名

c# - 如何创建反向png图像?

C# 图片框的加载时间

c# - 如何重新编译针对 MonoTouch 配置文件的程序集?

c# - 从后面的代码创建 SqlDataSource 过滤器参数

c# - C# 控制台应用程序和 ASP.NET WebForms 应用程序之间的共享存储