Get the Last Sunday and Saturday'S Date in Python

Get the date of last Sunday in another column for current date in python

Deriving from get the last sunday and saturday's date in python, you can do:

from datetime import datetime, timedelta
df['Last Sunday'] = (datetime.now()
-timedelta(days=((datetime.now().isoweekday() + 1) % 7))
).strftime('%m/%d/%Y')

Python get date of the last Sunday from a datetime input

Inspired by this:

idx = (dt.weekday() + 1) % 7
sun = dt - datetime.timedelta(days=idx)

Find the Friday of previous/last week in python

Assuming day is a datetime.date or datetime.datetime object, this code creates a datetime/date object for last week's friday:

friday = day - timedelta(days=day.weekday()) + timedelta(days=4, weeks=-1)

Explanation: timedelta(days=day.weekday()) is the offset between monday and day so adding 4 days and subtracting one week will get you last week's friday.

Of course you can simplify this (+4d -1w = -3d):

friday = day - timedelta(days=day.weekday() + 3)

Note: To get timedelta, use from datetime import timedelta or just import datetime and use datetime.timedelta

How to get the Python date object for last Wednesday

I think you want this. If the specified day is a Wednesday it will give you that day.

from datetime import date
from datetime import timedelta
from calendar import WEDNESDAY

today = date.today()
offset = (today.weekday() - WEDNESDAY) % 7
last_wednesday = today - timedelta(days=offset)

Example, the last wednesday for every day in March:

for x in xrange(1, 32):
today = date(year=2010, month=3, day=x)
offset = (today.weekday() - WEDNESDAY) % 7
last_wednesday = today - timedelta(days=offset)

print last_wednesday

How can I select all of the Sundays for a year using Python?

You can use date from the datetime module to find the first Sunday in a year and then keep adding seven days, generating new Sundays:

from datetime import date, timedelta

def allsundays(year):
d = date(year, 1, 1) # January 1st
d += timedelta(days = 6 - d.weekday()) # First Sunday
while d.year == year:
yield d
d += timedelta(days = 7)

for d in allsundays(2010):
print(d)

Get Dates for Last Week in Python

Here's one simple version:

from datetime import date, timedelta    
def get_week_days(year, week):

year_start = date(year, 1, 1)

# the following line assumes your this_week_int starts at 0
# if this_week_int starts at 1, change to week-2

week_start = year_start + timedelta(days=-year_start.isoweekday(), weeks=week-1)
week_end = week_start + timedelta(days=6)

return week_start, week_end
get_week_days(2018, 1)

# (datetime.date(2017, 12, 31), datetime.date(2018, 1, 6))

get_week_days(2018, 10)

# (datetime.date(2018, 3, 4), datetime.date(2018, 3, 10))

Essentially, .isoweekday() returns 1 for Monday and 7 for Sundays, so when you deduct that weekday it gives you the start at Sunday.

In python, how can we make Saturday and Sunday come in the same week number

You're probably looking for ISO calendar weekdays. In the ISO calendar, the dates you mention are all in the same week, 23.

>>> datetime.date(2020, 6, 1).isocalendar()
# year, weekno, weekday
(2020, 23, 1)
>>> datetime.date(2020, 6, 6).isocalendar()
(2020, 23, 6)
>>> datetime.date(2020, 6, 7).isocalendar()
(2020, 23, 7)
>>>


Related Topics



Leave a reply



Submit