#ifndef TIMEINFORMATION_H_ #define TIMEINFORMATION_H_ #include #include #include #include using std::string; template class TimeInformation { protected: I year, month, dayOfMonth; void setupTime(); public: TimeInformation(); I retrieveYear() const; I retrieveMonth() const; I retrieveDayOfMonth() const; string dateString() const; }; template TimeInformation::TimeInformation() { srand(time(0)); setupTime(); } template void TimeInformation::setupTime() { time_t epochTime = time(0); tm* currentTime = localtime(&epochTime); year = 1900 + currentTime->tm_year; month = 1 + currentTime->tm_mon; dayOfMonth = currentTime->tm_mday; } template I TimeInformation::retrieveYear() const { return year; } template I TimeInformation::retrieveMonth() const { return month; } template I TimeInformation::retrieveDayOfMonth() const { return dayOfMonth; } template string TimeInformation::dateString() const { string dateString; if (month<10 && dayOfMonth<10) { dateString.assign(std::to_string(year)); dateString.append("0"+std::to_string(month)); dateString.append("0"+std::to_string(dayOfMonth)); } else if (month<10 && dayOfMonth>=10) { dateString.assign(std::to_string(year)); dateString.append("0"+std::to_string(month)); dateString.append(std::to_string(dayOfMonth)); } else if (month>=10 && dayOfMonth<10) { dateString.assign(std::to_string(year)); dateString.append(std::to_string(month)); dateString.append("0"+std::to_string(dayOfMonth)); } else { dateString.assign(std::to_string(year)); dateString.append(std::to_string(month)); dateString.append(std::to_string(dayOfMonth)); } return dateString; } #endif