DayOfWeek获得下一个DayOfWeek(周一,周二......周日)

Kat*_*ine 6 c# dayofweek

有没有办法将此代码汇总为1-2行?

我的目标是返回,例如,我有一个星期一的DayOfWeek,我希望在那之后(星期二)或之后的n天获得.

         switch (_RESETDAY)
        {
            case DayOfWeek.Monday:
                _STARTDAY = DayOfWeek.Tuesday;
                break;
            case DayOfWeek.Tuesday:
                _STARTDAY = DayOfWeek.Wednesday;
                break;
            case DayOfWeek.Wednesday:
                _STARTDAY = DayOfWeek.Thursday;
                break;
            case DayOfWeek.Thursday:
                _STARTDAY = DayOfWeek.Friday;
                break;
            case DayOfWeek.Friday:
                _STARTDAY = DayOfWeek.Saturday;
                break;
            case DayOfWeek.Saturday:
                _STARTDAY = DayOfWeek.Sunday;
                break;
            case DayOfWeek.Sunday:
                _STARTDAY = DayOfWeek.Monday;
                break;
            default:
                _STARTDAY = DayOfWeek.Tuesday;
                break;
        }
Run Code Online (Sandbox Code Playgroud)

And*_*rei 10

这只是一个int枚举,从星期日(0)到星期六(6),根据MSDN:

DayOfWeek枚举表示每周七天的日历中的星期几.此枚举中常量的值范围从DayOfWeek.Sunday到DayOfWeek.Saturday.如果强制转换为整数,则其值的范围从零(表示DayOfWeek.Sunday)到六(表示DayOfWeek.Saturday).

如此简单的数学应该这样做:

DayOfWeek nextDay = (DayOfWeek)(((int)_RESETDAY + 1) % 7);
Run Code Online (Sandbox Code Playgroud)

更换+ 1+ n如果这就是你所需要的.