2

I have: a week number a day of week a year I want to find the date from that. How to do it in Python?

e.g. 2020 week1 Saturday Expected output 01/04/2020

NAS_2339
  • 353
  • 2
  • 13

3 Answers3

6

you can use ISO 8601 year and -week directives:

from datetime import datetime

s = '2020 week1 Saturday'

dt = datetime.strptime(s, '%G week%V %A')       

print(dt.strftime('%m/%d/%Y'))
# 01/04/2020
FObersteiner
  • 22,500
  • 8
  • 42
  • 72
1

Python 3.8 added the fromisocalendar() method, which is even more intuitive.

from datetime import datetime
dt =datetime.fromisocalendar(2020, 1, 6)
print(dt.strftime('%m/%d/%Y'))
# 01/04/2020
NAS_2339
  • 353
  • 2
  • 13
0

Another way of doing it (Based on @MrFuppes's answer) using standard C implementation:

s = '2020 week0 Saturday'
dt = datetime.strptime(s, '%Y week%W %A')
print(dt.strftime('%m/%d/%Y'))

Bare in mind that the weekdays as well as the weeks - start in zero.

Ido
  • 138
  • 9