通过日期算星期的C51源程序
扫描二维码
随时随地手机看文章
#include #define uint unsigned int uchar code monthday[]={31,28,31,30,31,30,31,31,30,31,30,31}; //************************************************ return(nday%7); void main() week1=week(aa1,11,2);//week1为计算出来的星期几。 //说明: 如计算2010年12月05日是星期几:假设 uchar year,month,day; year=0x10; //年份:10年 day=0x05; //日: 05日 则星期为:week1=week((year>>4)*10+(year&0x0f)+2000,(month>>4)*10+(month&0x0f),(day>>4)*10+(day&0x0f)); 注:此式只能计算2000年到2099年的星期。
#define uchar unsigned char
uchar month_n_day(uint y,uchar m) //算出某年某月有多少天
{
if(m==2)
return(((y%4 == 0) && (y%100 != 0) || (y%400 == 0))? 29: 28);
else
return(monthday[m-1]);
}
uchar week(uint y,uchar m,uchar d) //计算某年某月某日是星期几(1900年开始)
{
long nday=0;
uint i;
for (i=1900;i
for (i=1;i
nday=nday+d;
}
{
ucharweek1,week2,week3,week4;
uint aa1,aa2,aa3,aa4;
aa1=10;
aa1=aa1+2000;
while(1)
{
;
}
}
month=0x12; //月份:12月