Search

'Calendar'에 해당되는 글 1건

  1. 2013.08.02 C언어 달력 소스코드

C언어 달력 소스코드

Programming/C,CPP,CS 2013. 8. 2. 17:51 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
/*
 * main.c

 *
 *  Created on: 2013. 8. 1.
 *      Author: Administrator
 */
#include 
int monthDay(int year, int month) {
	int result;

	if (month == 1 || month == 3 || month == 

5 || month == 7 || month == 8
			|| month == 10 || 

month == 12) {
		result = 31;
	} else if (month == 4 || month == 6 || 

month == 9 || month == 11) {
		result = 30;
	} else if (month == 2) {
		if (((year % 4 == 0) && (year % 

100 != 0)) || (year % 400 == 0)) {
			result = 29;
		} else {
			result = 28;
		}
	}

	return result;
}
int monthDayName( year, month) {
	int result;
	int dayCount = 0;
	int i, j;
	// 기준점 : 1900년 1월 1일 은 월요일이다.
	// 월요일 : 2

	// 1 : 일요일
	// 2 : 월요일
	// 3 : 화요일
	// 4 : 수요일
	// 5 : 목요일
	// 6 : 금요일
	// 7 : 토요일

	// 1903
	for (j = 1900; j < year; j++) {
		for (i = 1; i < 13; i++) {
			dayCount += 

monthDay(j, i);
		}
	}
	// 2013 3
	// 2013 +1
	// 2013 +2
	for (i = 1; i < month; i++) {
		dayCount += monthDay(year, 

i);
	}

	result = (dayCount + 2) % 7;
	return result;
}
void printTitle(int year, int month) {
	printf("\n       %d 년 %d 월 \n", year, 

month);
	printf("일  월  화  수  목  금  토\n");
}
void printBody(int year, int month) {
	int dayName;
	int i;
	dayName = monthDayName(year, month);
	for (i = 1; i < dayName; i++) {
		printf("    ");
		fflush(stdout);
	}

	for (i = 1; i < monthDay(year, month); 

i++) {
		printf("%2d  ", i);
		fflush(stdout);
		if ((dayName + i - 1) % 7 == 0) {
			printf("\n");
			fflush(stdout);
		}
	}

}
int main() {

	int month;			// 

사용자로부터 입력 받을 값 저장
	int year;			// 사용자로부

터 입력 받을 값 저장
	int totalDay;		// n! 를 구한 

결과값
	int dayName;		// n! 를 구한 

결과값

	printf("일자를 구할 연도를 입력하세요 : ");
	fflush(stdout);
	scanf("%d", &year);
	printf("일자를 구할 달을 입력하세요 : ");
	fflush(stdout);
	scanf("%d", &month);

	totalDay = monthDay(year, month);

	dayName = monthDayName(year, month);

	printf("%d 년 %d 월은 총 %d일 입니다.\n", 

year, month, totalDay);

	switch (dayName) {
	case 1:
		printf("%d 년 %d 월 1일은 일요일 

입니다.\n", year, month);
		break;
	case 2:
		printf("%d 년 %d 월 1일은 월요일 

입니다.\n", year, month);
		break;
	case 3:
		printf("%d 년 %d 월 1일은 화요일 

입니다.\n", year, month);
		break;
	case 4:
		printf("%d 년 %d 월 1일은 수요일 

입니다.\n", year, month);
		break;
	case 5:
		printf("%d 년 %d 월 1일은 목요일 

입니다.\n", year, month);
		break;
	case 6:
		printf("%d 년 %d 월 1일은 금요일 

입니다.\n", year, month);
		break;
	case 0:
		printf("%d 년 %d 월 1일은 토요일 

입니다.\n", year, month);
		break;
	}

	printTitle(year, month);
	printBody(year, month);

	return 0;
}