有没有办法将这段代码概括成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;
}发布于 2015-09-28 15:39:14
这只是一个int枚举,范围从星期日(0)到星期六(6),如MSDN所示:
DayOfWeek枚举以每周有七天的日历表示一周中的一天。此枚举中常量的值从DayOfWeek.Sunday到DayOfWeek.Saturday不等。如果转换为整数,则其值从零(指示DayOfWeek.Sunday)到六(指示DayOfWeek.Saturday)。
所以简单的数学应该做到:
DayOfWeek nextDay = (DayOfWeek)(((int)_RESETDAY + 1) % 7);如果需要的话,用+ 1替换为+ n。
发布于 2015-09-28 15:37:10
是。
(DayOfWeek)((int)(_RESETDAY+1)%7)发布于 2015-09-28 15:44:01
与上面回答的添加和模块的结果相同,但是更易读的imho:
day = (day == DayOfWeek.Saturday) ? DayOfWeek.Sunday : day + 1;显而易见的代码意图总是更令人愉快。
https://stackoverflow.com/questions/32826723
复制相似问题