#include <stdio.h>
int subZeller( int y, int m, int d )
{
if( m < 3 ) {
y--; m += 12;
}
return ( y + y/4 - y/100 + y/400 + ( 13*m + 8 )/5 + d )%7;
}
int main()
{
int year, month, day;
char *dayname[] =( "0","1","2","3"
,"4","5","6")
while( 1 ) {
printf( "年月日是?(yyyy/mm/dd)> " );
if( scanf("%d/%d/%d", &year, &month, &day) != 3 ) break;
printf( "--> %s\n", dayname[subZeller(year,month,day)] );
}
return 0;
}
这段c语言是指求某年某月某天是星期几,要是改成只求:1970-2017年之间的的某一年的 1月1日是星期几的话,该怎么改?
还有 y + y/4 - y/100 + y/400 + ( 13*m + 8 )/5 + d )%7 这个式子算出来的东西是什么?