//1970年1月1日星期四
#include <stdio.h>
//输入年、月、日,返回值为1-7
int GetWeek(int year,int month,int day)
{
int year_num = 0;
int leap_year_num = 0;
int year_dat_num = 31*7 + 28 + 30*4;//非闰年的总天数
int total_dat_num = 0;
for(int i = 1970;i < year;i++)
{
if((i % 4 == 0 && i % 100 != 0) || i % 400 == 0)
{
leap_year_num++;
}
else
{
year_num++;
}
}
total_dat_num = leap_year_num * (year_dat_num+1) + year_dat_num*year_num;
if(month > 2)
{
for(int i = 1;i < month;i++)
{
if(i == 1 || i == 3 || i== 5 || i == 7 || i == 8 || i == 10 || i == 12)
{
total_dat_num += 31;
}else if(i == 2)
{
if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
total_dat_num += 29;
else
total_dat_num += 28;
}else
{
total_dat_num += 30;
}
}
total_dat_num += day;
}else if(month < 2)
{
total_dat_num += day;
}else
{
total_dat_num += 31;
total_dat_num += day;
}
total_dat_num = (total_dat_num+2) % 7 + 1;
return total_dat_num;
}
int main()
{
int day = GetWeek(2021,11,25);
printf("%d\n",day);
return 0;
}
C语言计算某一天是星期几
最新推荐文章于 2023-11-25 10:16:36 发布