一道c++作业题,有点难,求解

3.A 类、函数模板的综合运用
1)编写一个Date类,包括整型的年月日三个数据成员,以及对应的get、set函数、构造函数、sub函数、isWeekend函数。要求检查年月日的合法性,包括闰年和特殊日期检查。提供一个sub(Date d)成员函数,用于计算当前日期对象和参数d之间的日期差值(用天数计算)。

2)编写一个Time类,包括整型的时分秒三个数据成员,以及对应的get、set函数和构造函数,要求时分秒为合法的正整数。提供一个sub(Time t)成员函数,用于计算当前Time对象和参数对象t之间的时间差值(用秒数计算)。

3)编写一个模板函数 bool compare(T t1, T t2),判断两个参数的大小,使之能够处理Time类或者Date类的对象。

4)编写一个main函数,测试上述模板函数和自定义class。

#include<iostream>
using namespace std;
class Date//日期类
{
private:
    int year,month,day;
public:
    Date()
    {
        year=2016;
        month=5,day=4;
    }
    Date(int y,int m,int d)
    {
        year=y;
        month=m;
        day=d;
    }
    Date(Date& d)
    {
        year=d.year;
        month=d.month;
        day=d.day;
    }
    ~Date() {}
    int Gety()
    {
        return year;   //得到年份
    }
    int Getm()
    {
        return month;
    }
    int Getd()
    {
        return day;
    }
    void Set(int y,int m,int d)
    {
        year=y;    //设置时间
        month=m;
        day=d;
    }
    void Show()
    {
        cout<<year<<"-"<<month<<"-"<<day<<endl;   //显示日期y-m-d的函数
    }
};

3 4在你点了采纳后继续完成