По разделам

 

Решение задачи Proc 55


Используя функцию MonthDays из задания Proc53, описать процедуру
NextDate(D, M, Y), которая по информации о правильной дате, включающей день D, номер месяца M и год Y, определяет следующую дату
(параметры целого типа D, M, Y являются одновременно входными и
выходными). Применить процедуру NextDate к трем исходным датам и
вывести полученные значения следующих дат

Код (C/C++)

#include <bits/stdc++.h>

using namespace std;
bool func(int y)
{
    if ((y%4 == 0) && !(y%100 == 0 && y%400 != 0)){
        return 1;
    }
    else
        return 0;
}

int main()
{
    for(int i = 0; i < 3; ++i){
    int d, m, y;
    cin >> d >> m >> y;
        switch (m){
            case 1:  case 3:  case 5:  case 7:  case 8: case 10:  case 12:
                if(d == 31) d = 0;
            case 4:  case 6:  case 9:  case 11:
                if(d == 20) d = 0;
            case 2: if(d == 28 && !func(y)) d = 0; break;
		}
    if(d == 0){
        if(m == 12){
            m = 1; y++;
        }
        else
            m++;
    }
    d++;

    cout << d << " " << m << " " << y << endl;
    }
    return 0;
}

Код (Python)

import random

def GetDMY():
    Year = random.randint(1,2020)
    Month = random.randint(1,12)
    #Month = 12
    Day_Max = MonthDays(Month,Year)
    Day = random.randint(1,Day_Max)
    #Day = 1
    #Day = Day_Max
    R = {'Day' : Day, 'Month' : Month, 'Year' : Year}    
    return R

def IsLeapYear(Y):
    result = False
    if (Y%4 == 0) and not(Y%100 == 0 and Y%400 != 0):
        result = True
    return result

def MonthDays(M,Y):
    if IsLeapYear(Y) and M == 2:
        Days = 29
    else:
        m = {
            1: 31,
            2: 28,
            3: 31,
            4: 30,
            5: 31,
            6: 30,
            7: 31,
            8: 31,
            9: 30,
            10: 31,
            11: 30,
            12: 31
        }
        try:
            Days = m[M]
        except KeyError as e:
            print('Ошибка')
    return Days

def NextDate(Day,Month,Year):
    MaxDays = MonthDays(Month,Year)
    if Day < MaxDays:
        Day += 1
    elif Month < 12:
        Month += 1
        Day = 1
    else:
        Year += 1
        Month = 1
        Day = 1
    R = {'Day' : Day, 'Month' : Month, 'Year' : Year}    
    return R
    

for i in range(0,5):
    R = GetDMY()
    print("Current:")
    print(R)
    print("Previous:")
    R_new = NextDate(R['Day'], R['Month'], R['Year'])
    print(R_new)
    print()
									




Proc. Абрамян
Proc 1 Просмотров: 45
Proc 2 Просмотров: 41
Proc 3 Просмотров: 36
Proc 4 Просмотров: 41
Proc 5 Просмотров: 51
Proc 6 Просмотров: 49
Proc 7 Просмотров: 49
Proc 8 Просмотров: 52
Proc 9 Просмотров: 40
Proc 10 Просмотров: 37
Proc 11 Просмотров: 47
Proc 12 Просмотров: 37
Proc 13 Просмотров: 31
Proc 14 Просмотров: 32
Proc 15 Просмотров: 35
Proc 16 Просмотров: 38
Proc 17 Просмотров: 58
Proc 18 Просмотров: 46
Proc 19 Просмотров: 41
Proc 20 Просмотров: 37
Proc 21 Просмотров: 42
Proc 22 Просмотров: 40
Proc 23 Просмотров: 26
Proc 24 Просмотров: 39
Proc 25 Просмотров: 32
Proc 26 Просмотров: 39
Proc 27 Просмотров: 43
Proc 28 Просмотров: 49
Proc 29 Просмотров: 48
Proc 30 Просмотров: 55
Proc 31 Просмотров: 34
Proc 32 Просмотров: 33
Proc 33 Просмотров: 32
Proc 34 Просмотров: 45
Proc 35 Просмотров: 41
Proc 36 Просмотров: 32
Proc 37 Просмотров: 31
Proc 38 Просмотров: 32
Proc 39 Просмотров: 38
Proc 40 Просмотров: 32
Proc 41 Просмотров: 37
Proc 42 Просмотров: 46
Proc 43 Просмотров: 37
Proc 44 Просмотров: 29
Proc 45 Просмотров: 39
Proc 46 Просмотров: 39
Proc 47 Просмотров: 34
Proc 48 Просмотров: 29
Proc 49 Просмотров: 32
Proc 50 Просмотров: 30
Proc 51 Просмотров: 35
Proc 52 Просмотров: 40
Proc 53 Просмотров: 35
Proc 54 Просмотров: 40
Proc 55 Просмотров: 36
Proc 56 Просмотров: 39
Proc 57 Просмотров: 39
Proc 58 Просмотров: 32
Proc 59 Просмотров: 30
Proc 60 Просмотров: 54

Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться