日期類的實現(C )

2021-08-20 18:53:20 字數 2441 閱讀 7176

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...