forked from ItPeoplePython2018/lesson-2
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdate.py
88 lines (64 loc) · 1.49 KB
/
date.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
MONTHS_LENGTH = {
1: 31,
2: 28,
3: 31,
4: 30,
5: 31,
# ...
}
ROME_MONTHS = {
1: 'I',
2: 'II',
3: 'III',
4: 'IV',
5: 'V',
# ...
}
MONTHS_NAMES = {
1: 'jan',
2: 'feb',
3: 'mar',
4: 'apr',
# ...
}
class Date:
def __init__(self, day, month, year):
# day - число, двузначное, 01-31
# month - число, двузначное, 01-12
# year - число целое
# TODO: обрабатывать високосный год
if month > 12 or month < 1:
raise ValueError("Incorrect month")
days_in_month = MONTHS_LENGTH[month]
if day > days_in_month or day < 1:
raise ValueError("Incorrect day")
self.year = year
self.month = month
self.day = day
def get_rome_month(self):
return ROME_MONTHS[self.month]
def get_month_name(self):
return MONTHS_NAMES[self.month]
def is_ac(self):
return self.year > 0
def parse(self):
pass
def user_format(self):
# 1 jan 1999 BC
value = ""
value += str(self.day)
value += " "
value += self.get_month_name()
value += " "
value += str(self.year)
value += " "
if self.is_ac():
value += "AC"
else:
value += "BC"
return value
d1 = Date(1, 1, 12)
print(d1.get_rome_month())
d2 = Date(2, 1, 12)
# 1999-01-01 BC
# 2018-06-23 AC