你们中的任何人都可以帮助我解决它的逻辑吗? 根据格里高利历,这是星期一01 01 01.如果任何一年通过键盘输入一个程序,找出今年1月1日的那一天。
答案 0 :(得分:2)
您正在寻找Zeller's Congruence,它会告诉您任何指定日期的星期几。
看起来像这样:
int getDayOfWeek(int day, int month, int year) {
int aa = (14 - month) / 12;
int yy = year - aa;
int mm = (month + (12 * aa)) - 2;
int dayOfWeek = (day + yy + (yy / 4) - (yy / 100) + (yy / 400) + ((31 * mm) / 12)) % 7;
return ((dayOfWeek + 6) % 7) + 1;
}
该函数以ISO格式返回日期,其中Monday == 1和Sunday == 7
答案 1 :(得分:-1)
程序的工作原理:
main(){
int yr,byr=1900,lp,rem,td,day;
printf("Enter year:");
scanf("%d",&yr);
yr=(yr-1)-byr;
lp=yr/4;
rem=yr-lp;
td=(rem*365)+(lp*366)+1;
day=td%7;
if (day==0)
printf("Monday");
else if (day==1)
printf("Tuesday");
else if (day==2)
printf("Wednesday");
else if (day==3)
printf("Thursday");
else if (day==4)
printf("Friday");
else if (day==5)
printf("Saturday");
else if (day==6)
printf("Sunday");
}