진정한 아트를 못알아본 상욱이형이 태클건거.
DeleteMe) 나두 태클 걸고 싶네...ㅡ.ㅡ;; - 재니

~cpp 
#include <iostream>
using namespace std;

int def_max_month(int temp_year, int temp_month);

int array[100000][12]; 

void main()
{
	int temp_sum = 0;
	int year,month;
	
	cout << "원하는 년도를 입력 하세요 = " ;
	cin >> year;
	cout << "원하는 달을 입력 하세요 = " ;
	cin >> month;

	cout << "Mon \tTue\t Wed\t Thu\t Fri\t Sat\t Sun\n";
	for (int y = 1 ; y < year ; y++) // 여기서부터(1)
		for (int i = 1 ; i < 13 ; i++)
			array[y][i] = def_max_month(y,i);

	for (int a = 1 ; a < month ; a++)
		array[year][a] = def_max_month(year,a);
	
	for (int k = 1 ; k < year ; k++)
		for (int te=1 ; te < 13 ; te++)
			temp_sum = temp_sum + array[k][te];
	
	for (int b = 1 ; b < month ; b++)
		temp_sum = temp_sum + array[year][b]; // 여기까지(1)
		                                      // 입력받은 전달까지 총 일수를 더함.
										

	int start = temp_sum % 7;
	int start_copy = start;

	int calen[6][7];


	int one = 1;

	for (int m = 0 ; m < 6 ; m++)
	{
		for (int n = 0 ; n < 7 ; n++)
		{
			if (m == 0 && start < 7)
			{
				calen[m][start] = one;
				start ++;
				one ++;
			}
			if (m >= 1)
			{
				calen[m][n] = one;
				one ++;
			}
		}
	}

	int cc = 0;

	start = start_copy;
	
	int count = 0;
		for (m=0; m < 6 ; m++)
		{
			for (int n=0; n < 7 ; n++)
			{
				if (calen[m][n] <= def_max_month(year,month))
				{
					if (m == 0 && start < 7)
					{
						
						while (cc < start_copy)
						{
							cout << "\t";
							cc++;
						}
						cout << calen[0][start];
							cout << "\t";
						start ++;
					}
					if (m >= 1)
					{
						cout << calen[m][n];
						cout << "\t";
					}
				}
			}
			cout << endl;
		}
	cout << endl;
}

int def_max_month(int temp_year, int temp_month) // 년도를 전달 받아서 그 년도 각각 달의 일수 결정
{
	switch (temp_month)
	{
		case 1 : temp_month = 31;
				 break;
		case 2 : if (temp_year % 4 == 0)
				 {
					 if (temp_year % 100 == 0)
					 {
						if (temp_year % 400 == 0)
						{
							if (temp_year % 4000 == 0)
							{
								temp_month = 28;
							}
							else
								temp_month = 29;
						}
						else
							temp_month = 28;
					 }
					 else 
						temp_month = 29;

								
				}
				else temp_month=28;
				break;
		case 3 : 
			temp_month = 31;
			break;
		case 4 : 
			temp_month = 30;
			break;
		case 5 : 
			temp_month = 31;
			break;
		case 6 : 
			temp_month = 30;
			break;
		case 7 : 
			temp_month = 31;
			break;
		case 8 : 
			temp_month = 31;
			break;
		case 9 : 
			temp_month = 30;
			break;
		case 10 : 
			temp_month = 31;
			break;
		case 11 : 
			temp_month = 30;
			break;
		case 12 : 
			temp_month = 31;
			break;
	}
	return temp_month;
}


만년달력 방선희 장창재 진정한 아트란?

데블스캠프2003/넷째날
Retrieved from http://wiki.zeropage.org/wiki.php/만년달력/방선희,장창재
last modified 2021-02-07 05:29:25