Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Changing a string with dates into days after Jan. 1, 2010

For the function below, I am inputting a string like "6/29/2020" and "8/10/2010" and I want to get a numbers of days after Jan. 1, 2010. For example, if I input "1/29/2010", I want the integer 29 to be returned.

Currently, I have gotten "6/29/2020" to a string "2020-06-29". Now I just need help with converting that string into the days after Jan. 1, 2010.

I feel like I have posted everything needed for you to help, but if you need more information, let me know. Thank You for helping me with this problem.

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

def day_conversion(dates):
  import datetime
  
  i = 0

  for day in dates:
        day = day.split('/')

        if len(day[0]) == 1:
              day[0] = f"0{day[0]}"
        if len(day[1]) == 1:
              day[1] = f"0{day[1]}"

        day = f"{day[2]}-{day[0]}-{day[1]}"

      #   day = date.format(day)
      #   from datetime import date
      #   day0 = date(2000, 1, 1)
      #   day = day - day0
        
        dates[i] = day
        i += 1

  return dates

>Solution :

datetime has a function for parsing dates, and subtracting two datetime objects gives a timedelta object with a .days attribute:

from datetime import datetime

def days_since_jan1_2010(date):
    dt = datetime.strptime(date, '%m/%d/%Y')
    diff = dt - datetime(2010, 1, 1)
    return diff.days

def day_conversion(dates):
    return [days_since_jan1_2010(d) for d in dates]

print(day_conversion(['6/29/2020', '8/10/2010', '1/1/2010', '1/2/2010']))

Output:

[3832, 221, 0, 1]
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading