/*
* File Name : exam00.c
* Author
: Peng Jun
* Date
: 2011-11-28
* Department: R&D Department
* Division
: Projection Division
* Company
: Lida Optical and Electronic Co.,Ltd.
* Descrip.
: 计算某年某月中的天数
* History
:
Version
Date
Changes
*/
/**************************************/
/* Includes
*/
/**************************************/
#include <stdio.h>
#include <stdlib.h>
/**************************************/
/* Defines and Macros
*/
/**************************************/
/**************************************/
/* Variables
*/
/**************************************/
/*****************************************************************************/
/* External Variables
*/
/*****************************************************************************/
/*****************************************************************************/
/* Global Variables
*/
/*****************************************************************************/
/*****************************************************************************/
/* Local Variables
*/
/*****************************************************************************/
static int isLeapYear( int year );
static int getMonthDays( int year, int month );
/**************************************/
/* Functions
*/
/**************************************/
/*****************************************************************************/
/* Global Functions
*/
/*****************************************************************************/
int main()
{
int year = 0;
int month = 0;
while( 1 )
{
printf( "Year,Month: " );
scanf( "%d,%d", &year, &month );
if( month > 0 && month < 13 )
{
printf( "-->%2d\r\n", getMonthDays( year, month ) );
}
else
{
printf( "-->your month is invalid.\r\n" );
}
};
return 0;
}
/*****************************************************************************/
/* Local Functions
*/
/*****************************************************************************/
static int isLeapYear( int year )
{
return ( ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0) );
}
static int getMonthDays( int year, int month )
{
switch( month )
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
return 31;
case 4:
case 6:
case 9:
case 11:
return 30;
case 2:
return (isLeapYear(year) ? (29) : (28));
default:
return 0;
}
}