+ 1
US dates to EU dates
#Convert US dates to EU dates #Input in mm/dd/yyyy or format like January 1, 2021 #Code passes first 2 tests but fails next 3 tests a = input() if not '/' in a: a = a.split() import calendar dic = {} for num in range(1,13): dic[calendar.month_name[num]] = num def usdteu(dt): if '/' in dt: return dt[3:5] + '/' + dt[:2] + '/' + dt[-4:] else: return dt[1][0] + '/' + str(dic[dt[0]]) + '/' + dt[-1] print(usdteu(a))
3 Antworten
+ 2
Sanjay Sahu
Right now your code only works for input dates where the day and month values have exactly 2 digits (e.g. dt[3:5] expects 2 numbers only). I suspect the failed test cases are ones where the input date have 1 digit days and/or months like 1/31/2019 or April 1, 2020.
To fix, just edit theusdteu() function:
1) Inside the if part, split dt using '/' as the separator. This will return a list of exactly month, day and year values, which you can then output in EU format.
2) Inside the else part, change dt[1][0] to dt[1][:-1] to include the whole day value without the comma character.
Alternatively, I suggest using the datetime module instead to elegantly handle the date format conversions.
https://docs.python.org/3/library/datetime.html
Edit: Clarity and typos
+ 1
Sanjay Sahu You're welcome! Happy to help :)
0
Mozzy
Thanks so much for your prompt response..
As rightly pointed out by you, the code was failing the last 3 test cases because it didn't take care of presence of extra digits in dates of the format 'January 21, 2023'.
I tweaked the code accordingly and it was able to pass all 5 tests.