2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > c语言万年历节日算法 万年历星期的算法(C语言)

c语言万年历节日算法 万年历星期的算法(C语言)

时间:2019-06-30 22:46:55

相关推荐

c语言万年历节日算法 万年历星期的算法(C语言)

万年历星期的算法(C语言)

#include

code unsigned char WeekTab[] = { //闰年月星期表 (3 << 5) + 31,//1月

(6 << 5) + 29,//2月

(0 << 5) + 31,//3月

(3 << 5) + 30,//4月

(5 << 5) + 31,//5月

(1 << 5) + 30,//6月

(3 << 5) + 31,//7月

(6 << 5) + 31,//8月

(1 << 5) + 30,//9月

(4 << 5) + 31,//10月

(0 << 5) + 30,//11月

(2 << 5) + 31 //12月

};

/*------------2000年~2099年星期算法----------*/

unsigned char WeekDay20(unsigned char y, unsigned char m, unsigned char d) {

unsigned char week, day;

day = WeekTab[m - 1]; //月表

week = day >> 5; //月星期数 day &= 0x1f; //月天数 if ((m < 3) && (y & 0x03))

{ //平年

if (m == 2) day--; //平年月天数 week++; //平年月表+1 }

y = y + (y >> 2); //年+年/4

week = (week + y + d + 2) % 7; //(星期=年+年/4+月表+2日)%7 return (week << 5) | day; //返回星期和月天数 }

/*--------------0000年~9999年星期算法------------*/

unsigned char WeekDay(unsigned char c, unsigned char y, unsigned char m, unsigned char d)

{

unsigned char week, day;

c &= 0x03; //百年%4 c = c | (c << 2); //百年%4*5 day = WeekTab[m - 1]; //月表

week = day >> 5; //月星期数

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。