adding the date class files
This commit is contained in:
86
lectures/03_classes_I/date.cpp
Normal file
86
lectures/03_classes_I/date.cpp
Normal file
@@ -0,0 +1,86 @@
|
||||
// File: date.cpp
|
||||
// Purpose: Implementation file for the Date class.
|
||||
|
||||
#include <iostream>
|
||||
#include "date.h"
|
||||
|
||||
// array to figure out the number of days, it's used by the auxiliary function daysInMonth
|
||||
const int DaysInMonth[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
|
||||
|
||||
Date::Date() { //default constructor
|
||||
day = 1;
|
||||
month = 1;
|
||||
year = 1900;
|
||||
}
|
||||
|
||||
Date::Date(int aMonth, int aDay, int aYear) { // construct from month, day, & year
|
||||
month = aMonth;
|
||||
day = aDay;
|
||||
year = aYear;
|
||||
}
|
||||
|
||||
|
||||
int Date::getDay() const {
|
||||
return day;
|
||||
}
|
||||
|
||||
int Date::getMonth() const {
|
||||
return month;
|
||||
}
|
||||
|
||||
int Date::getYear() const {
|
||||
return year;
|
||||
}
|
||||
|
||||
void Date::setDay(int d) {
|
||||
day = d;
|
||||
}
|
||||
|
||||
void Date::setMonth(int m) {
|
||||
month = m;
|
||||
}
|
||||
|
||||
void Date::setYear(int y) {
|
||||
year = y;
|
||||
}
|
||||
|
||||
void Date::increment() {
|
||||
if (!isLastDayInMonth()) {
|
||||
day++;
|
||||
} else {
|
||||
day = 1;
|
||||
if (month == 12) { // December
|
||||
month = 1;
|
||||
year++;
|
||||
} else {
|
||||
month++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool Date::isEqual(const Date& date2) const {
|
||||
return day == date2.day && month == date2.month && year == date2.year;
|
||||
}
|
||||
|
||||
bool Date::isLeapYear() const {
|
||||
return (year%4 ==0 && year % 100 != 0) || year%400 == 0;
|
||||
}
|
||||
|
||||
int Date::lastDayInMonth() const {
|
||||
if (month == 2 && isLeapYear())
|
||||
return 29;
|
||||
else
|
||||
return DaysInMonth[ month ];
|
||||
}
|
||||
|
||||
bool Date::isLastDayInMonth() const {
|
||||
return day == lastDayInMonth(); // uses member function
|
||||
}
|
||||
|
||||
void Date::print() const {
|
||||
std::cout << month << "/" << day << "/" << year;
|
||||
}
|
||||
|
||||
bool sameDay(const Date& date1, const Date& date2) {
|
||||
return date1.getDay() == date2.getDay() && date1.getMonth() == date2.getMonth();
|
||||
}
|
||||
Reference in New Issue
Block a user