Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // date.cpp: определяет точку входа для консольного приложения.
- //
- #include "stdafx.h"
- #include <iostream>
- using namespace std;
- struct data1
- {
- int day, month, year;
- bool setdate(int d, int m, int y);
- void show();
- void addday(int a);
- void addmonth(int b);
- void addyear(int c);
- };
- int main()
- {
- data1 d;
- if (d.setdate(29, 2, 2012)) d.show();
- int dd, mm, yy;
- cout << "Day="; cin >> dd;
- cout << "Month="; cin >> mm;
- cout << "Year="; cin >> yy;
- if (d.setdate(dd, mm, yy)) d.show();
- d.addday(10); d.show();
- d.addday(100); d.show();
- return 0;
- }//end main
- void data1::show()
- {
- cout << day << "." << month << "." << year << endl;
- }
- bool vis(int y)
- {
- if (y % 4 == 0) return 1;
- else return 0;
- }
- bool data1::setdate(int d, int m, int y)
- {
- int mon[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
- if (y<0) { cout << "ERROR! Year!" << endl; return 0; }
- if (vis(y)) { mon[1] = 29; }
- if (m<0 || m>12) { cout << "ERROR! Month!" << endl; return 0; }
- if (d<0 || d>mon[m - 1]) { cout << "ERROR! Day!" << endl; return 0; }
- day = d; month = m; year = y;
- return 1;
- }
- void data1::addmonth(int b)
- {
- int mon[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
- }
- void data1::addyear(int c)
- {
- }
- void data1::addday(int a)
- {
- int mon[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
- if (vis(year)) { mon[1] = 29; }
- day += a;
- while (day>mon[month - 1]) {
- day -= mon[month - 1];
- month++;
- if (month>12) {
- month = 1; year++;
- if (vis(year))mon[1] = 29;
- else mon[1] = 28;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement