-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathoutdated.py
49 lines (40 loc) · 1.37 KB
/
outdated.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
from datetime import datetime, date
class Outdated:
def __init__(self):
self.formats = [
"%m/%d/%Y",
"%B %d, %Y"
]
def get_date_format(self, given_date: str)-> str:
for format in self.formats:
try:
datetime.strptime(given_date, format)
return format
except ValueError:
continue
def format_str_to_date(self, given_date: str) -> datetime:
if self.get_date_format(given_date):
try:
new_date = datetime.strptime(given_date,self.get_date_format(given_date))
except TypeError:
self.main()
else:
return new_date
return self.main()
def format_date(self, given_date: str)-> str:
"""_Given a datetime object convert it to YYYY-MM-DD_
Args:
given_date (str): _Given date_
Returns:
str: _Formatted str date_
Example:
>>> format_date("September 8, 1956")
1956-09-08
"""
return date.strftime(self.format_str_to_date(given_date), "%Y-%m-%d")
def main(self):
given_date: str = input("Date: ")
print(f"{self.format_date(given_date.strip())}")
if __name__ == "__main__":
outdated = Outdated()
outdated.main()