你们中的任何人都可以帮助我了解其逻辑。根据公历,01 01 01 是星期一。如果通过键盘输入任何年份,请编写程序找出今年 1 月 1 日是哪一天。
问问题
7918 次
2 回答
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 格式返回日期,其中星期一 == 1 和星期日 == 7
于 2013-07-03T15:54:54.103 回答
-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");
}
于 2013-10-26T04:43:43.507 回答