UJN_C++_1546: [C++ Objects and Classes] Date Class 2

//
#include<bits/stdc++.h>
using namespace std;
                    // 1 2 3  4 5  6  7  8  9  10 11 12
int month_day[]={ 0,31,28,31,30,31,30,31,31,30,31,30,31 };

class date
{
    private:
        int year,month,day;
    public:
        date() { year=2008; month=1; day=1; }
        date( int x,int y,int z ) { year=x; month=y; day=z; }

        void assign( int x,int y,int z ) { year=x; month=y; day=z; }
        void out() { cout<<year<<"-"<<month<<"-"<<day<<endl; }
        bool is_leap()
        {
            return  (
                    ( year%4==0 && year%100 ) ||  
                    ( year%400==0 && year%3200 ) || 
                    ( year%172800==0 ) 
                    ) ;
        }
        void after()
        {
            int judge=month_day[ month ];
            if( this->is_leap() && judge==28 ) judge++;			// is_leap();

            day++;
            if( day > judge ) { month++; day=1; }
            if( month > 12 ) { year++; month=1; }
        }
        void after( int n ) { while( n-- ) this->after(); }		// after();
};

int main()
{
	date d1,d2( 2016,5,1 ),d3;
    int a,b,c,n;

    cin>>a>>b>>c>>n;
    d3.assign( a,b,c );

    d1.out(); d2.out(); d3.out();

    d3.after(n); d3.out();

    return 0;
}

Guess you like

Origin blog.csdn.net/qq_63173957/article/details/123878661