圣源电子制作
标题:
计算2000~2099年任一天星期几-计算方式-C程序
[打印本页]
作者:
sydz
时间:
2012-1-20 03:13
标题:
计算2000~2099年任一天星期几-计算方式-C程序
转载自互联网!!!
// 计算2000~2099年任一天星期几
// year : 00-99
// month: 01-12
// day : 01-31
unsigned char GetWeekFromDay(unsigned char year,unsigned char month,unsigned char day)
{
if( month == 1 || month == 2 )
{
month += 12;
if( year> 0 )
year--;
else
year = 4;
}
// 返回星期几(星期一用1表示,而星期天用7表示)
return 1+(( day + 2*month + 3*(month+1)/5 + year + year/4 ) %7);
}
复制代码
试了几个日期算了下 都对的。
感觉好神奇。
年月日星期之间都应该有规律的吧
有没有强人 能分析下 年 月 日 星期 之间的数学关系啊
作者:
sydz
时间:
2012-1-20 03:16
又有新的 计算方式
适用与51单片机
//51的话,可以定义在CODE,不光省RAM,还节省代码空间(少一条MOV指令)。
//这里0代表星期天,使用者应该加上日前限定的功能。
uchar WeekData[]={0,3,3,6,1,4,6,2,5,0,3,5};
/*2000-2099*/
unsigned char GetWeekDay(unsigned char year,unsigned char month,unsigned char day)
{
return ((6+WeekData[month-1]+year+day+year/4)%7);
}
复制代码
欢迎光临 圣源电子制作 (https://bbs.syyyd.com/)
Powered by Discuz! X3.4