网站首页 > 教程分享 正文
要求:输入一个日期,程序判断是否合法,合法则打印该日期,不合法则打印提示信息
思路:判断日期是否合法只需要满足year>1900,month>0&&month<13,对于day来说需要注意的是不仅要>0还要考虑2月的特殊情况,如果时闰年要+1。在这里为了方便我们直接定义一个数组存放12个月对应的天数,再根据月数return day即可。
下面上代码
#include<iostream> #include<assert.h> using namespace std; class date { public: void show() { cout<< _year << "-"<< _month << "-"<< _day <<endl; } int Getmonthday(int year, int month) { assert(month > 0 && month < 13); static int days[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31,30, 31 }; int day = days[month]; if ((year % 4 == 0 && year % 100 != 0) || ((year % 400 == 0) && month == 2)) { day += 1; } return day; } void Setday(int year, int month, int day) { if (year >= 1900 && month > 0 && month<13 && day>0 && day <=Getmonthday(year,month)) { _year = year; _month = month; _day = day; } else { cout << "日期非法" << year << "-" << month << "-" << day<<endl; } } private: int _year; int _month; int _day; }; int main() { date d1; d1.Setday(2018, 6, 28); d1.Setday(2018, 3, 32); d1.show(); system("pause"); return 0; }
最后,如果你想学C/C++可以私信小编“01”获取素材资料以及开发工具和听课权限哦!
猜你喜欢
- 2024-10-18 信号 - Linux Signal - 网络编程的相关信号
- 2024-10-18 干货 | 一文搞定 pytest 自动化测试框架(一)
- 2024-10-18 linux网络编程—tcp和udp基本函数调用过程及如何选择
- 2024-10-18 C语言之结构体基础(c语言结构体经典例题)
- 2024-10-18 linux定时器编程详解(包含代码)(linux定时器执行脚本)
- 2024-10-18 C语言学习第16篇---三目运算符和逗号表达式
- 2024-10-18 Linux网络编程相关高级I/O函数 - 用于创建文件描述符的函数
- 2024-10-18 干货 | 一文搞定 pytest 自动化测试框架(二)
- 2024-10-18 现代c++之移动构造,移动赋值,拷贝构造,拷贝赋值
- 2024-10-18 探索C语言断言:保证程序的健壮性和可靠性
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- css导航条 (66)
- sqlinsert (63)
- js提交表单 (60)
- param (62)
- parentelement (65)
- jquery分享 (62)
- check约束 (64)
- curl_init (68)
- sql if语句 (69)
- import (66)
- chmod文件夹 (71)
- clearinterval (71)
- pythonrange (62)
- 数组长度 (61)
- javafx (59)
- 全局消息钩子 (64)
- sort排序 (62)
- jdbc (69)
- php网页源码 (59)
- assert h (69)
- httpclientjar (60)
- postgresql conf (59)
- winform开发 (59)
- mysql数字类型 (71)
- drawimage (61)
本文暂时没有评论,来添加一个吧(●'◡'●)