C언어 달력소스코드

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

#include <iostream>
using namespace std;
int totalYearDay(int year);
int totalMonthDay(int year, int month);

int main()
{
 // 입력 : 년도 와 월
 // 년도 : int
 // 월 : int
 int year;
 int month;
 int monthDay = 0;
 cout << "년도를 입력하세요 : " ;
 cin >> year;
 cout << "월을 입력하세요 : ";
 cin >> month;


 switch(month)
 {
 case 1:
 case 3:
 case 5:
 case 7:
 case 8:
 case 10:
 case 12:
  monthDay = 31;
  break;
 case 2:
  if( (year % 4 == 0 && year % 100 != 0) || year % 400 == 0 )
  {
   monthDay = 29;
  }
  else
  {
   monthDay = 28;
  }
  break;
 default:
  monthDay = 30;
 }

 cout << year << "년 " << month << "월은 총 " << monthDay << "일 입니다." << endl;
 cout << "1900 년 부터 " << year << " 년 까지 총 일수는 " << totalYearDay(year) << endl;
 cout << year << " 년 1월 1일은 " ;
 switch( totalYearDay(year) % 7 )
 {
 case 1:
  cout << "화요일" << endl;
  break;
 case 2:
  cout << "수요일" << endl;
  break;
 case 3:
  cout << "목요일" << endl;
  break;
 case 4:
  cout << "금요일" << endl;
  break;
 case 5:
  cout << "토요일" << endl;
  break;
 case 6:
  cout << "일요일" << endl;
  break;
 case 0:
  cout << "월요일" << endl;
  break;
 }
 cout << year << " 년 "<< month << "월 1일은 " ;
 switch((totalYearDay(year) + totalMonthDay(year,month)) % 7 )
 {
 case 1:
  cout << "화요일" << endl;
  break;
 case 2:
  cout << "수요일" << endl;
  break;
 case 3:
  cout << "목요일" << endl;
  break;
 case 4:
  cout << "금요일" << endl;
  break;
 case 5:
  cout << "토요일" << endl;
  break;
 case 6:
  cout << "일요일" << endl;
  break;
 case 0:
  cout << "월요일" << endl;
  break;
 }
}


int totalYearDay(int year)
{
 int totalDay = 0;
 int i;

 for( i = 1900; i < year ; i++ )
 {
  if ( (i % 4 == 0 && i % 100 != 0) || i % 400 == 0 )
  {
   totalDay += 366;
  }
  else
  {
   totalDay += 365;
  }
 }
 return totalDay;
}
int totalMonthDay(int year, int month)
{
 int totalDay = 0;
 int i;

 // TODO totalDay 를 구하시오.

 for( i = 1; i < month ; i++ )
 {
  switch(i)
  {
  case 1:
  case 3:
  case 5:
  case 7:
  case 8:
  case 10:
  case 12:
   totalDay += 31;
   break;
  case 2:
   if( (year % 4 == 0 && year % 100 != 0) || year % 400 == 0 )
   {
    totalDay += 29;
   }
   else
   {
    totalDay += 28;
   }
   break;
  default:
   totalDay += 30;
  }
 }
 return totalDay;
}

'Programming > C,CPP,CS' 카테고리의 다른 글

CPP string 줄단위 입력  (0) 2013.01.26
링크드리스트 학생관리  (0) 2013.01.19
C 실습과제  (0) 2012.11.17
프로그래밍 경진대회 관련 사이트  (0) 2012.10.14
CPP 예외처리  (0) 2012.09.23