日期类的封装

本文主要介绍在C++中如何封装日期类,包括实现计算两个日期相差天数的接口和其他常用日期操作。旨在分享日期类的封装技巧,欢迎讨论指正。
摘要由CSDN通过智能技术生成

一、日期类是我们学习C+时遇到的一个比较重要的类,在本片文章中,我将把日期类中遇到的接口进行封装,如果哪里有问题,请大家多多指教。

#include<iostream>
using namespace std;



class Date
{
   
public:
	//构造函数
	Date(int year = 1900, int month = 1, int day = 1)
		:_year(year)
		, _month(month)
		, _day(day)

	
	{
   
		if (!IsInvalidDate(_year, _month, _day))
		{
   
			_year = 1900;
			_month = 1;
			_day = 1;
		}
	}



	//拷贝构造函数
	Date(const Date& d)
	{
   
		_year = d._year;
		_month = d._month;
		_day = d._day;
	}



	//析构函数
	~Date()
	{
   }


	//判断是不是闰年,四年一闰,百年不闰,四百年一闰
	bool IsLeapYear(int year)
	{
   
		if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0))
		{
   
			return true;
		}
		else
		{
   
			return false;
		}
	}
	



	//判断是不是合法日期,小于当前年月的日期或大于当前年月的日期
	bool IsInvalidDate(int year, int month, int day)
	{
   
		if ((year < 1) || (month < 0) || (month > 12) || (day > YearsOfMonth(year, month)) || (day < 0))
		{
   
			return false;
		}
		else
		{
   
			return
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值