Exemplo n.º 1
0
void    init ()
{
        int     y , m , d;
        AddDay ( 2001 , 11 , 2 );
        for ( y = 2001 ; y >= 1900; y -- )
                for ( m = 12; m > 0; m -- )
                        for ( d = 31; d > 0; d -- ) {
                                if ( !live ( y , m , d ) ) continue;
                                if ( y == 2001 && m == 11 && d == 4 )
                                        Win [y] [m] [d] = 0;
                                else if ( AddDay ( y , m , d ) || AddMonth ( y , m , d ) ) Win [y] [m] [d] = 1;
                                else Win [y] [m] [d] = 0;

                        }
        
}
Exemplo n.º 2
0
void AddDay( Date& d )
{
	switch( d.month )
		{
		case 1:
		case 3:
		case 5:
		case 7:
		case 8:
		case 10:
		case 12:
			{
				if( d.day < 31 )
					++d.day;
				else
					{
						d.day = 1;
						AddMonth( d );
					}
			}

		case 4:
		case 6:
		case 9:
		case 11:
			{
				if( d.day < 30 )
					++d.day;
				else
					{
						d.day = 1;
						AddMonth( d );
					}
			break;
			}

		case 2:
			{
				if( d.day < 28 )
					++d.day;
				else
					{	
						if( d.year % 400 )	//leap year
							{
								if( d.day == 29 )
									{
										d.day = 1;
										AddMonth( d );
									}
								else
									++d.day;
							}
						else if( d.year % 100 )	//not leap year
							{
								d.day = 1;
								AddMonth( d );
							}

						else if( d.year % 4 ) //leap year
							{
								if( d.day == 29 )
									{
										d.day = 1;
										AddMonth( d );
									}
								else
									++d.day;
							}

						else  //not leap year
							{
								d.day = 1;
								AddMonth( d );
							}

					}
				break;
			}
		}
}