Home > Blockchain >  Parsing dates and I am lost
Parsing dates and I am lost

Time:04-27

Write a program to read dates from input, one date per line. Each date's format must be as follows: March 1, 1990. Any date not following that format is incorrect and should be ignored. The input ends with -1 on a line alone. Output each correct date as: 3/1/1990.

Hint: Use string[start:end] to get a substring when parsing the string and extracting the date. Use the split() method to break the input into tokens.

Ex: If the input is:

March 1, 1990
April 2 1995
7/15/20
December 13, 2003
-1

then the output is:

3/1/1990
12/13/2003

This is what I have to start with and I am lost. Help?

def get_month_as_int(monthString):

    if monthString == 'January':
        month_int = 1
    elif monthString == 'February':
        month_int = 2
    elif monthString == 'March':
        month_int = 3
    elif monthString == 'April':
        month_int = 4
    elif monthString == 'May':
        month_int = 5
    elif monthString == 'June':
        month_int = 6
    elif monthString == 'July':
        month_int = 7
    elif monthString == 'August':
        month_int = 8
    elif monthString == 'September':
        month_int = 9
    elif monthString == 'October':
        month_int = 10
    elif monthString == 'November':
        month_int = 11
    elif monthString == 'December':
        month_int = 12
    else:
        month_int = 0

    return month_int


user_string = input()

# TODO: Read dates from input, parse the dates to find the one
#       in the correct format, and output in m/d/yyyy format

CodePudding user response:

import datetime
inputs = []
result = []

#read the inputs
date = input()
inputs.append(date)
while not date == "-1":
  date = input()
  inputs.append(date)

#check if the input is in the correct format and convert it.
for date_text in inputs:
  try:
    date_text = datetime.datetime.strptime(date_text,"%d %B, %Y")
    result.append(date_text.strftime("%d/%m/%Y"))
  except ValueError:
    pass
    
print(*result, sep = "\n")

CodePudding user response:

s=0
d={'january':1,
   'february':2,
   'march':3,
   'april':4,
   'may':5,
   'june':6,
   'july':7,
   'august':8,
   'september':9,
   'october':10,
   'november':11,
   'december':12}
while s!='-1':
    s=input()
    if "," in s:
        s = s.split(",")
        ar = s[0].split(" ")
        if len(ar)<2:
            continue
        month, date = ar[0], ar[1]
        year = s[1].strip()
        if d.get(month.lower()):
            print("{}/{}/{}".format(date, d[month.lower()], year))

  • Related