cpp07.cpp

来自「C++参考书」· C++ 代码 · 共 79 行

CPP
79
字号

// Coded by plusir -- Dec.30.2002.
// Standard C++ Bible -- (P287-11-7)

#include <iostream>
using namespace std ;

static int dys[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 } ;

class CustomDate
{
	public:
		CustomDate( int d = 0, int y = 0 )
		{
			da = d ;
			yr = y ;
		}

		void display( void ) const
		{ cout << endl << yr << '-' << da ; }

		int da, yr ;
} ;

class Date
{
	public:
		Date( int m = 0, int d = 0, int y = 0 )
		{
			mo = m ;
			da = d ;
			yr = y ;
		}

		Date( const CustomDate &jd )
		{
			yr = jd.yr ;
			da = jd.da ;
			for ( mo = 0; mo < 11; ++mo )
				if ( da > dys[mo] )
					da -= dys[mo] ;
				else
					break ;
			mo++ ;
		}

		operator CustomDate( void )
		{
			CustomDate cd( 0, yr ) ;
			for ( int i = 0; i < mo - 1; ++i )
				cd.da += dys[i] ;
			cd.da += da ;

			return cd ;
		}

		void display( void ) const
		{ cout << endl << mo <<'/' << da << '/' << yr ; }

	private:
		int mo ;
		int da ;
		int yr ;
} ;

int main()
{
	Date dt( 11, 17, 97 ) ;
	CustomDate cd ;

	cd = dt ;
	cd.display() ;

	dt = cd ;
	dt.display() ;

	return 0 ;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?