customdate.h

来自「C++参考书」· C头文件 代码 · 共 57 行

H
57
字号

#ifndef CUSTOMDATE_H
#define CUSTOMDATE_H
#include "date.h"
using namespace std ;

class CustomDate : public Date
{
	public:
		CustomDate( int yr, int da ) ;
		int getDay( void ) const ;
		virtual void display( void ) const ;
} ;

CustomDate::CustomDate( int yr, int da )
{
	if ( yr < 1 || da < 1 || da > ( isLeapYear( yr ) ? 366 : 365 ) )
		return ;

	int mo ;
	for ( mo = 1; mo < 13; ++mo ) {
		int dy = dys[mo - 1] ;

		if ( mo == 2 && isLeapYear( yr ) )
			dy++ ;

		if ( da <= dy ) 
			break ;

		da -= dy ;
	}

	setDate( mo, da, yr ) ;
}

int CustomDate::getDay( void ) const
{
	int mo, da, yr ;
	getDate( mo, da, yr ) ;

	int day = 0 ;
	for ( int m = 1; m < mo; ++m ) {
		day += dys[m - 1] ;
		if ( m == 2 && isLeapYear( yr ) )
			day ++ ;
	}

	return day + da ;
}

void CustomDate::display( void ) const
{
	cout << getDay() << '-' << getYear() << endl ;
}

#endif

⌨️ 快捷键说明

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