返回顶部

收藏

C语言根据指定日期计算是星期几

更多

C语言根据日期判断星期几(使用基姆拉尔森计算公式) 算法如下: 基姆拉尔森计算公式 W=(d+2m+3(m+1)/5+y+y/4-y/100+y/400)mod7 在公式中d表示日期中的日数,m表示月份数,y表示年数。 注意:在公式中有个与其他公式不同的地方: 把一月和二月看成是上一年的十三月和十四月,例:如果是2004-1-10则换算成:2003-13-10来代入公式计算。```cpp

include "stdio.h"

void CaculateWeekDay(int y,int m, int d) { if(m==1||m==2) { m+=12; y--; } int iWeek=(d+2m+3(m+1)/5+y+y/4-y/100+y/400)%7; switch(iWeek) { case 0: printf("星期一\n"); break; case 1: printf("星期二\n"); break; case 2: printf("星期三\n"); break; case 3: printf("星期四\n"); break; case 4: printf("星期五\n"); break; case 5: printf("星期六\n"); break; case 6: printf("星期日\n"); break; } } void main() { int year=0,month=0,day=0; printf("请输入日期:\n格式为:1900,1,1\n"); char temp = '1'; while (temp != '0') { scanf("%d,%d,%d",&year,&month,&day); scanf("%c",&temp); CaculateWeekDay(year,month,day); printf("输入0退出,其他继续:"); scanf("%c",&temp); } } ``` 运行后交互输出结果如下: 请输入日期: 格式为:1900,1,1 2008,4,29 星期二 输入0退出,其他继续:l 2013,8,29 星期四 输入0退出,其他继续:0 请按任意键继续. . . 编者注:用来算现在真实日期的星期是没有问题的。原理是根据已知公元1年1月1日的星期数来推算。如果在你的题目中约定了某天是星期几,你要注意那天的星期是否跟真实的星期相同,如果不同,需要考虑相差几天!

标签:c/c++

收藏

0人收藏

支持

0

反对

0

相关聚客文章
  1. yuer 发表 2018-07-27 08:46:07 coredump之百米之内必有解药
  2. hev 发表 2018-04-28 06:11:38 一个简单、轻量的 Linux 协程实现
  3. hev 发表 2017-10-19 15:56:11 FSH – 助你接入私有网络中的 Linux 终端
  4. gonwan 发表 2015-04-15 08:03:07 Database Access Layer in C++
  5. gonwan 发表 2015-12-28 08:41:13 Basic Usage of Boost MultiIndex Containers
  6. gonwan 发表 2016-01-19 03:37:54 Coroutines in C++/Boost
  7. Haoxiang Li 发表 2017-10-25 20:29:02 MXNet C++ Deployment
  8. yuer 发表 2017-10-20 07:52:47 基于leveldb的持久消息队列SDK
  9. yuer 发表 2017-10-07 07:51:32 c++11完美转发
  10. 博主 发表 2016-09-03 00:00:00 C++编译期类型信息的利用
  11. yuer 发表 2017-09-06 03:03:29 libcurl访问unix socket
  12. yuer 发表 2017-09-07 08:14:58 valgrind检测php扩展的warning

发表评论