Untitled
unknown
plain_text
a year ago
5.1 kB
5
Indexable
#ifndef MYDATE_H
#define MYDATE_H
#include <string>
class MyDate {
private:
int day;
int month;
int year;
static const std::string monthNames[12];
static const std::string dayNames[7];
static int daysInMonth[12];
public:
MyDate();
MyDate(int dd, int mm, int yy);
// Getters and setters
int getDay() const;
void setDay(int day);
int getMonth() const;
void setMonth(int month);
int getYear() const;
void setYear(int year);
// Methods to display date information
void displayDate() const;
void displayMonthName() const;
void displayDayOfWeek() const;
// Static method to calculate day of the week
static int calculateDayOfWeek(int dd, int mm, int yy);
};
#endif
//////////////////////////
#include "MyDate.h"
#include <iostream>
// Static member initialization
const std::string MyDate::monthNames[12] = {
"January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November", "December"
};
const std::string MyDate::dayNames[7] = {
"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"
};
int MyDate::daysInMonth[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
// Default constructor
MyDate::MyDate() : day(1), month(1), year(2000) {}
// Parameterized constructor
MyDate::MyDate(int dd, int mm, int yy) : day(dd), month(mm), year(yy) {}
// Getters and setters
int MyDate::getDay() const {
return day;
}
void MyDate::setDay(int day) {
this->day = day;
}
int MyDate::getMonth() const {
return month;
}
void MyDate::setMonth(int month) {
this->month = month;
}
int MyDate::getYear() const {
return year;
}
void MyDate::setYear(int year) {
this->year = year;
}
// Method to display date in dd/mm/yyyy format
void MyDate::displayDate() const {
std::cout << (day < 10 ? "0" : "") << day << "/"
<< (month < 10 ? "0" : "") << month << "/"
<< year << std::endl;
}
// Method to display month name
void MyDate::displayMonthName() const {
if (month >= 1 && month <= 12) {
std::cout << monthNames[month - 1] << std::endl;
} else {
std::cout << "Invalid month" << std::endl;
}
}
// Method to display day of the week
void MyDate::displayDayOfWeek() const {
int dayOfWeek = calculateDayOfWeek(day, month, year);
std::cout << dayNames[dayOfWeek] << std::endl;
}
// Static method to calculate day of the week using Zeller's Congruence
int MyDate::calculateDayOfWeek(int dd, int mm, int yy) {
if (mm < 3) {
mm += 12;
yy -= 1;
}
int k = yy % 100;
int j = yy / 100;
int h = (dd + 13*(mm + 1)/5 + k + k/4 + j/4 + 5*j) % 7;
return (h + 5) % 7; // Adjusting for the different indexing of Zeller's Congruence
}
///////////////////////////////
#include "MyDate.h"
#include <iostream>
// Static member initialization
const std::string MyDate::monthNames[12] = {
"January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November", "December"
};
const std::string MyDate::dayNames[7] = {
"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"
};
int MyDate::daysInMonth[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
// Default constructor
MyDate::MyDate() : day(1), month(1), year(2000) {}
// Parameterized constructor
MyDate::MyDate(int dd, int mm, int yy) : day(dd), month(mm), year(yy) {}
// Getters and setters
int MyDate::getDay() const {
return day;
}
void MyDate::setDay(int day) {
this->day = day;
}
int MyDate::getMonth() const {
return month;
}
void MyDate::setMonth(int month) {
this->month = month;
}
int MyDate::getYear() const {
return year;
}
void MyDate::setYear(int year) {
this->year = year;
}
// Method to display date in dd/mm/yyyy format
void MyDate::displayDate() const {
std::cout << (day < 10 ? "0" : "") << day << "/"
<< (month < 10 ? "0" : "") << month << "/"
<< year << std::endl;
}
// Method to display month name
void MyDate::displayMonthName() const {
if (month >= 1 && month <= 12) {
std::cout << monthNames[month - 1] << std::endl;
} else {
std::cout << "Invalid month" << std::endl;
}
}
// Method to display day of the week
void MyDate::displayDayOfWeek() const {
int dayOfWeek = calculateDayOfWeek(day, month, year);
std::cout << dayNames[dayOfWeek] << std::endl;
}
// Static method to calculate day of the week using Zeller's Congruence
int MyDate::calculateDayOfWeek(int dd, int mm, int yy) {
if (mm < 3) {
mm += 12;
yy -= 1;
}
int k = yy % 100;
int j = yy / 100;
int h = (dd + 13*(mm + 1)/5 + k + k/4 + j/4 + 5*j) % 7;
return (h + 5) % 7; // Adjusting for the different indexing of Zeller's Congruence
}
Editor is loading...
Leave a Comment