#include<stdio.h>
enum WeekdayT {Sun,Mon,Thu,Wed,Thur,Fri,Sat};
enum WeekdayT GetDay();
enum WeekdayT NextDay(enum WeekdayT w);
enum WeekdayT PreviousDay(enum WeekdayT x);
enum WeekdayT IncrementDay(enum WeekdayT y ,int z);
void PrintDay(enum WeekdayT d);
int main()
{ enum WeekdayT w;
int n;
w=GetDay();
printf("输入你想跳跃的天数:");
scanf("%d",&n);
printf("这天的后一天是:");
PrintDay(NextDay(w));
printf("这天的前一天是:");
PrintDay(PreviousDay(w));
printf("跳跃后的那天是:");
PrintDay(IncrementDay(w,n));
return 0;
}
enum WeekdayT GetDay()
{
int a;
printf("输入你想查看的星期:\nSun:0,Mon:1,Thu:2,Wed:3,Thur:4,Fri:5,Sat:6\n");
scanf("%d",&a);
return (enum WeekdayT)a;
}
enum WeekdayT NextDay(enum WeekdayT w)
{
if(w == Sat)
return Sun;
else return w+1;
}
enum WeekdayT PreviousDay(enum WeekdayT x)
{
if(x == Sun)
return Sat;
return x-1;
}
enum WeekdayT IncrementDay(enum WeekdayT y ,int z)
{
if(z < 0)
return (7*100 + y + z)%7;
return (y+z)%7;
}
void PrintDay(enum WeekdayT d)
{
switch(d){
case Sun:
printf("Sun\n");
break;
case Mon:
printf("Mon\n");
break;
case Thu:
printf("Thu\n");
break;
case Wed:
printf("Wed\n");
break;
case Thur:
printf("Thur\n");
break;
case Fri:
printf("Fri\n");
break;
case Sat:
printf("Sat\n");
break;
default:
printf("Error\n");
break;
}
}