U E D R , A S I H C RSS

만년달력/손동일,aekae



~cpp 
#include <iostream>
using namespace std;

int main()
{
	int year,month;

	cin >> year >> month;	// 

	int i,j,a;

	int arr[6][7]={{'0',},}; 

	int ThirtyOne=0;		

	for (i=1; i<month; i++)		// ThirtyOne : month   31   
		if (i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12)
			ThirtyOne++;
	
	if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12)
		a = 31;
	else if (month == 4 || month == 6 || month == 9 || month == 11)
		a = 30;
	else
		a = 0;					// a :      .
	
	int two = year / 4 - year / 100 + year / 400;	 // year   

	int XOR;

	if (month > 2)					//  
	{
		if (year % 4 == 0)
		{
			if (year % 100 == 0)
			{
				if (year % 400 == 0)
				{
					XOR = +1;
					if (a==0)
					a = 29;
				}
				else
				{
					XOR = +2;
					if (a==0)
					a = 28;
				}
			}
		}
		else
		{
			XOR = +2;
			if (a==0)
			a = 28;
		}
	}
	
	// first  // 1 1
	int day = (((year-1) * 365 + two) + ((month-1) * 30 + ThirtyOne - XOR)) % 7;

	int first = day + 1;
	
	if (first == 7)
		first = 0;
	
	int y = 1;			// .. 1-28,29,30,31

	i=0;

	int first_ = first;

	for (first; first<7; first++)		//     
	{
		arr[i][first] =y;
		y++;
	}
	
	for (i=1; i<6; i++)					//      
	{
		for (j=0; j<7; j++) 	//first 1+  7 ..
		{
			arr[i][j] = y;
			y++;
		}
	}
		
	cout << "\t\t화\t\t\t\t토" << endl;
	cout << "-----------------------------------------------------" << endl;
	
	i=0;

	for(int h=0; h<first_; h++)
		cout << "\t";

	for (first_; first_<7; first_++)		//     
	{
		cout << arr[i][first_] << "\t";
	}
	
	cout << "\n";

	for (i=1; i<6; i++)					//      
	{
		for (j=0; j<7; j++)		//first 1+  7 ..
		{
			if (arr[i][j] >	a)
			{
				cout << "\n";
				return 0;
			} 
			cout << arr[i][j] << "\t";
		}
		cout << "\n";
	}
	return 0;
}

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:29:25
Processing time 0.0108 sec