date.h
#define _crt_secure_no_warning 1
#pragma once
#include #include using namespace std;
class date
date(const date& d)
: _year(d._year)
, _month(d._month)
, _day(d._day)
{} // 當前日期days天後是什麼日期?
date operator+(int days);
int getmonthday(int year,int month);
bool isleapyear(int year);
// 當前日期days天前是什麼日期?
date operator-(int days);
// 兩個日期之間差了多少天?
date operator-(const date& d);
// 日期比大小
bool operator>(const date& d);
bool operator<(const date& d);
bool operator<=(const date& d);
bool operator>=(const date& d);
bool operator==(const date& d);
bool operator!=(const date& d);
date& operator=(const date& d);
// 過載取位址符號
date* operator&();
// 前置++
date& operator++();
// 後置++
date operator++(int);
// 前置--
date& operator--();
// 後置++
date operator--(int);
void show();
private:
int _year;
int _month;
int _day;
};
date.cpp
#define _crt_secure_no_warning 1
#include "date.h"
bool date::isleapyear(int year)
int date::getmonthday(int year,int month)
; if(month == 2&&isleapyear(year))
int day = monthday[month];
return day;
} // 當前日期days天後是什麼日期?
date date::operator+(int days)
} return ret;
} // 當前日期days天前是什麼日期?
date date::operator-(int days)
ret._day += getmonthday(ret._year,ret._month);
} return ret;
} // 兩個日期之間差了多少天?
date date::operator-(const date& d)
int day = 0;//標記相差的天數
while(min <= max)
return day*flag;//正,表示當前日期在後,負,表示當前日期在前
} // 日期比大小
bool date::operator>(const date& d)
return false;
}bool date::operator<(const date& d)
return false;
}bool date::operator==(const date& d)
return false;
}bool date::operator!=(const date& d)
bool date::operator>=(const date& d)
return (*this);
} // 過載取位址符號
date* date::operator&()
// 前置++
date& date::operator++()
// 後置++
date date::operator++(int)
// 前置--
date& date::operator--()
// 後置++
date date::operator--(int)
void date::show()
C 日期類的實現
實現日期類,就是實現其中的幾個預設的成員函式以及一些運算子的過載的實現。使用初始化成員列表初始化年月日,並且對日期的非法性做以判斷。date date int year,int month,int day year year month month day day 這裡對日期的非法性判斷,主要 如下...
C 日期類的實現
include include include using namespace std class date 獲取每個月的天數 int getmonthday int year,int month if month 2 isleap year return days month 判斷日期是否合法 b...
C 日期類的實現
int getmonthday int year,int month int day days month if month 2 year 4 0 year 100 0 year 400 0 return day date int year 1900 int month 1,int day 1 el...