一、判断是否是闰年函数
//月份 1 2 3 4 5 6 7 8 9 10 11 12
//闰年 31 29 31 30 31 30 31 31 30 31 30 31
//非闰年 31 28 31 30 31 30 31 31 30 31 30 31
//输入:年份
//输出:该年份是不是闰年.1,是.0,不是
u8 LeapYear(u16 year)
{
if(year%4==0) //必须能被4整除
{
if(year%100==0)
{
if(year%400==0)
return 1; //如果以00结尾,还要能被400整除
else
return 0;
}
else return 1;
}
else
return 0;
}
二、星期计算算法,蔡勒公式
u8 WeekCal(u16 year,u8 Month,u8 Date)//星期计算算法,蔡勒公式
{
int SWeek;
u8 M,c,y;
u16 WYear;
if(Month==1||Month==2)
{
M=Month+12;
WYear=year-1;
}
else
{
M=Month;
WYear=year;
}
y=WYear%100;
c=WYear/100;
SWeek=y+y/4+c/4-2*c+26*(M+1)/10+Date-1;
while(SWeek<0)
{
SWeek+=7;
}
SWeek%=7;
if(SWeek==0)
SWeek=7;
return SWeek;
}