- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
万年历星期算法
万年历星期的算法(C语言)
#include stdio.h
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);//年+年/4week = (week + y + d + 2) % 7;//(星期=年+年/4+月表+2日)%7return (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;//百年%4c = c | (c 2);//百年%4*5day = WeekTab[m - 1];//月表week = day 5;//月星期数day = 0x1f;//月天数if ((m 3) !((c == 0) | (y ((y 0x03) == 0)))){//平年if (m == 2) day--;//平年月天数week++;//平年月表+1}y = y + (y 2);//年+年/4week = (week + c + y + d + 2) % 7;//(星期=百年%4*5+年+年/4+月表+日+2)%7return (week 5) | day;//返回星期和月天数}
unsigned char BcdToBin(unsigned char val){val = (val 4) * 10 + (val 0x0f);//将BCD码转换为10进制数return val;//返回10进制数}
void main(void){unsigned char c, y, m, d;unsigned char cx, yx, mx, dx; unsigned char WDay, Week, Day;/*0001年1月1日 星期天*/c = 0x00;y = 0x01;m = 0x01;d = 0x01;cx = BcdToBin(c);//百年yx = BcdToBin(y);//年mx = BcdToBin(m);//月dx = BcdToBin(d);//日WDay = WeekDay(cx, yx, mx, dx);//取星期和月天数Week = WDay 5;//得到星期Day = WDay 0x1f;//得到最大月天数/*1918年1月21日 星期一*/c = 0x19;y = 0x18;m = 0x01;d = 0x21;cx = BcdToBin(c);//百年yx = BcdToBin(y);//年mx = BcdToBin(m);//月dx = BcdToBin(d);//日WDay = WeekDay(cx, yx, mx, dx);//取星期和月天数Week = WDay 5;//得到星期Day = WDay 0x1f;//得到最大月天数/*9999年12月31日 星期天*/c = 0x00;y = 0x01;m = 0x01;d = 0x01;cx = BcdToBin(c);//百年yx = BcdToBin(y);//年mx = BcdToBin(m);//月dx = BcdToBin(d);//日WDay = WeekDay(cx, yx, mx, dx);//取星期和
您可能关注的文档
最近下载
- CYX-QEHP-39新改扩建项目环境影响控制程序B0(工厂体系文件模板).doc VIP
- 03~04_项目融资模式之BOT项目.ppt VIP
- 团章考试题及答案.doc VIP
- 2025年中考真题作文解读:此刻,你不一样(威海)(写作指导+例文展示+名师点评).docx
- 小学一年级学习计划..doc VIP
- 包头市户外广告和牌匾设置技术标准标准DB 1502T006—2020.pdf
- 网络直播带货主播能力模型构建研究.docx VIP
- 淮阴工学院班主任工作手册.doc VIP
- 2024年新改版教科版一年级上册科学全册教案教学设计(新教材专用).docx
- 2025道德与法治二年级上册全册核心素养教案教学设计.docx
文档评论(0)