以下是我的简化代码:
DateTimeFormatInfo dfi = DateTimeFormatInfo.CurrentInfo;
var firstReference = dfi.FirstDayOfWeek; // Currently, this could be Monday, Saturday, or Sunday.
var secondReference = dfi.FirstDayOfWeek.AddDays(3); // For this one, it should be something like 3 days after the dynamic value of FirstDayOfWeek.不幸的是,它不是这样工作的。那么,问题是:有没有办法获得添加了3天的dfi.FirstDayOfWeek的实例?
发布于 2017-02-24 18:56:39
DayOfWeek是一个Enum,所以你可以将它转换成int,添加days,然后再转换回来,就像这样:
var secondReference = (DayOfWeek)(((int)dfi.FirstDayOfWeek+3)%7);为了避免DayofWeek大于7,您需要使用mod。
发布于 2017-02-24 18:55:32
使用
DateTimeFormatInfo dfi = DateTimeFormatInfo.CurrentInfo;
var firstReference = dfi.FirstDayOfWeek;
var secondReference = (DayOfWeek)(((int)firstReference + 3) % 7);DayOfWeek是枚举,所以fine在它上面工作得很好。
在+3超过DayOfWeek限制的情况下使用Mod (在您的情况下是周六)。

发布于 2017-02-24 19:13:28
您可以在星期中的某一天迭代天..
DateTimeFormatInfo dfi = DateTimeFormatInfo.CurrentInfo;
List<DayOfWeek> daylist = new List<DayOfWeek>();
int i = (int)dfi.FirstDayOfWeek;
int addDay = 3;
while (i <= ((int)dfi.FirstDayOfWeek + addDay) % 7)
{
daylist.Add((DayOfWeek)i);
i++;
}https://stackoverflow.com/questions/42436804
复制相似问题