텍스트 파일에는 날짜들이 들어 있고요.
2012 2 22 //기준날짜
2012 2 25
2012 3 25 이런식으로요..
이걸 읽어서 두번쨰줄부터 기준날짜랑 비교해서 + 몇일 차이.. 혹은 - 몇일 차이 이런식으로 표현하는건데..
날짜를 증가시키는 함수랑 비교하는 함수좀 도와주시면 너무너무감사하겠습니다..
제가 짜본건데 간략하게 올려볼게요 ㅜㅜ
참 열거형을 사용하라고 소스를 올려준게 있습니다!
비교하고 날짜를 증가시키는 함수 뺴고는 제가 할수 있어서 해봤습니다ㅜㅜ
#include <iostream>
#include <fstream>
using namespace std;
enum RelationType {LESS, EQUAL, GREATER};
class DateType
{
public:
DateType();
int getYear() const;
int getMonth() const;
int getDay() const ;
void setYear(int newYear);
void setMonth(int newMonth);
void setDay(int newDay);
void setDate(int newYear, int newMonth, int newDay);
RelationType compareTo(DateType newDate);
void incrementDate(); // 현재의 날짜를 하나 증가
long countDate(DateType newDate); // 현재의 날짜와 newDate와의 날짜를 계산
private:
int year;
int month;
int day;
};
void DateType::setYear(int year)
{
year=year;
}
void DateType::setMonth(int month)
{
month=month;
}
void DateType::setDay(int day)
{
day=day;
}
DateType::DateType()
{
int year=0;
int month =0;
int day =0;
}
void DateType::setDate(int year_, int month_, int day_)
{
year=year_;
month= month_;
day= day_;
}
int DateType::getYear() const
{
return year;
}
int DateType::getMonth() const
{
return month;
}
int DateType::getDay() const
{
return day;
}
RelationType DateType::compareTo(DateType newDate)
{
if (year < newDate.year)
return LESS;
else if (year > newDate.year)
return GREATER;
else if (month < newDate.month)
return LESS;
else if (month > newDate.month)
return GREATER;
else if (day < newDate.day)
return LESS;
else if (day > newDate.day)
return GREATER;
else
return EQUAL;
}
void incrementDate();
// 현재의 날짜를 하나 증가
long countDate(DateType newDate);
// 현재의 날짜와 newDate와의 날짜를 계산
void getInputData(istream& infile, DateType d[], int& num);
void printData(istream& infile, DateType d[], int num);
void getline(istream& infile, int num);
int main()
{
const int Data_num = 22;
int count=0;
fstream infile;
infile.open("input.txt");
DateType *DateTypes = new DateType[Data_num];
getInputData(infile, DateTypes, count);
printData(infile, DateTypes, count);
infile.close();
return 0;
delete [] DateTypes;
}
void getInputData(istream & infile, DateType d[], int & num)
{
int i=0;
int year, month, day;
while(!infile.eof())
{
infile >> year >> month >> day;
d[i++].setDate(year, month, day);
num++;
}
}
void printData(istream& infile, DateType d[], int num)
{cout<<"input data" <<endl;
for(int i=0; i<num; i++)
{
cout<<d[i].getYear() <<"\t"<< d[i].getMonth()<<"\t"<<d[i].getDay()<<endl;
}cout<<endl<<endl;
}
열거형을 써서 하라는데 어떤식으로 함수를 호출할지 인자를 어떻게 전달할지 감이 안잡힙시다 도와주세요ㅜㅜ