日期计算器的实现

  平日里我们经常会涉及到日期计算的问题,比如:几天后是几月几日,特定的两个日期之间隔了几天等等,我们会通过查日历或通过上网使用日期计算器来实现,今天我们就来探讨日期计算器的代码以及实现原理。

1、概要:

需要建立3个文件:

1.Date.h:用于类中的函数声明

2.Date.cpp:用于类中的函数定义

3.test.cpp:用于测试函数

2、日期类Date的实现

2.1获取日期中月份的天数

//获取日期天数
int GetMonthDay(int year, int month)
{

	assert(month > 0 && month < 13);
	int monthday[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };

	//处理平闰年二月天数问题
	if (month == 2 && (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
	{
		return 29;
	}
	else
	{
		return monthday[month];
	}

此函数会被频繁调用,所以我们可将它设置成内联函数,直接定义在类里面,声明定义不分离,以提高效率。 

 2.2检查日期合法性

bool Date::Checkdate()
{
	if (_month < 1 || _month>12 || _day<1 || _day>GetMonthDay(_year, _month))
	{
		return false;
	}
	else
	{
		return true;
	}
}

2.3日期之间比大小

2.3.1 <运算符重载

 存在3种情况满足实例化对象d1小于d2

1.d1的年小于d2的年

2. d1的年等于d2的年,d1的月小于d2的月

3. d1的年等于d2的年,d1的月等于d2的月,d1的天小于d2的天

代码如下:

//&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值