利用基姆拉尔森公式根据日期计算星期
参考网址:http://blog.sina.com.cn/s/blog_5f571dba0100cvjl.html
修改了下,把一月和二月看成是上一年的十三月和十四月,例:如果是2004-1-10则换算成:2003-13-10来代入公式计算。源代码对这个问题没有减年份。
但是我测试了下,结果是一样的。
// ConsoleApplication1.cpp : 定义控制台应用程序的入口点。 // #include <vector> #include <iostream> #include <string> using namespace std; string CaculateWeekDay(int y, int m, int d) { if(m==1) { m=13; y--; } if(m==2) { m=14; y--; } int week=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7; string weekstr=""; switch(week) { case 0: weekstr="星期一"; break; case 1: weekstr="星期二"; break; case 2: weekstr="星期三"; break; case 3: weekstr="星期四"; break; case 4: weekstr="星期五"; break; case 5: weekstr="星期六"; break; case 6: weekstr="星期日"; break; } return weekstr; } int main(int argc, char* argv[]) { cout<<CaculateWeekDay(2012, 6, 12)<<endl; return 0; }
作者:涵曦(www.hanxi.cc)
出处:hanxi.cnblogs.com
GitHub:github.com/hanxi
Email:im.hanxi@gmail.com
文章版权归本人所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
《 Skynet 游戏服务器开发实战》
-
学习地址:
-
优惠推荐码:
2CZ2UA5u
-
可以先免费试学前 2 章内容