Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "pch.h"
- #include <iostream>
- #include <string>
- #include <ctime>
- #include <vector>
- using namespace std;
- class Data {
- private:
- int day;
- int month;
- int year;
- string text = "";
- public:
- Data(int d, int m, int y) {
- if (d >= 1 && d <= 31 && m >= 1 && m <= 12) {
- day = d;
- month = m;
- year = y;
- } else {
- day = 1;
- month = 1;
- year = 1970;
- }
- }
- Data() {
- time_t t = time(0);
- tm* now = localtime(&t);
- day = now->tm_mday;
- month = now->tm_mon + 1;
- year = now->tm_year + 1900;
- }
- Data(Data& copy) {
- day = copy.day;
- month = copy.month;
- year = copy.year;
- text = copy.text;
- }
- ~Data() {
- cout << text << endl;
- }
- void addDays(int chosenDay) {
- int daysLeftToMonthsEnd;
- int daysLeftToAddInNextMonth;
- if (month == 12) {
- if (day + chosenDay > 31) {
- daysLeftToMonthsEnd = 31 - day;
- daysLeftToAddInNextMonth = chosenDay - daysLeftToMonthsEnd;
- day = day + daysLeftToMonthsEnd;
- daysLeftToAddInNextMonth = daysLeftToAddInNextMonth - 1;
- month = 1;
- year++;
- day = 1 + daysLeftToAddInNextMonth;
- }
- else {
- day = day + chosenDay;
- }
- }
- if (month == 2) {
- if ((year % 4 == 0 && year % 100 == 0 && year % 400 == 0) || (year % 4 == 0 && year % 100 != 0 && year % 400 != 0)) {
- if (day + chosenDay > 29) {
- daysLeftToMonthsEnd = 29 - day;
- daysLeftToAddInNextMonth = chosenDay - daysLeftToMonthsEnd;
- day = day + daysLeftToMonthsEnd;
- daysLeftToAddInNextMonth = daysLeftToAddInNextMonth - 1;
- month++;
- day = 1 + daysLeftToAddInNextMonth;
- } else {
- day = day + chosenDay;
- }
- }
- if (year % 4 != 0) {
- if (day + chosenDay > 28) {
- daysLeftToMonthsEnd = 28 - day;
- daysLeftToAddInNextMonth = chosenDay - daysLeftToMonthsEnd;
- day = day + daysLeftToMonthsEnd;
- daysLeftToAddInNextMonth = daysLeftToAddInNextMonth - 1;
- month++;
- day = 1 + daysLeftToAddInNextMonth;
- }
- else {
- day = day + chosenDay;
- }
- }
- }
- if ((month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10)) {
- if (day + chosenDay > 31) {
- daysLeftToMonthsEnd = 31 - day;
- daysLeftToAddInNextMonth = chosenDay - daysLeftToMonthsEnd;
- day = day + daysLeftToMonthsEnd;
- daysLeftToAddInNextMonth = daysLeftToAddInNextMonth - 1;
- month++;
- day = 1 + daysLeftToAddInNextMonth;
- } else {
- day = day + chosenDay;
- }
- }
- if ((month == 4 || month == 6 || month == 9 || month == 11)) {
- if (day + chosenDay > 30) {
- daysLeftToMonthsEnd = 30 - day;
- daysLeftToAddInNextMonth = chosenDay - daysLeftToMonthsEnd; //dziala
- day = day + daysLeftToMonthsEnd;
- daysLeftToAddInNextMonth = daysLeftToAddInNextMonth - 1;
- month++;
- day = 1 + daysLeftToAddInNextMonth;
- } else {
- day = day + chosenDay;
- }
- }
- }
- void write() {
- cout << day << "." << month << "." << year << " Przypomnienie: " << text << endl;
- }
- void saveMessage(string message) {
- text = message;
- }
- };
- int main() {
- Data data1;
- Data* data2 = new Data(21, 3, 2019);
- string text;
- data1.write();
- data2->write();
- data1.saveMessage("Tresc przypomnienia");
- data2->saveMessage("Tresc innego przypomnienia");
- cout << "Przypomnienie do daty 1: ";
- getline(cin, text);
- data1.saveMessage(text);
- data1.write();
- cout << "Przypomnienie do daty 2: ";
- getline(cin, text);
- data2->saveMessage(text);
- data2->write();
- cout << "Ile dni chcesz dodac do daty nr 1?\n";
- int y;
- cin >> y;
- data1.addDays(y);
- cout << "Ile dni chcesz dodac do daty nr 2?\n";
- cin >> y;
- data2->addDays(y);
- data1.write();
- data2->write();
- cout << "\n#####################\nKopia daty pierwszej:\n";
- Data data3(data1);
- data3.write();
- cout << "\n#####################\nKopia daty drugiej:\n";
- Data data4(*data2);
- data4.write();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement