實現日期類的一些計本運算

2021-07-14 10:11:09 字數 2872 閱讀 6538

對日期我們一般會有以下四種運算:

1、給日期加乙個天數判斷這一天的日期

2、給日期減乙個天數判斷這一天的日期

3、兩個日期相加,得到乙個新的日期

4、兩個日期相減,得到乙個新的日期,並判斷相差天數

下面**實現

設定乙個固定陣列month_days,用來儲存每個月的天數

const int month_days[13]=;
定義日期類

運算操作在類內實現(也可在類外)

class date

date(date& p)

//~date();

void set_date(int y,int m,int d);

int leap_year();

void print();

int sum_days();

void operator+(const int days)

else

}while(_day>31)

case 4:

case 6:

case 9:

case 11:

case 2:

else

}if(_month>12)

}}} void operator-(const int days)

case 4:

case 6:

case 9:

case 11:

case 2:

else

}if(_month<1)

}} }

date operator+(const date& c)

else

}if(_month>12)

while(_day>31)

case 4:

case 6:

case 9:

case 11:

case 2:

else}}}

return *this;

} date operator-(const date& c)

while(_day<=0)

case 4:

case 6:

case 9:

case 11:

case 2:

else}}

}return *this;

}private:

int _year;

int _month;

int _day;

};void date::set_date(int year,int month,int day)

其他函式在類外實現(為了驗證函式可寫在類內也可寫在類外)

void date::set_date(int year,int month,int day)

int date::leap_year()

void date::print()

測試函式

void test1()

測試結果如下面所示

附所有源**

const int month_days[13]=;

#include#includeusing namespace std;

class date

date(date& p)

//~date();

void set_date(int y,int m,int d);

int leap_year();

void print();

int sum_days();

void operator+(const int days)

else

}while(_day>31)

case 4:

case 6:

case 9:

case 11:

case 2:

else

}if(_month>12)

}}} void operator-(const int days)

case 4:

case 6:

case 9:

case 11:

case 2:

else

}if(_month<1)

}} }

date operator+(const date& c)

else

}if(_month>12)

while(_day>31)

case 4:

case 6:

case 9:

case 11:

case 2:

else}}}

return *this;

} date operator-(const date& c)

while(_day<=0)

case 4:

case 6:

case 9:

case 11:

case 2:

else}}

}return *this;

}private:

int _year;

int _month;

int _day;

};void date::set_date(int year,int month,int day)

int date::leap_year()

void date::print()

void test1()

{ date d1(2016,7,19);

date d2(2016,7,5);

cout<<"原始日期資料為"<

謝謝瀏覽



Java 日期類的一些使用

2000年的1月1日,是那一年的第1天。那麼,2000年的5月4日,是那一年的第幾天?看到這道題 所以打算重新學習一下日期類 這也是我的第一篇部落格 date類現在用的比較少了,貼一些現在還沒過時的方法 date類表示特定的瞬間,精確到毫秒。1 public date 分配 date 物件並初始化此...

JS實現一些日期的比較

在ie下想吧字串轉化成日期進行比較,年月日之間的分隔符必須是 以下本人寫的一些日期與字串的相互轉換,以及比較 格局化日期 yyyy mm dd 字串 把日期轉化成 mm dd yyyy 格式的字串 function formatdate date if myweekday 10 return myy...

一些日期的處理。

在oracle中,要獲得日期中的年份,例如把sysdate中的年份取出來,並不是一件難事。常用的方法是 select to number to char sysdate,yyyy from dual,而實際上,oracle本身有更好的方法,那就是使用extract函式,使用方法是 select ex...