По разделам

 

Решение задачи 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 Просмотров: 6512
Proc 2 Просмотров: 5032
Proc 3 Просмотров: 5116
Proc 4 Просмотров: 4303
Proc 5 Просмотров: 3362
Proc 6 Просмотров: 4607
Proc 7 Просмотров: 3892
Proc 8 Просмотров: 2985
Proc 9 Просмотров: 3123
Proc 10 Просмотров: 2883
Proc 11 Просмотров: 2984
Proc 12 Просмотров: 2182
Proc 13 Просмотров: 2423
Proc 14 Просмотров: 2655
Proc 15 Просмотров: 1865
Proc 16 Просмотров: 2841
Proc 17 Просмотров: 2485
Proc 18 Просмотров: 2405
Proc 19 Просмотров: 2324
Proc 20 Просмотров: 3169
Proc 21 Просмотров: 3299
Proc 22 Просмотров: 2401
Proc 23 Просмотров: 2397
Proc 24 Просмотров: 1660
Proc 25 Просмотров: 2033
Proc 26 Просмотров: 1806
Proc 27 Просмотров: 2008
Proc 28 Просмотров: 1737
Proc 29 Просмотров: 1915
Proc 30 Просмотров: 2445
Proc 31 Просмотров: 1669
Proc 32 Просмотров: 1221
Proc 33 Просмотров: 1250
Proc 34 Просмотров: 1671
Proc 35 Просмотров: 1154
Proc 36 Просмотров: 1613
Proc 37 Просмотров: 1474
Proc 38 Просмотров: 1194
Proc 39 Просмотров: 1098
Proc 40 Просмотров: 1831
Proc 41 Просмотров: 1897
Proc 42 Просмотров: 1149
Proc 43 Просмотров: 1116
Proc 44 Просмотров: 998
Proc 45 Просмотров: 1129
Proc 46 Просмотров: 999
Proc 47 Просмотров: 1061
Proc 48 Просмотров: 811
Proc 49 Просмотров: 1046
Proc 50 Просмотров: 2078
Proc 51 Просмотров: 1682
Proc 52 Просмотров: 1687
Proc 53 Просмотров: 1173
Proc 54 Просмотров: 1260
Proc 55 Просмотров: 1144
Proc 56 Просмотров: 1739
Proc 57 Просмотров: 1489
Proc 58 Просмотров: 1172
Proc 59 Просмотров: 1083
Proc 60 Просмотров: 1365

Комментарии

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



Заявка на расчет