#include <stdio.h>
#define ISLEAP(y) ((y)%400==0||(y)%4==0&&(y)%100!=0)
int zeller(int year,int month,int day);
int func(int year,int month,int num,int week);
int main(void)
{
int a,c,b,y1,y2,i,date;
while(scanf("%d%d%d%d%d",&a,&b,&c,&y1,&y2)!=EOF)
{
for(i=y1;i<=y2;++i)
{
if(date=func(i,a,b,c))
{
printf("%d/%02d/%02d\n",i,a,date);
}
else
{
printf("none\n");
}
}
}
return 0;
}
int zeller(int year,int month,int day)
{
int c,y,week;
if(month==1||month==2)
{
year--;
month+=12;
}
c=year/100;
y=year-c*100;
week=(c/4)-2*c+(y+y/4)+(13*(month+1)/5)+day-1;
while(week<0){week+=7;}
week%=7;
return week;
}
int func(int year,int month,int num,int week)
{
int date[]={31,28,31,30,31,30,31,31,30,31,30,31};
int i,cnt;
date[1]+=ISLEAP(year);
for(i=1,cnt=0;i<=date[month-1];++i)
{
if(zeller(year,month,i)==week%7)
{
if(++cnt==num)
{
return i;
}
}
}
return 0;
}
温馨提示:答案为网友推荐,仅供参考