I want all the dates of the present week based on weeknumber.
I can get week number like
import datetime
weeknum=datetime.datetime.now().isocalendar()[1]
result is 20.
wanted all dates of week 20. the final output should be
dates=['2019-05-12','2019-05-13','2019-05-14','2019-05-15','2019-05-16','2019-05-17','2019-05-18']
please help me.
Practical Data Science using Python YOu can use the isocalender function from the datetime module to get the current week. Create the object of the date first, then call isocalender() on this object. This returns a 3-tuple of Year, Week number and Day of Week.
How to get the date from a week number. To get the date of the Monday in a week, use =DATE( A1 , 1, -3 + 7 * B1 - WEEKDAY(DATE( A1 , 1, 4), 2) + 1) . Cell A1 contains the four-digit year (e.g. 2022), and cell B2 contains the week number (1-53).
The isocalendar() function in Pandas returns the ISO year, week number, and weekday from a Timestamp object (an equivalent of Python's datetime object).
You can do it with time
and datetime
as well as this answer suggest but change it to your requirements:
WEEK = 20 - 2 # as it starts with 0 and you want week to start from sunday
startdate = time.asctime(time.strptime('2019 %d 0' % WEEK, '%Y %W %w'))
startdate = datetime.datetime.strptime(startdate, '%a %b %d %H:%M:%S %Y')
dates = [startdate.strftime('%Y-%m-%d')]
for i in range(1, 7):
day = startdate + datetime.timedelta(days=i)
dates.append(day.strftime('%Y-%m-%d'))
Output as following:
dates = ['2019-05-12',
'2019-05-13',
'2019-05-14',
'2019-05-15',
'2019-05-16',
'2019-05-17',
'2019-05-18']
Use timedelta and a list comprehension.
import datetime
theday = datetime.date.today()
weekday = theday.isoweekday()
# The start of the week
start = theday - datetime.timedelta(days=weekday)
# build a simple range
dates = [start + datetime.timedelta(days=d) for d in range(7)]
To get output in strings
dates = [str(d) for d in dates]
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With