«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

ITGenerations

[c++] p144. n2. 날짜를 다루는 Date 클래스를 작성하고자 한다. ~ 본문

프로그래밍/c++ 명품프로그래밍

[c++] p144. n2. 날짜를 다루는 Date 클래스를 작성하고자 한다. ~

ITGenerations 2017. 11. 23. 18:47

날짜를 다루는 Date 클래스를 작성하고자 한다. Date를 이용하는 main()과 실행결과는 다음과 같다.

클래스 Date를 작성하여 아래 프로그램에 추가하라.


#include <iostream> 

#include <string> 

using namespace std;


//클래스 선언

class Date {

int year, month, day;

public:

Date(int year, int month, int day);

Date(string date);

int getYear() {

return year;

}

int getMonth() {

return month;

}

int getDay() {

return day;

}

void show();

};


// this 포인터 birth 

Date::Date(int year, int month, int day) {

this->year = year;

this->month = month;

this->day = day;

}



// independenceDay 

Date::Date(string date)

{

int index = date.find_first_of("/"); // '/'가 처음 발견하는 인덱스를 찾는다.

string sub_str = date.substr(0, index); // 인덱스 0에서 index개수의 문자로 구성한 부문 문자열 추출

year = atoi(sub_str.c_str()); // sub_str의 문자열을 정수로 변경

date = date.substr(index + 1); // index+1 이후의 부분 문자열을 추출하여 date에 대입


index = date.find_first_of("/"); // '/'가 처음 발견하는 인덱스를 찾는다.

sub_str = date.substr(0, index); // 인덱스 0에서 index개수의 문자로 구성한 부문 문자열 추출

month = atoi(sub_str.c_str()); // sub_str의 문자열을 정수로 변경

date = date.substr(index + 1); // index+1 이후의 부분 문자열을 추출하여 date에 대입

day = atoi(sub_str.c_str()); // sub_str의 문자열을 정수로 변경

}


void Date::show() {

cout << year << "년 " << month << "월 " << day << endl;

}


int main() {

Date birth(2014, 3, 20);

Date independenceDay("1945/10/15");

independenceDay.show();

//birth 

cout << birth.getYear() << ',' << birth.getMonth() << ',' << birth.getDay() << endl;

}