需要判断这个日期在我们的公历体系内是否真实存在。如果存在则输出YES,否则输出NO。

已知,一年有 1 月~ 12月,共 12 个不同的月份;其中 1 月、3月、5 月、7 月、8 月、10 月、12月有 31个合法的日,分别为 11 日~ 31 日;4月、6 月、99月、11月有 30个合法的日,分别为 1 日~ 30 日。对于闰年,2 月有 29 个合法的日,分别为 1 日~ 29 日;对于平年(不是闰年的年称为平年),2月有 2 个合法的日,分别为 1日~ 28日。

闰年的判断则遵循如下依据:

非整百年,能被4整除的为闰年。
整百年,能被400整除的是闰年。

  1   2#include <iostream>2   2 using std::cin;3   3 using std::cout;4   4 using std::endl;5   5 int main()6   6 {7   7     int year;8   8     int month;9   9     int day;10  10     char op = '-';11  11     cin >> year >> op >> month >> op >> day;12  12     if (year % 100 == 0 && year % 400 == 0)13  13         {14  14             if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12)15  15             {16  16                 if (day >= 1 && day <= 31)17  17                 {18  18                     cout << "YES";19  19                 }20  20                 else21  21                 {22  22                     cout << "NO";23  23                 }24  24             }25  25             else if (month == 4 || month == 6 || month == 9 || month == 11)26  26             {27  27                 if (day >= 1 && day <= 30)28  28                 {29  29                     cout << "YES";30  30                 }31  31                 else32  32                 {33  33                     cout << "NO";34  34                 }35  35             }36  36             else if(month==2)37  37             {38  38                 if (day >= 1 && day <= 29)39  39                 {40  40                     cout << "YES";41  41                 }42  42                 else43  43                 {44  44                     cout << "NO";45  45                 }46  46             }47  47             else48  48             {49  49                 cout << "NO";50  50             }51  51         }52  52 53  53     else if (year % 100 != 0 && year % 4 == 0)54  54     {55  55         if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12)56  56         {57  57             if (day >= 1 && day <= 31)58  58             {59  59                 cout << "YES";60  60             }61  61             else62  62             {63  63                 cout << "NO";64  64             }65  65         }66  66         else if (month == 4 || month == 6 || month == 9 || month == 11)67  67         {68  68             if (day >= 1 && day <= 30)69  69             {70  70                 cout << "YES";71  71             }72  72             else73  73             {74  74                 cout << "NO";75  75             }76  76         }77  77         else if(month == 2)78  78         {79  79             if (day >= 1 && day <= 29)80  80             {81  81                 cout << "YES";82  82             }83  83             else84  84             {85  85                 cout << "NO";86  86             }87  87         }88  88 89  89         else90  90         {91  91             cout << "NO";92  92         }93  93     }94  94 95  95     else 96  96     {97  97         if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12)98  98         {99  99             if (day >= 1 && day <= 31)
100 100             {
101 101                 cout << "YES";
102 102             }
103 103             else
104 104             {
105 105                 cout << "NO";
106 106             }
107 107         }
108 108
109 109         else if (month == 4 || month == 6 || month == 9 || month == 11)
110 110         {
111 111             if (day >= 1 && day <= 30)
112 112             {
113 113                 cout << "YES";
114 114             }
115 115             else
116 116             {
117 117                 cout << "NO";
118 118             }
119 119         }
120 120
121 121         else if(month == 2)
122 122         {
123 123             if (day >= 1 && day <= 28)
124 124             {
125 125                 cout << "YES";
126 126             }
127 127             else
128 128             {
129 129                 cout << "NO";
130 130             }
131 131         }
132 132         else
133 133         {
134 134             cout << "NO";
135 135         }
136 136     }
137 137
138 138     return 0;
139 139 }

转载于:https://www.cnblogs.com/kblin/p/6858542.html

判断日期是否是合法的:相关推荐

  1. Problem G: 函数---判断日期(年月日)是否合法

    Problem G: 函数---判断日期(年月日)是否合法 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 566  Solved: 240 Descr ...

  2. Javascript判断日期是否合法

    1, 写一个函数判断一个年份是不是闰年 2, 写一个函数判断一个数是不是素数(又称质数, 除了1和本身以外不再有其他数整除) 3, 年月日分别为自定义函数的参数, 判断某一个日期是否为合法的日期; 如 ...

  3. pandas判断日期是否是闰年(is_leap_year)实战: 数据列转化为日期(时间)格式、判断pandas的日期数据列是否是闰年

    pandas判断日期是否是闰年(is_leap_year)实战: 数据列转化为日期(时间)格式.判断pandas的日期数据列是否是闰年 目录

  4. python判断日期_python如何判断日期的合法性?

    判断日期的合法性,有两层含义,一是日期格式是否合法,二是格式合法后,其所表示的实际的那一天,是否真实存在!在python中,做这个合法性的判断,so easy!~~ 我们需要用到datetime模块中 ...

  5. LINQ中判断日期时间段

    1)转换日期格式为DateTime类型 DateTime dtToday = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd&quo ...

  6. java 日期是否合法_java 中 Date 类型快判断日期是否合法.

    // 如果日期不合法,则抛异常try {String date_str = 5555-22-33;SimpleDateFormat format=new SimpleDateFormat(yyyy-M ...

  7. js 日期比较大小,js判断日期是否在区间内,js判断时间段是否在另外一个时间段内...

    /** * 日期解析,字符串转日期 * @param dateString 可以为2017-02-16,2017/02/16,2017.02.16 * @returns {Date} 返回对应的日期对 ...

  8. html判断用户名的合法性,javascript简单判断输入内容是否合法的方法

    本文实例讲述了javascript简单判断输入内容是否合法的方法.分享给大家供大家参考,具体如下: 关于检测用户输入的内容是否有非法的字符检测实现思路 1.定义合法的字符串(源字符串) 2.获取用户输 ...

  9. JS判断日期是否在同一个星期内,和同一个月内

    今天要用到判断日期是否在同一个星期内和是否在同一个月内,在网上找了好一会儿也没找到合适的,然后自己写了一个方法来处理这个问题,思路就不详细介绍了,直接附上代码,自己测试了一下 没有问题,若有问题请在评 ...

  10. java 正则表达式 判断 日期_怎么在java中利用正则表达式对时间日期进行判断

    怎么在java中利用正则表达式对时间日期进行判断 发布时间:2020-12-08 16:18:34 来源:亿速云 阅读:105 作者:Leah 这篇文章给大家介绍怎么在java中利用正则表达式对时间日 ...

最新文章

  1. redis设置键的生存时间或过期时间
  2. Google图片加载库Glide的简单封装GlideUtils
  3. libreoffice Error: source file could not be loaded
  4. 数塔(HDU-2084)
  5. 通过火影忍者英雄案例 理解数据类型
  6. php计算对角线,python计算对角线有理函数插值的方法
  7. FusionCharts图表右键菜单的各种典型示例
  8. POJ 2728 Desert King(最优比率生成树)
  9. 场景文字检测OD与字符识别OCR概述
  10. windows8 初始界面和功能
  11. 社交网络分析算法应用,社交网络分析算法
  12. 将ppt里的图片高分辨率保存的方法
  13. Uncode-DAL 1.0.18 发布,Java 通用数据访问层
  14. 2017.3.15读完《围城》
  15. 计算机辅助翻译实验室,计算机辅助翻译实验室建设及应用探索.pdf
  16. C1认证学习六(HTTPS)
  17. 报SQL异常Parameter index out of range (1 > number of parameters, which is 0).
  18. 平头哥面试——芯片工程师面经
  19. Google Glass: 未来不遥远
  20. 2018 ACM-ICPC 亚洲区域赛青岛站 E - Plants vs. Zombies(二分)

热门文章

  1. graphpad做饼图_3D 饼环图初步完成
  2. 以太坊 solidity 函数修饰符总结 public、private、internal、external、view、pure的区别
  3. LaTeX 切换其它另外的期刊会议模板
  4. 区块链 分片sharding 网络分片 交易分片 状态分片 是什么
  5. thinkphp 同时更新多条数据
  6. 散粉在哪个步骤用_平时用的散粉除了所谓的定妆,还有这么多好处啊?
  7. LeetCode----两数之和
  8. Java 枚举(enum)剖析
  9. Tomcat 下载安装,启动,停止,注册服务,开机自启
  10. 阶段5 3.微服务项目【学成在线】_day04 页面静态化_11-freemarker静态化测试-基于模板字符串静态化...