<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=%EB%A7%8C%EB%85%84%EB%8B%AC%EB%A0%A5%2F%EA%B0%95%ED%9D%AC%EA%B2%BD%2CLeonardong</id>
	<title>만년달력/강희경,Leonardong - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=%EB%A7%8C%EB%85%84%EB%8B%AC%EB%A0%A5%2F%EA%B0%95%ED%9D%AC%EA%B2%BD%2CLeonardong"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=%EB%A7%8C%EB%85%84%EB%8B%AC%EB%A0%A5/%EA%B0%95%ED%9D%AC%EA%B2%BD,Leonardong&amp;action=history"/>
	<updated>2026-05-15T23:36:43Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=%EB%A7%8C%EB%85%84%EB%8B%AC%EB%A0%A5/%EA%B0%95%ED%9D%AC%EA%B2%BD,Leonardong&amp;diff=50159&amp;oldid=prev</id>
		<title>imported&gt;Unknown at 05:29, 7 February 2021</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=%EB%A7%8C%EB%85%84%EB%8B%AC%EB%A0%A5/%EA%B0%95%ED%9D%AC%EA%B2%BD,Leonardong&amp;diff=50159&amp;oldid=prev"/>
		<updated>2021-02-07T05:29:25Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;데블스 캠프 넷째날 만년달력 코드&lt;br /&gt;
----&lt;br /&gt;
 #include &amp;amp;lt;iostream&amp;amp;gt;&lt;br /&gt;
 #include &amp;amp;lt;climits&amp;amp;gt;&lt;br /&gt;
 using namespace std;&lt;br /&gt;
 void output(int , int);&lt;br /&gt;
 int deter_date(int, int);&lt;br /&gt;
 int lastdays(int, int);&lt;br /&gt;
 int how_much_days(int, int);&lt;br /&gt;
 int main()&lt;br /&gt;
 {&lt;br /&gt;
 	int year, month;&lt;br /&gt;
 	while (true)&lt;br /&gt;
 	{&lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; &amp;quot;연도를 입력하세요 : &amp;quot;;&lt;br /&gt;
 		cin &amp;amp;gt;&amp;amp;gt; year;&lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; &amp;quot;월을 입력하세요 : &amp;quot;;&lt;br /&gt;
 		cin &amp;amp;gt;&amp;amp;gt; month;&lt;br /&gt;
 		if ( !year || !month )&lt;br /&gt;
 			break;&lt;br /&gt;
 		if ( year &amp;amp;lt;= 0 || year &amp;amp;gt;INT_MAX || month &amp;amp;lt;=0 || month&amp;amp;gt;12)&lt;br /&gt;
 		{&lt;br /&gt;
 			cout &amp;amp;lt;&amp;amp;lt; &amp;quot;잘못 입력하셨습니다.&amp;quot; &amp;amp;lt;&amp;amp;lt; endl;&lt;br /&gt;
 			continue;&lt;br /&gt;
 		}&lt;br /&gt;
 		output(year, month);&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	return 0;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void output(int year, int month)&lt;br /&gt;
 {&lt;br /&gt;
 	int days = how_much_days(year, month);&lt;br /&gt;
 	&lt;br /&gt;
 	int date;&lt;br /&gt;
 	if (year%400 != 0)&lt;br /&gt;
 		date = deter_date(year%400, month);&lt;br /&gt;
 	//삽질(?) year%400 대신 year을 쓰면 에러...스택 오버플로우?&lt;br /&gt;
 	//400년주기로 달력이 같으므로 year%400로 해서 해결.&lt;br /&gt;
 	else&lt;br /&gt;
 		date = deter_date(400, month);&lt;br /&gt;
 	cout &amp;amp;lt;&amp;amp;lt; &amp;quot;====================================================&amp;quot; &amp;amp;lt;&amp;amp;lt; endl&lt;br /&gt;
 		 &amp;amp;lt;&amp;amp;lt; &amp;quot;일\t월\t화\t수\t목\t금\t토&amp;quot; &amp;amp;lt;&amp;amp;lt; endl;&lt;br /&gt;
 	for ( int j=0 ; j&amp;amp;lt;date ; j++)	//숫자를 찍기 전에 요일만큼 빈칸을 찍어줌&lt;br /&gt;
 			cout &amp;amp;lt;&amp;amp;lt; &amp;quot;\t&amp;quot;;&lt;br /&gt;
 	for ( int i=0 ; i&amp;amp;lt;days ; i++)	//1에서 days까지 출력&lt;br /&gt;
 	{&lt;br /&gt;
 		if ( date &amp;amp;gt; 6 ){			//토요일을 넘어가면 &lt;br /&gt;
 			cout &amp;amp;lt;&amp;amp;lt; endl;			//다음줄로 가고 &lt;br /&gt;
 			date=0;					//요일을 일요일으로&lt;br /&gt;
 		}&lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; i+1 &amp;amp;lt;&amp;amp;lt; &amp;quot;\t&amp;quot;;&lt;br /&gt;
 		date++;						//보통때는 요일을 증가&lt;br /&gt;
 	}&lt;br /&gt;
 	cout &amp;amp;lt;&amp;amp;lt; endl &amp;amp;lt;&amp;amp;lt; &amp;quot;====================================================&amp;quot; &amp;amp;lt;&amp;amp;lt; endl;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int deter_date(int year, int month )//요일을 정하는 함수(0은 일요일, 6은 토요일)&lt;br /&gt;
 {&lt;br /&gt;
 	if ( month == 0 ){				&lt;br /&gt;
 		year--;&lt;br /&gt;
 		month = 12;&lt;br /&gt;
 	}&lt;br /&gt;
 	else if ( year == 1 &amp;amp;amp;&amp;amp;amp; month == 1)&lt;br /&gt;
 		return 1; // 1년 1월에는 월요일부터 시작&lt;br /&gt;
 &lt;br /&gt;
 	return (lastdays(year,month) + deter_date(year, month-1)) % 7;//핵심 코드&lt;br /&gt;
 	/*&lt;br /&gt;
 	지난 달이 며칠인지를 알고 거기에 지난달이 시작하는 요일을 알면 &lt;br /&gt;
 	이번달이 무슨 요일에서 시작하는지 알 수 있다. 예를 들어 1년 2월 같은 경우&lt;br /&gt;
 	1년 1월이 31일이고 월요일부터 시작하므로 (31 + 1) % 7 == 4 로&lt;br /&gt;
 	목요일부터 시작함을 알 수 있다.&lt;br /&gt;
 	*/&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int lastdays(int year, int month)//지난 달 날수를 계산&lt;br /&gt;
 {&lt;br /&gt;
 	int last;&lt;br /&gt;
 	switch(month)&lt;br /&gt;
 	{&lt;br /&gt;
 		case 3:&lt;br /&gt;
 			if ( year%4 == 0)&lt;br /&gt;
 			{&lt;br /&gt;
 				last = 29;&lt;br /&gt;
 				if ( year%400 == 0 )&lt;br /&gt;
 					last = 29;//윤달&lt;br /&gt;
 				if ( year%4000 == 0 )&lt;br /&gt;
 					last = 28;//평달&lt;br /&gt;
 				else if ( year%100 == 0 )&lt;br /&gt;
 					last = 28;//평달&lt;br /&gt;
 			}&lt;br /&gt;
 			else&lt;br /&gt;
 				last = 28;&lt;br /&gt;
 			break;&lt;br /&gt;
 		case 5:	case 7:	case 10: case 12:&lt;br /&gt;
 			last = 30;&lt;br /&gt;
 			break;&lt;br /&gt;
 		case 1:	case 8:	case 2:&lt;br /&gt;
 			last = 31;&lt;br /&gt;
 			break;&lt;br /&gt;
 		case 4:	case 6:	case 9:	case 11:&lt;br /&gt;
 			last = 31;&lt;br /&gt;
 			break;&lt;br /&gt;
 	}&lt;br /&gt;
 	return last;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int how_much_days(int year, int month)&lt;br /&gt;
 {&lt;br /&gt;
 	int days;&lt;br /&gt;
 	switch(month)//한 달 날짜를 정해줌&lt;br /&gt;
 	{&lt;br /&gt;
 		case 1:	case 3:	case 5:	case 7:	case 8:	case 10: case 12:&lt;br /&gt;
 			days = 31;&lt;br /&gt;
 			break;&lt;br /&gt;
 &lt;br /&gt;
 		case 2:&lt;br /&gt;
 			if ( year%4 == 0)&lt;br /&gt;
 			{&lt;br /&gt;
 				days = 29;&lt;br /&gt;
 				if ( year%400 == 0 )&lt;br /&gt;
 					days = 29;//윤달인경우&lt;br /&gt;
 				if ( year%4000 == 0)&lt;br /&gt;
 					days = 28;//평달인 경우&lt;br /&gt;
 				else if ( year%100 == 0 )&lt;br /&gt;
 					days = 28;//평달인경우&lt;br /&gt;
 			}&lt;br /&gt;
 			else//평달인 경우&lt;br /&gt;
 				days = 28;&lt;br /&gt;
 			break;&lt;br /&gt;
 		case 4:	case 6:	case 9:	case 11:&lt;br /&gt;
 			days = 30;&lt;br /&gt;
 			break;&lt;br /&gt;
 	}&lt;br /&gt;
 	return days;&lt;br /&gt;
 }&lt;br /&gt;
네이버에서 만년달력 검색하다가 들어오게된 페이지. 하하하 - [[이승한]]&lt;br /&gt;
----&lt;br /&gt;
[[데블스캠프2003/넷째날]] [[만년달력]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;Unknown</name></author>
	</entry>
</feed>