Skip to main content
Became Hot Network Question
deleted 83 characters in body; edited tags; edited title
Source Link
200_success
  • 145.6k
  • 22
  • 191
  • 481

Reformat code and error handling Interpret a date from a string of digits

PS: Feel free to suggest an edit to the question title to make it more expressive.

Reformat code and error handling

PS: Feel free to suggest an edit to the question title to make it more expressive.

Interpret a date from a string of digits

fixing errors in code
Source Link
singrium
  • 327
  • 1
  • 4
  • 12
from datetime import datetime as dt


def format_dates(field):
    n = len(field)
    match = False
    i = 0
    while match is False:
 
        try:
            # Take the last four digits
            year = int(field[-4 - i:n - i])
        except ValueError:
            return ''

        # Check if this year is between 2019today's andyear 1919+/- (15, 100)
        if (1919 <= year <= 2019):
 
            # Check if there are other 4 digits before these 4 ones (before year)
            if (len(field[-8 - i:n - i]) == 8):
                try:
                    f_date = dt.strptime(field[-8 - i:n - i],
                                         '%d%m%Y').strftime('%d/%m/%Y')
                    match = True
                    return f_date
                except ValueError:
                    pass
            else:
                return ''
        else:
            return ''
        i += 1
from datetime import datetime as dt


def format_dates(field):
    n = len(field)
    match = False
    i = 0
    while match is False:
 
        try:
            # Take the last four digits
            year = int(field[-4 - i:n - i])
        except ValueError:
            return ''

        # Check if this year is between 2019 and 1919
        if (1919 <= year <= 2019):
 
            # Check if there are other 4 digits before these 4 ones (before year)
            if (len(field[-8 - i:n - i]) == 8):
                try:
                    f_date = dt.strptime(field[-8 - i:n - i],
                                         '%d%m%Y').strftime('%d/%m/%Y')
                    match = True
                    return f_date
                except ValueError:
                    pass
            else:
                return ''
        else:
            return ''
        i += 1
from datetime import datetime as dt


def format_dates(field):
    n = len(field)
    match = False
    i = 0
    while match is False:
        try:
            # Take the last four digits
            year = int(field[-4 - i:n - i])
        except ValueError:
            return ''

        # Check if this year is between today's year +/- (15, 100)
        if (1919 <= year <= 2019):
            # Check if there are other 4 digits before these 4 ones
            if (len(field[-8 - i:n - i]) == 8):
                try:
                    f_date = dt.strptime(field[-8 - i:n - i],
                                         '%d%m%Y').strftime('%d/%m/%Y')
                    match = True
                    return f_date
                except ValueError:
                    pass
            else:
                return ''
        i += 1
fixing errors in code
Source Link
singrium
  • 327
  • 1
  • 4
  • 12
from datetime import datetime as dt


def format_dates(field):
    n = len(field)
    match = False
    i = 0
    while match is False:

        try:
            # Take the last four digits
            year = int(field[-4 - i:n - i])
        except ValueError:
            return ''

        # Check if this year is between 2019 and 1919
        if (1919 <= year <= 2019):

            # Check if there are other 4 digits before these 4 ones (before year)
            if (len(sub_field[field[-8 - i:n - i]) == 8):
                try:
                    f_date = dt.strptime(sub_field[field[-8 - i:n - i],
                                         '%d%m%Y').strftime('%d/%m/%Y')
                    match = True
                    return f_date
                except ValueError:
                    pass
            else:
                return ''
        else:
            return ''
        i += 1
from datetime import datetime as dt


def format_dates(field):
    n = len(field)
    match = False
    i = 0
    while match is False:

        try:
            # Take the last four digits
            year = int(field[-4 - i:n - i])
        except ValueError:
            return ''

        # Check if this year is between 2019 and 1919
        if (1919 <= year <= 2019):

            # Check if there are other 4 digits before these 4 ones (before year)
            if (len(sub_field[-8 - i:n - i]) == 8):
                try:
                    f_date = dt.strptime(sub_field[-8 - i:n - i],
                                         '%d%m%Y').strftime('%d/%m/%Y')
                    match = True
                    return f_date
                except ValueError:
                    pass
            else:
                return ''
        else:
            return ''
        i += 1
from datetime import datetime as dt


def format_dates(field):
    n = len(field)
    match = False
    i = 0
    while match is False:

        try:
            # Take the last four digits
            year = int(field[-4 - i:n - i])
        except ValueError:
            return ''

        # Check if this year is between 2019 and 1919
        if (1919 <= year <= 2019):

            # Check if there are other 4 digits before these 4 ones (before year)
            if (len(field[-8 - i:n - i]) == 8):
                try:
                    f_date = dt.strptime(field[-8 - i:n - i],
                                         '%d%m%Y').strftime('%d/%m/%Y')
                    match = True
                    return f_date
                except ValueError:
                    pass
            else:
                return ''
        else:
            return ''
        i += 1
Source Link
singrium
  • 327
  • 1
  • 4
  • 12
Loading