#include <stdio.h>
typedef enum bool{true =1,false=0}bool;
/*计算1901年之后的日期转换为星期几*/
bool yun(int year)
{
return (year%4==0&&year%100!=0||year%400==0);
}
int datetoweek(int year,int month,int day)
{
int n,i;
n=365*(year-1901);
for(i=1;i<year;i++)
n+=yun(year);
switch(month)
{
case 12:
n=n+6*31+4*30+28;break;
case 11:
n=n+30*3+6*31+28;break;
case 10:
n=n+31*5+3*30+28;break;
case 9:
n=n+31*5+2*30+28;break;
case 8:
n=n+31*4+2*30+28;break;
case 7:
n=n+31*3+2*30+28;break;
case 6:
n=n+31*3+30+28;break;
case 5:
n=n+31*2+30+28;break;
case 4:
n=n+31*2+28;break;
case 3:
n=n+31+28;break;
case 2:
n=n+31;break;
default:
n=n;
}
if(month>2)
n=n+yun(year)+day;
else
n=n+day;
return (n%7+1);
}
int main()
{
printf("%d\n",yun(400));
printf("%d\n",datetoweek(2015,2,12));
return 0;
}
c语言日期转换为星期
最新推荐文章于 2023-06-28 13:52:05 发布