一个满足下边要求的CDate类
时间:2022-07-24
本文章向大家介绍一个满足下边要求的CDate类,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
练习:编写一个函数,设计一个满足下边要求的CDate类,用数据进行调试并输出结果 //(1)用日/月/年格式输出日期。 //(2)可进行日期加一天的操作 //(3)设置日期。
#include<iostream>
using namespace std;
class CDate
{
private:
int m_nDay;
int m_nMonth;
int m_nYear;
public:
CDate();//默认构造函数
CDate(int, int, int);//重载构造函数
void Display();//输出日期
void Adddate();//返回加1后的日期
void Setdate(int,int,int);//设置日期
~CDate();//析构函数
private:
bool Isleapyear();//判断年份是不是闰年
};
CDate::CDate()
{}
CDate::CDate(int year, int month, int day)
{
m_nDay = day;
m_nMonth = month;
m_nYear = year;
}
void CDate::Display()
{
cout << m_nYear << "年" << m_nMonth << "月" << m_nDay << "日" << endl;
}
void CDate::Adddate()
{
m_nDay++;
if (Isleapyear())
{
if (m_nMonth == 2 && m_nDay == 30)
{
m_nMonth++;
m_nDay = 1;
return;
}
}
else
{
if (m_nMonth == 2 && m_nDay == 29)
{
m_nMonth++;
m_nDay = 1;
return;
}
}
if (m_nDay > 31)
{
if (m_nMonth == 12)
{
m_nYear++;
m_nMonth = 1;
m_nYear = 1;
}
else
{
m_nMonth++;
m_nDay = 1;
}
}
else if (m_nDay == 31)
{
if (m_nMonth == 4 || m_nMonth == 6 || m_nMonth == 9 || m_nMonth == 11)
{
m_nMonth++;
m_nDay = 1;
}
}
}
void CDate::Setdate(int year,int month,int day)
{
m_nDay = day;
m_nMonth = month;
m_nYear = year;
}
CDate::~CDate()
{
}
bool CDate::Isleapyear()
{
bool bLeap;
if (m_nYear % 4 != 0) bLeap = false;
else if (m_nYear % 100 != 0) bLeap = true;
else if (m_nYear % 400) bLeap = false;
return bLeap;
}
void main()
{
CDate date;
int y, m, d;
cout << "年月日" << endl;
cin >> y >> m >> d;
date.Setdate(y, m, d);
cout << "当前日期:";
date.Display();
date.Adddate();
cout << "当前日期加1:";
date.Display();
system("pause");
}
- Java面试系列10
- python django整理(三)页面基础(仿BBS)
- 高并发场景下的httpClient优化使用
- socket.io 相关:Example: A simple chat server(官方 实例)
- django整理(四)配置setting文件(CSS,JS,images,templates)路径
- idea 远程调试 tomcat web应用
- Java 中冷门的 synthetic 关键字原理解读
- Spring 数据库连接(Connection)绑定线程(Thread)的实现
- Golang语言实现AzDG可逆加密算法实例
- python django整理(五)配置favicon.ico,解决警告Not Found: /favicon.ico
- SpringMVC + Mybatis bug调试 SQL正确,查数据库却返回NULL
- 原生javascript实现图片轮播效果代码
- Spring AOP中 args和arg-names的区别
- Golong 语言开发 go-websocket-sample 测试值得拥有
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 满眼只有React和Vue,却对前端数据层几乎一无所知
- 嵌入式linux之go语言开发(八)存储模块的封装(二)
- 招商银行校招题二
- 小程序工程化系列(一):文件依赖分析
- ucgui在windows上的移植,及为go语言打造简易跨平台GUI的想法
- React setState 是异步执行还是同步执行?
- sm2,sm3,sm4国密算法的纯c语言版本,使用于任何嵌入式平台
- sm2国密算法的纯c语言版本,使用于单片机平台(静态内存分配)
- 面试:mysql 事务和锁的解释
- 【STM32F407开发板用户手册】第35章 STM32F407的FSMC总线应用之驱动AD7606(8通道同步采样, 16bit, 正负10V)
- 玩转easyARM imax283A开发版(二),移植NES模拟器并增加按键驱动,让板子可以玩超级玛丽游戏
- 完了!TCP出了大事!
- redis高并发高可用
- 嵌入式linux之go语言开发(九)关于嵌入式GUI
- docker入门总结,从使用的角度谈起