Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdafx.h"
- #include <iostream>
- #include "Data.h"
- using namespace std;
- Data::Data()
- {
- day = 1;
- month = 1;
- year = 0;
- }
- Data::Data(int d = 1, int m = 1, int y = 0)
- {
- day = d;
- month = m;
- year = y;
- }
- int Data::get_day() {
- return day;
- }
- int Data::get_month() {
- return month;
- }
- int Data::get_year() {
- return year;
- }
- void Data::set_day(int n) {
- day = n;
- }
- void Data::set_month(int n) {
- month = n;
- }
- void Data::set_year(int n) {
- year = n;
- }
- void Data::print() {
- if (month < 10)
- cout << day << ".0" << month << "." << year << endl;
- else cout << day << "." << month << "." << year << endl;
- }
- Data Data::Next(Data a) {
- int i;
- int mes[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
- if (a.year % 4 == 0 && a.year % 100 != 0 || a.year % 400 == 0)
- mes[1]++;
- for (i = 0; i < 12; i++)
- if (i + 1 == a.month && a.day == mes[i]){
- a.day = 1;
- a.month++;
- break;
- }
- if (i == 12)
- a.day++;
- if (a.month == 13){
- a.month = 1;
- a.year++;
- }
- return a;
- }
- Data Data::Prew(Data a) {
- int i;
- int mes[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
- if (a.year % 4 == 0 && a.year % 100 != 0 || a.year % 400 == 0)
- mes[1]++;
- if (a.day > 1){
- a.day--; return a;
- }
- if (a.month == 1) {
- a.day = 31;
- a.month = 12;
- a.year--;
- return a;
- }
- for (i = 1; i < 12; i++) {
- if (a.month == i + 1) {
- a.day = mes[i - 1];
- a.month = i;
- return a;
- }
- }
- }
- int beg_year(Data a) {
- int n = 0;
- int i;
- int mes[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
- if (a.year % 4 == 0 && a.year % 100 != 0 || a.year % 400 == 0)
- mes[1]++;
- for (i = 0; i < a.month-1; i++) {
- n += mes[i];
- }
- return (n + a.day);
- }
- Data Data::data_beg_year(int n, int p) {
- Data a(1, 1, 0);
- int d, count = 0;
- int mes[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
- if (p % 4 == 0 && p % 100 != 0 || p % 400 == 0)
- mes[1]++;
- for (int i = 0; i < 12; i++) {
- if (n >= mes[i]) {
- n -= mes[i];
- count++;
- }
- else d = n;
- }
- a.set_day(d + 1);
- a.set_month(count + 1);
- a.set_year(p);
- return a;
- }
- void day_otw(Data a) {
- int dotw = 0;
- int code_m;
- int code_y;
- switch (a.month) {
- case 1:code_m = 6; break;
- case 2:code_m = 2; break;
- case 3:code_m = 2; break;
- case 4:code_m = 5; break;
- case 5:code_m = 0; break;
- case 6:code_m = 3; break;
- case 7:code_m = 5; break;
- case 8:code_m = 1; break;
- case 9:code_m = 4; break;
- case 10:code_m = 6; break;
- case 11:code_m = 2; break;
- case 12:code_m = 4;
- }
- //code_y = (6 + (a.year % 100) + (a.year % 100) / 4) % 7;
- code_y = (a.year % 100) / 12 + (a.year % 100) % 12 + ((a.year % 100) % 12) / 4;
- if ((a.year % 4 == 0 && a.year % 100 != 0 || a.year % 400 == 0) && (a.month == 1 || a.month==2))
- dotw = (a.day + code_m + code_y) % 7 - 1;
- else
- dotw = (a.day + code_m + code_y) % 7;
- switch (dotw) {
- case 1: cout << "Понедельник"; break;
- case 2: cout << "Вторник"; break;
- case 3: cout << "Среда"; break;
- case 4: cout << "Четверг"; break;
- case 5: cout << "Пятница"; break;
- case 6: cout << "Суббота"; break;
- case 7: cout << "Воскресенье";
- }
- }
Add Comment
Please, Sign In to add comment