1. 第八章:日期类
【问题描述】
设计一个日期类(Date),用来实现日期的操作。包括一个空构造函数,三个成员函数,其余所需自行决定。
用成员函数setDate()用来给Date类设置日期。
用成员函数isLeapYear()用来判断是否是闰年。
用成员函数getSkip(Date o)用来计算两个日期之间相差的天数。
【输入形式】
输入两个日期,输入格式参考样例。
【输出形式】
判断两个日期是否是闰年,以及两个日期的间隔天数,输出格式参考样例。
【样例输入】
2012 10 20
2017 11 07
【样例输出】
2012 is leap year.
2017 is not leap year.
The skip of two date is 1844.
注意:时间差始终为正数。
#include <iostream>
using namespace std;
class Date
{
private:
int year;
int month;
int day;
public:
Date () {
year=0,month=0,day=0;}
void setDate(int y,int m,int d)
{
year=y;
month=m;
day=d;
}
void isLeapyear()
{
if(year%400==0||(year%4==0&&year%100!=0))
cout<< year<<" is leap year."<<endl;
else cout<<year<<" is not leap year."<<endl;
}
int Skip()
{
int sum=0 ,i,j;
int a[12]={
31,28,31,30,31,30,31,31,30,31,30,31};
int b[12]={
31,29,31,30,31,30,31,31,30,31,30,31};
for(i=0;i<month-1;i++)
{
if(year%400==0||(year%4==0&&year%100!=0))
sum+=b[i];
else
sum+=a[i];
}
for(j=0;j<year;j++)
{
if(j%400==0||(j%4==0&&j%100!=0))
sum+=366;
else sum+=365;
}
sum=sum+day;
r