亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

C/C++實現日期計算器的示例代碼

2020-01-26 13:56:03
字體:
來源:轉載
供稿:網友

問題介紹:

今天突然看到一個問題看起來蠻有趣的,跟大家分享一下. 給定任意日期對該日期進行加減天數,最后得出加減后出現的日期.以及給兩個日期你可以得出他們兩個之間相隔多少天.(需要考慮閏年,每個月天數不同,我們需要寫一個我們直接可以使用的日期加減器)因為時間比較倉促,我也沒有寫界面,只有其中幾個主要的函數的架構思想以及簡單的調試就發出來了.

代碼實現:

#include<iostream> #include<Windows.h> #include<assert.h> using namespace std;  class Date {  public:    Date(int year = 1997,int month = 1,int day = 1)   :years(year)   , months(month)   , days(day)   {     assert(IScorrect());   }    Date& operator=(const Date& d)   {     if (this != &d)     {       years = d.years;       months = d.months;       days = d.days;     }     return *this;   }    Date& operator + (int day)   {     while (day > 365)     {       if (ISleapyear() && day > 366)       {         years++;         day = day - 366;       }       else       {         years++;         day = day - 365;       }     }     while (day >= Getmonthsday())     {         //注意這里的次序問題,一定先減 再加 最后再判斷. 如果順序錯了會出BUG的.       day = day - Getmonthsday();        months++;       if (months > 12)       {         years++;         months = 1;       }     }      while (day > 0)     {         DateAdvance();       day = day - 1;       days++;     }     return *this;   }    Date& operator - (int day) //先減去一年,然后在使用加的重載,所以你只需要寫一個無懈可擊的加算法就夠了.   {     while (day > 365)     {       if (ISleapyear() && day > 366)       {               day = day - 366;         years--;       }       else       {         day = day - 365;         years--;       }     }     if (ISleapyear())     {       day = 366 - day;       years--;     }     else     {       day = 365 - day;       years--;     }     operator+(day);     return *this;   }    void DateAdvance() //用于出現可以進化的情況   {     if (days > Getmonthsday())     {       months++;       days = 1;     }     if (months > 12)     {       years++;       months = 1;     }   }      int operator - (Date D)   {     int count = 0;     if (*this > D)     {       while (*this != D)       {         D.operator+(1);         count++;       }     }     else     {       while (*this != D)       {         operator+(1);         count++;       }     }     return count;   }    bool ISleapyear()   {     if ((years % 4 == 0 && years % 100 != 0) || (years % 400 == 0))     {       return true;     }     return false;   }   int Getmonthsday()   {     int monthDays[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };     if (ISleapyear() && months == 2)     {       return 29;     }     return monthDays[months];   }    void print()   {     cout << "目前的時間為";     cout << years << "." << months << "." <<days<< endl;   }    bool IScorrect()   {     if (years > 0 && ((years % 4 == 0 && years % 100 != 0) || (years % 400 == 0)) && days < 367)//閏年     {       if (months >0 && months < 13)       {         if (days > 0 && days <= Getmonthsday())         {           return true;         }       }     }     else if (years >0 && days < 366) //非閏年     {       if (months >0 && months < 13)       {         if (days > 0 && days <= Getmonthsday())         {           return true;         }       }     }     return false;   }    Date operator += (int day)   {     *this = *this + 100;     return *this;   }   Date operator -= (int day)   {     return *this = *this - day;   }   inline Date& operator++()   {     *this += 1;     return *this;   }   inline Date operator++(int)   {     Date tmp(*this);     *this = *this + 1;     return tmp;   }    bool operator == (const Date& d)   {     return (years == d.years&& months == d.months&&days == d.days);   }    bool operator != (const Date& d)   {     return !(*this == d);   }    bool operator >(const Date& d)   {     if (years > d.years ||       (years == d.years&&months > d.months)       || (years == d.years&&months == d.months && days > d.days))     {       return true;     }     return false;   }    bool operator < (const Date& d)   {     return !(*this > d);   }    bool operator >= (const Date& d)   {     return (*this == d) && (*this > d);   }    bool operator <= (const Date& d)   {     return (*this == d) && (*this < d);   }  private:   int years;   int months;   int days; };  void Test() {   Date d1(2012, 4, 5);   Date d2(2013, 4, 5);   d1.print();   /*d1 = d1 - 400;*/   d1.print();   cout << d1 - d2 << endl;   d1.print();   system("pause"); } 

總結:

日期類對我們掌握面向對象這里還是一個蠻重要的知識,你至少要能很熟練很正確地自己快速寫出這個整個框架,然后一個一個實現函數,我只能說很重要,很重要,很重要大家一定要掌握.

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲女人天堂色在线7777| 国产欧美一区二区三区四区| 国产又爽又黄的激情精品视频| 亚洲精选中文字幕| 国产精品www网站| 日韩国产欧美精品在线| 成人激情视频在线| 亚洲最大福利视频| 久久电影一区二区| 亚洲国产欧美日韩精品| 欧美孕妇孕交黑巨大网站| 国产精品高潮呻吟久久av黑人| 欧美大片在线看| 日韩av免费网站| 色婷婷综合成人| 亚洲免费影视第一页| 亚洲护士老师的毛茸茸最新章节| 一区二区在线免费视频| 亚洲精品欧美日韩专区| 日韩电影中文字幕| 亚洲天堂av在线免费| 久久精视频免费在线久久完整在线看| 欧美激情视频一区二区三区不卡| 久久视频在线播放| 亚洲欧美三级在线| 黄网站色欧美视频| 色偷偷91综合久久噜噜| 欧美成人免费大片| 午夜精品免费视频| 国产成人精品视频| www.国产精品一二区| 亚洲欧洲日产国码av系列天堂| 91精品国产91久久| 国产女人精品视频| 国产一区二区激情| 欧美成人一区在线| 最近2019中文字幕mv免费看| 亚洲精品色婷婷福利天堂| 欧美一级黄色网| 久久精视频免费在线久久完整在线看| 国产一级揄自揄精品视频| 国产精品丝袜白浆摸在线| 中文字幕欧美日韩va免费视频| 国内精品一区二区三区四区| 亚洲jizzjizz日本少妇| 欧美三级免费观看| 亚洲精品乱码久久久久久金桔影视| 日韩av大片在线| 精品久久久久久久久久久| 亚洲综合中文字幕在线| 国产成人aa精品一区在线播放| 亚洲第一免费网站| 国产在线视频不卡| 亚洲区一区二区| 欧美在线一级va免费观看| 日韩专区中文字幕| 亚洲性线免费观看视频成熟| 久久久久久com| 久久躁狠狠躁夜夜爽| 亚洲综合一区二区不卡| 26uuu另类亚洲欧美日本老年| 国产精品视频久久久| 久久久中精品2020中文| 国语自产精品视频在线看| 91在线网站视频| 国产中文日韩欧美| 欧美在线亚洲在线| 精品视频偷偷看在线观看| 久久人人爽人人| 97碰在线观看| 91av在线免费观看| 国产深夜精品福利| 国产精品人人做人人爽| 日韩成人中文字幕在线观看| 久久久久久国产精品三级玉女聊斋| 国产精品成人在线| 欧美激情一区二区久久久| 亚洲情综合五月天| 亚洲午夜小视频| 午夜精品久久久久久99热| 久久99热精品这里久久精品| 精品一区二区三区四区在线| 91精品国产综合久久香蕉的用户体验| 色偷偷亚洲男人天堂| 国产欧美一区二区三区在线| 国产日韩在线一区| 国产精品精品一区二区三区午夜版| 懂色aⅴ精品一区二区三区蜜月| 91精品国产自产在线| 91国偷自产一区二区三区的观看方式| 亚洲精品一区久久久久久| 久久综合88中文色鬼| 亚洲欧美变态国产另类| 亚洲97在线观看| 亚洲影院色无极综合| 国产91|九色| 欧美老肥婆性猛交视频| 一区二区欧美久久| 色狠狠久久aa北条麻妃| 亚洲欧洲国产伦综合| 国产精品成人一区二区三区吃奶| 欧美在线视频免费播放| 亚洲精品乱码久久久久久金桔影视| 亚洲精品自拍第一页| 91免费欧美精品| 久久精品国产亚洲| 国产精品丝袜一区二区三区| 日本精品免费观看| 久久亚洲一区二区三区四区五区高| www.久久色.com| 九色精品美女在线| 国模极品一区二区三区| 久久久国产91| 精品成人69xx.xyz| 欧美大尺度激情区在线播放| 国产精品电影观看| 伊是香蕉大人久久| 欧美理论电影网| 精品久久久久久久久久久久久| 日韩在线视频网| 在线播放国产一区中文字幕剧情欧美| 欧美午夜精品在线| 亚洲天堂男人天堂女人天堂| 国产精品青青在线观看爽香蕉| 日韩av电影院| 最新中文字幕亚洲| 久久综合免费视频影院| 国产区精品在线观看| 日本不卡视频在线播放| 久久视频免费在线播放| 亚洲电影免费观看高清完整版| 亚洲人成电影网站色…| 亚洲国产精久久久久久久| 精品久久久久久国产91| 中文字幕欧美日韩| 欧美精品在线观看91| 欧美日韩亚洲精品内裤| 久久久av免费| 久久久久久久久久国产精品| 久久99久久99精品免观看粉嫩| 91av视频在线| 精品国产区一区二区三区在线观看| 成人精品网站在线观看| 色婷婷综合久久久久中文字幕1| 91久久久久久| 美女久久久久久久| 亚洲精品色婷婷福利天堂| 欧美一区三区三区高中清蜜桃| 日韩性生活视频| www欧美xxxx| 亚洲午夜精品久久久久久性色| 97精品一区二区三区| 美女久久久久久久| 日本精品久久电影| 日韩成人在线免费观看| 亚洲精品国产综合久久| 91极品视频在线| 欧美日韩成人免费| 狠狠做深爱婷婷久久综合一区| 欧美极品少妇全裸体| 国产精品第七影院| 在线视频日本亚洲性| 欧美国产日本高清在线| 国产国语videosex另类|