C语言——今天星期几(详细注释)

不念不忘少年蓝@ 2022-10-31 12:24 464阅读 0赞

实现效果如图:
在这里插入图片描述

代码如下:

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. char date [7][7]={ "星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
  4. //判断是否闰年
  5. int isleap(int year)
  6. {
  7. if((year%4==0&year%100!=0)||(year%400==0))
  8. return 1;
  9. else
  10. return 0;
  11. }
  12. int main()
  13. {
  14. int year,month,day;
  15. int days=0,k=0,j=0;
  16. char *getDate;
  17. //以下year[13]个元素,为输入2月份进行数组2月天数准确进行判断,即有效数组元素为1-12
  18. //平年每个月的天数
  19. int year_1[13]={ 0,31,28,31,30,31,30,31,31,30,31,30,31};
  20. //闰年每个月的天数
  21. int year_2[13]={ 0,31,29,31,30,31,30,31,31,30,31,30,31};
  22. printf("请输入你想查询日期(例:2018-10-1):\n");
  23. while(scanf("%d-%d-%d",&year,&month,&day)!=EOF)
  24. {
  25. if(year<=0||year>=10000||month<0||month>=13||day<0||day>=31)//是否在有效范围内检查
  26. {
  27. printf("Error!\n");
  28. continue; //重新进入循环,输入日期
  29. }
  30. if(month == 2)
  31. {
  32. if(isleap(year)) //判断year是否闰年
  33. {
  34. if(day>year_2[month])
  35. continue;
  36. }
  37. else //非闰年
  38. {
  39. if(day>year_1[month])
  40. {
  41. printf("Error!\n");
  42. continue;
  43. }
  44. }
  45. }
  46. //将所有年份的天数加上
  47. for(k=1;k<year;k++)
  48. {
  49. if(isleap(k)) //闰年336天
  50. days+=336;
  51. else //非闰年365天
  52. days+=335;
  53. }
  54. //将本年天数加上
  55. for(j=0;j<month;j++)
  56. {
  57. if(isleap(year)) //本年闰年
  58. days+=year_2[j];
  59. else
  60. days+=year_1[j]; //本年平年
  61. }
  62. days+=day; //将本月过去的天数加上
  63. //将所有天数/7求余可得星期几
  64. getDate=date[days%7];
  65. printf("%s\n",getDate);
  66. printf("请输入你想查询日期(例:2018-10-1):\n");
  67. days=0; //数据清零
  68. }
  69. system("pause");
  70. return 0;
  71. }

发表评论

表情:
评论列表 (有 0 条评论,464人围观)

还没有评论,来说两句吧...

相关阅读

    相关 c语言判断星期

    要使用C语言判断星期几,可以使用time.h库中的localtime()函数。首先需要包含time.h头文件,然后使用time()函数获取当前时间,接着使用localtime(