초급활용에서의 달력예제...
함수들로 이뤄진상태에서 클래스로 전환..
처음에 클래스로 상속?을 하려는 뻘짓을 하다..아직은 무리수라 판단..그냥..몸체만 클래스....아무튼..
#include<iostream>
#include<conio.h>
using namespace std;
enum Day{SUN, MON, TUE, WED, THU, FRI, SAT};
class Calendar
{
public:
Calendar() {}
bool YearSearch(int year) //윤년계산기
{
if((year%4!=0) && (year%100==0) || (year%400!=0)) //윤년이 아니라면.. true반환
{
return true;
}
else
return false;
}
bool MonthSearch(int i)
{
if(i==1 || i==3 || i==5 || i==7 || i==8 || i==10 || i==12)
{
return true;
}
else
return false;
}
int YearPlus(int year) //1년부터 지금까지 합..
{
int temp=0;
for(int i=1;i<year;i++)
{
if(YearSearch(i))
{
temp+=365;
}
else
{
temp+=366;
}
}
return temp;
}
int YearMonth(int year, int month) //달별 숫자 합
{
int temp=0;
for(int i=1;i<=month-1;i++)
{
if(i==1 || i==3 || i==5 || i==7 || i==8 || i==10 || i==12)
{
temp+=31;
}
else if(i==4 || i==6 || i==9 || i==11)
{
temp+=30;
}
else if(i==2)
{
if(YearSearch(i))
{
temp+=28;
}
else
temp+=29;
}
}
return temp;
}
int DaySearch(int day)
{
int temp=0;
temp=(day+1)%7;
return temp;
}
void Total(int year, int month)
{
int day=DaySearch((YearPlus(year))+(YearMonth(year,month)));
int mymonth=0;
cout << "\t" << year << "년" << "---" << month << "---" << endl;
cout << "일\t월\t화\t수\t목\t금\t토\t" << endl;
for(int i=0;i<day;i++)
{
cout << "\t";
}
if(MonthSearch(month))
{
mymonth=31;
}
else if(month==2)
{
if(YearSearch(year))
{
mymonth=28;
}
else
{
mymonth=29;
}
}
else
{
mymonth=30;
}
for(int j=1;j<=mymonth;j++)
{
cout << j <<"\t";
if((day+j)%7==0)
{
cout << endl;
}
}
cout << endl;
}
};
int main()
{
Calendar p;
for(int i=1;i<6;i++)
{
p.Total(2013,i);
}
getch();
return 0;
}
이런식으로 출력....뭐...이렇다는..