1
1
from os import _exit
2
2
3
+
3
4
def monthName (i ):
4
5
months = {
5
6
1 : 'January' ,
@@ -16,118 +17,110 @@ def monthName(i):
16
17
12 : 'December'
17
18
}
18
19
return months .get (i , 'invalid' )
19
-
20
- def predict (month , day ):
20
+
21
+
22
+ def predict (month , day , i ):
23
+ day += 7
24
+ increment = 8
21
25
if month == 'January' :
22
- month = 'September'
23
- day = day + 7
24
- if day <= 30 :
25
- ed_day = day
26
- else :
27
- month = 'October'
28
- ed_day = 30 - day
26
+ if day <= 30 :
27
+ ed_day = day
28
+ else :
29
+ increment += 1
30
+ ed_day = 30 - day
31
+ month = monthName (i + increment )
29
32
elif month == 'February' :
30
- month = 'October'
31
- day = day + 7
32
- if day < 31 :
33
- ed_day = day
34
- else :
35
- month = 'November'
36
- ed_day = 30 - day
33
+ if day < 31 :
34
+ ed_day = day
35
+ else :
36
+ increment += 1
37
+ ed_day = 30 - day
38
+ month = monthName (i + increment )
37
39
elif month == 'March' :
38
- month = 'November'
39
- day = day + 7
40
- if day <= 30 :
41
- ed_day = day
42
- else :
43
- month = 'December'
40
+ if day <= 30 :
41
+ ed_day = day
42
+ else :
43
+ increment += 1
44
44
day = day - 1
45
- ed_day = 31 - day
45
+ ed_day = 31 - day
46
+ month = monthName ( i + increment )
46
47
elif month == 'April' :
47
- month = 'December'
48
- day = day + 7
49
- if day <= 31 :
48
+ if day <= 31 :
50
49
ed_day = day
51
- else :
52
- month = 'January'
50
+ else :
51
+ increment += 1
53
52
ed_day = 31 - day
53
+ month = monthName (i + increment )
54
54
elif month == 'May' :
55
- month = 'February'
56
- day = day + 7
57
- if day <= 28 :
55
+ if day <= 28 :
58
56
ed_day = day
59
- else :
60
- month = 'March'
57
+ else :
58
+ increment += 1
61
59
day = day - 1
62
- ed_day = 31 - day
60
+ ed_day = 31 - day
61
+ month = monthName (i + increment )
63
62
elif month == 'June' :
64
- month = 'March'
65
- day = day + 7
66
- if day <= 31 :
63
+ if day <= 31 :
67
64
ed_day = day
68
- else :
69
- month = 'April'
65
+ else :
66
+ increment += 1
70
67
day = day - 1
71
68
ed_day = 30 - day
69
+ month = monthName (i + increment )
72
70
elif month == 'July' :
73
- month = 'April'
74
- day = day + 7
75
- if day <= 30 :
71
+ if day <= 30 :
76
72
ed_day = day
77
- else :
78
- month = 'May'
73
+ else :
74
+ increment += 1
79
75
day = day - 1
80
76
ed_day = 31 - day
77
+ month = monthName (i + increment )
81
78
elif month == 'August' :
82
- month = 'May'
83
- day = day + 7
84
- if day <= 31 :
79
+ if day <= 31 :
85
80
ed_day = day
86
- else :
87
- month = 'June'
81
+ else :
82
+ increment += 1
88
83
ed_day = 30 - day
84
+ month = monthName (i + increment )
89
85
elif month == 'September' :
90
- month = 'June'
91
- day = day + 7
92
- if day <= 30 :
86
+ if day <= 30 :
93
87
ed_day = day
94
- else :
95
- month = 'July'
88
+ else :
89
+ increment += 1
96
90
day = day - 1
97
91
ed_day = 31 - day
92
+ month = monthName (i + increment )
98
93
elif month == 'October' :
99
- month = 'July'
100
- day = day + 7
101
- if day <= 31 :
94
+ if day <= 31 :
102
95
ed_day = day
103
- else :
104
- month = 'August'
96
+ else :
97
+ increment += 1
105
98
ed_day = 30 - day
99
+ month = monthName (i + increment )
106
100
elif month == 'November' :
107
- month = 'August'
108
- day = day + 7
109
- if day <= 30 :
101
+ if day <= 30 :
110
102
ed_day = day
111
- else :
112
- month = 'September'
103
+ else :
104
+ increment += 1
113
105
day = day - 1
114
106
ed_day = 31 - day
107
+ month = monthName (i + increment )
115
108
elif month == 'December' :
116
- month = 'September'
117
- day = day + 7
118
- if day <= 31 :
109
+ if day <= 31 :
119
110
ed_day = day
120
- else :
121
- month = 'October'
111
+ else :
112
+ increment += 1
122
113
ed_day = 31 - day
114
+ month = monthName (i + increment )
123
115
124
116
print (f"The predicted expected date of your baby's delivery is { day } { month } :)" )
125
117
126
118
print ('Please write the month number of the month in which you had your last menstrual period (eg: 1 for January / 12 for December)' )
127
- m = monthName (int (input ('--> ' )))
119
+ i = int (input ('--> ' ))
120
+ m = monthName (i )
128
121
if (m == 'invalid' ):
129
122
print ('Invalid date selection' )
130
123
_exit (1 )
131
124
print ("Please write the day of the month (e.g 14, 16, 22 etc)" )
132
125
d = int (input ())
133
- predict (m , d )
126
+ predict (m , d , i )
0 commit comments