两个非常简洁的 程序 计算2000~2099年任一天是星期几
// 计算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表示(%$$287#^67)心情家园www.bbsdiy.net,而星期天用7表示) return 1+(( day + 2*month + 3*(month+1)/5 + year + year/4 ) %7); }
//51的话(%$$287#^67)心情家园www.bbsdiy.net,可以定义在CODE(%$$287#^67)心情家园www.bbsdiy.net,不光省RAM(%$$287#^67)心情家园www.bbsdiy.net,还节省代码空间(少一条MOV指令)。 //这里0代表星期天(%$$287#^67)心情家园www.bbsdiy.net,使用者应该加上日前限定的功能。 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); }
收藏此文章 打印 更新 编辑此文章 『关闭窗口』