设计日期,求出将年月日向后推n天的日期

本文介绍如何设计一个日期类,该类仅允许通过年月日进行初始化,并提供了一个方法,能够将日期向前或向后推移指定的天数n,实现了逐月累加日期的功能。
摘要由CSDN通过智能技术生成

设计一个日期类,包含以下功能:
1、只能通过传入年月日初始化。
2、可以加上一个数字n,返回一个该日期后推n天之后的日期。
方法:对日期实现逐月累加

//建立Date.h文件
#pragma once
#include <iostream>
using namespace std;

typedef unsigned int uint;

class Date{
	uint m_year;
	uint m_month;
	uint m_day;
public:
	Date(uint y, uint m, uint d) :
		m_year(y),
		m_month(m),
		m_day(d)
	{

	}

	Date operator + (uint delay) const;//保证this不被改变,对 + 运算符进行重载
	friend ostream & operator << (ostream &os, Date &d);//对输出运算符 << 重载
};

//建立Date.cpp文件
#include "Date.h"

static uint getMonthDay(uint y, uint m){//计算某年的某月有多少天
	if (m > 12 || m == 0){
		return 0;
	}
	if (m == 4 || m == 6 || m == 9 || m == 11){
		return 30;
	}
	else if (m == 2){
		return 28 + (y % 400 == 0 || (y % 4 == 0 && y % 100));
	}
	else{
		return 31;
	}
}

ostream & operator << (ostream &os, Date &d){
	o
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值