#define uint unsigned int
#define uchar unsigned char
uchar code monthday[]={31,28,31,30,31,30,31,31,30,31,30,31};
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;
return(nday%7);
}
void main()
{
uchar week1,week2,week3,week4;
uint aa1,aa2,aa3,aa4;
aa1=10;
aa1=aa1+2000;
week1=week(aa1,11,2); //week1为计算出来的星期几。
while(1)
{
;
}
}
//说明:
如计算2010年12月05日是星期几:假设 uchar year,month,day;
year=0x10; //年份:10年
month=0x12; //月份:12月
day=0x05; //日: 05日
则星期为:week1=week((year>>4)*10+(year&0x0f)+2000, (month>>4)*10+(month&0x0f),(day>>4)*10+(day&0x0f));
注:此式只能计算2000年到2099年的星期。
上一篇:C51编译警告: WARNING L1 WARNING L15
下一篇:C51 的重入问题 WARNING L15: MULTIPLE CALL TO SEGMENT
推荐阅读最新更新时间:2024-03-16 15:19