달력 만들기 실습 결과

실습과제 모음 2013. 12. 15. 11:22 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
#include 
#include 
using namespace std;

int leapYear(int year);
// 리턴값 1 : 윤년
// 리턴값 0 : 평년

int dayByYear(int year);
//  0    1    2   3    4    5   6
// "일","월","화","수","목","금","토"

int dayByMonthYear(int year, int month);
//  0    1    2   3    4    5   6
// "일","월","화","수","목","금","토"

int totalDayCountByMonthYear(int year, int month);

int main()
{
	char* week[7] = {"일","월","화","수","목","금","토"};	
	int year, month;
	printf("연도를 입력하세요 : ");
	scanf("%d", &year);
	printf("월을 입력하세요 : ");
	scanf("%d", &month);
	printf("%s\n", week[dayByMonthYear(year, month)]);
	
	printf("%5s%5s%5s%5s%5s%5s%5s\n", 
		"일","월","화","수","목","금","토");
	for( int i = 0 ; i < dayByMonthYear(year, month) ; i++ )
	{
		printf("     ");
	}
	int wcount = dayByMonthYear(year, month);
	for ( int i = 1 ; i <= totalDayCountByMonthYear(year, month) ; i++ )
	{
		
		printf("%5d", i);
		if( wcount%7 == 6)
		{
			printf("\n");
		}
		wcount++;
	}

	return 0; 
}
int totalDayCountByMonthYear(int year, int month)
{
	switch(month)
	{
	case 1:
	case 3:
	case 5:
	case 7:
	case 8:
	case 10:
	case 12:
		return 31;
	case 2:
		if( leapYear(year) )
		{
			return 29;
		}
		else
		{
			return 28;
		}
	default:
		return 30;
	}
}
int dayByMonthYear(int year, int month)
{	
	int wcount=0;
	wcount=(365*year + year/4 - year/100 + year/400)%7;
	// 0 ~ 6
	for( int i = 1 ; i < month ; i++ )
	{
		wcount += totalDayCountByMonthYear(year, i);
	}
	// 30 ~ 300
	wcount %= 7;
	return wcount;
}
int dayByYear(int year){
	int wcount=0;
	wcount=(365*year + year/4 - year/100 + year/400)%7;
	return wcount;
}
int leapYear(int year)
{
	if( year % 4 == 0)
	{
		if( year % 100 == 0)
		{
			if( year % 400 == 0 )
			{
				return 1;
				// 윤년
			}
			else
			{
				return 0;
				// 평년
			}
		}
		else
		{
			return 1;
			// 윤년
		}
	}
	else
	{
		return 0;
		// 평년
	}
}




'실습과제 모음' 카테고리의 다른 글

실습과제 모음  (0) 2013.12.31
CPP 함수 실습  (0) 2013.12.22
달력 만들기 실습  (1) 2013.12.15
게시판에 간단한 채팅방 만들기  (0) 2013.11.28
JAVA 실습 2013 11 23  (0) 2013.11.23