/*
* http://sosal.tistory.com/
* made by so_Sal
*/
#include <iostream>
#include <ctime>
using namespace std;
class date{
private:
int year, month, day; // default is private
int max_day[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
//각 month의 최대 day입니다.
public:
date(); //생성자 함수
void set_date(int y, int m, int d);
void prev_day();
void next_day();
void print_date(); // 모든 함수는 main함수 아래에 정의되어 있습니다.
};
int main(){
date t; //date 클레스의 객체 t를 하나 선언합니다.
int s; //s는 메뉴 번호를 입력받을 번호
while(true){ //menu함수를 따로 만들지 않고 메인에서 구성하였습니다.
cout<<"menu :: 1(show) 2(set) 3(prev day) 4(next day) 5(quit)"<<endl;
cin >> s;
if (s==5) break;
switch (s){ //입력받은 번호에 따른 결과값입니다.
case 1:
t.print_date();
break;
case 2:
cout<<"enter\tyear,\tmonth,\tday\n"<<endl;
int y,m,d;
cin >>y>>m>>d;
t.set_date(y,m,d); //입력받은 변수를 date객체 t에 set_date
//함수를 이용하여 객체에 전달
break;
case 3:
t.prev_day();
break;
case 4:
t.next_day();
break;
} //입력받은 s에 따라서 case 구조를 이용하여 객체 내의 함수를 호출합니다.
}
return 0;
}
date::date()
{
time_t cur_time; // 현재시각이 들어가는 timne_t형식의 자료형 cur_time 변수
struct tm* pTime; // 시간 구조체
time(&cur_time); // 현재 시각..
pTime = localtime(&cur_time);// 로컬의 시간을 넣음
year = pTime->tm_year+1900; // year
month = pTime->tm_mon+1; // month
day = pTime->tm_mday; // day
//0번째 달은 쓰지 않음으로 13개의 배열에 0번을 0으로..
}
//생성자 함수 :: 현재 로컬의 시간을 private 변수에 담아주는 역할
void date::set_date(int y, int m, int d){
year = y;
month = m;
day = d;
}
//현재
void date::prev_day(){
day-=1; //하루 전날로 돌린다.
if (day<=0){ // month should decreased
day = max_day[month-1];
month -= 1;
if (month <= 0) { // year must be increased
month = 12;
year -= 1;
day = max_day[month];
}
}
}//날짜를 하루 전으로 바꿈. 1일일때 if절 안에서 day에 따른 month year 변화
void date::next_day(){
day+=1;
if (day >max_day[month]){ // month should increased
day = 1;
month += 1;
if (month > 12) { // year must be increased
month = 1;
year += 1;
}
}
}//날짜를 하루 앞으로 바꿈.
void date::print_date()
{
//printf("year: %d month: %d day: %d\n",year, month,day);
cout<<"Year :: "<<year<<" Month ::"<<month<<" Day :: "<<day<<endl;
}
'Programing > C- programing' 카테고리의 다른 글
C++ 배열에서 원하는 문자열 찾아서 고치기 바꾸기 (1) | 2009.10.15 |
---|---|
C++ 배열에서 원하는 크기 삭제 프로그램 코드 (1) | 2009.10.15 |
C++ Class 생성자 소멸자 간단한 코드 (2) | 2009.10.13 |
C언어 String과, 관련함수 function (2) | 2009.09.29 |
Pointer * Reference (2) | 2009.09.29 |