- Trending Categories
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
Physics
Chemistry
Biology
Mathematics
English
Economics
Psychology
Social Studies
Fashion Studies
Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
How to Determine Last Friday’s Date using Python?
In this article, we will learn how to determine last Friday’s Date using Python.
Methods Used
The following are the various methods to accomplish this task −
Using datetime module
Using dateutil package
Method 1: Using Datetime Module
Algorithm (Steps)
Following are the Algorithm/steps to be followed to perform the desired task. −
Use the import keyword to import the datetime, timedelta from datetime module.
Create a variable to store the list of all the days in a week(weekdays).
Create a function getPreviousByDay() to return the last weekday of the input day by accepting the input day, start_date=None as arguments
Use the if conditional statement to check whether the start date is None.
Assign today's date(current date) to the start date.
Get the current weekday number using the weekday() function(returns an integer corresponding to the given day of the week) of datetime module.
Get the index of the target weekday(given input day) using the index() function.
Get the number of days from the last week.
Use the if conditional statement to check whether the above days ago variable result is equal to 0 then Assign 7 to the days ago variable.
Else Subtract the above number of days from the current date(start date) to get the last week's date on the given day
Return the last week's date of the input date.
Print today's/current date and time using the today() function of datetime.
Print the last Friday date by calling the above-defined getPreviousByDay() function by passing inputDay as 'Friday’ as an argument.
In the same way print the last Monday,Wednesday date by passing the input date as ‘Monday’ and ‘Wednesday’ to getPreviousByDay() function.
Example
The following program returns the Determine Last Friday’s/anyday Date using datetime module −
# importing datetime, timedelta from datetime module from datetime import datetime, timedelta # list of days in a week weekdaysList = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'] # creating a function to return the last weekday of input day by # accepting the input day, start_date=None as arguments def getPreviousByDay(inputDay, start_date=None): # check whether the start date is None if start_date is None: # assiging today's date(current date) to the start date start_date = datetime.today() # getting the weekday number dayNumber = start_date.weekday() # Get the index of the target weekday dayNumberTarget = weekdaysList.index(inputDay) # getting the last weekday daysAgo = (7 + dayNumber - dayNumberTarget) % 7 # checking whether the above days ago result is equal to 0 if daysAgo == 0: # assigning 7 to the days ago daysAgo = 7 # Subtract the above number of days from the current date(start date) # to get the last week's date of the given day targetDate = start_date - timedelta(days=daysAgo) # returning the last week's date of the input date return targetDate # printing today's/current date and time print("Current date and time:", datetime.today()) # printing the last Friday date by calling the above defined # getPreviousByDay() function by passing inputDay as 'Friday' as an argument print("Last Friday Date:", getPreviousByDay('Friday')) # printing the last Monday date print("Last Monday Date:", getPreviousByDay('Monday')) # printing the last Wednesday date print("Last Wednesday Date:", getPreviousByDay('Wednesday'))
Output
On executing, the above program will generate the following output −
Current date and time: 2023-01-01 08:15:35.935826 Last Friday Date: 2022-12-30 08:15:35.936020 Last Monday Date: 2022-12-26 08:15:35.936153 Last Wednesday Date: 2022-12-28 08:15:35.936264
Method 2: Using Dateutil Package
The start date and the target date are mapped to their corresponding numeric positions in the week in this code (with Monday as day 0). Then, to determine how many days ago since the target date last occurred, modular arithmetic is employed.
The target date is then determined by subtracting the start date from the appropriate timedelta instance.
Installing the python-dateutil package may be preferable if you frequently run date calculations like this.
Here is an example of the same calculation being made using dateutil's relativedelta() function.
The dateutil.relativedelta.relativedelta adds support for periods defined in terms of years, months, weeks, or days as well as the ability to define absolute values for year, month, or day, whereas the timedelta only supports days (and weeks).
Example
The following program returns the Determine Last Friday’s and Next Friday’s Date using dateutil module −
# importing datetime from datetime module from datetime import datetime # importing relativedelta from dateutil module from dateutil.relativedelta import relativedelta from dateutil.rrule import * # taking the start date as the current date start_date = datetime.now() # printing the todays/current date and time print("Current Date:", start_date) # printing the Next Friday date print("Next Friday Date:", start_date + relativedelta(weekday=FR)) # printing the Last Friday date print("Last Friday Date:", start_date + relativedelta(weekday=FR(-1)))
Output
On executing, the above program will generate the following output −
Current Date: 2023-01-15 08:19:49.267666 Next Friday Date: 2023-01-20 08:19:49.267666 Last Friday Date: 2023-01-13 08:19:49.267666
Conclusion
In this article, we learned how to use two different methods to get the date from the last Friday in Python. We also put into practice how to acquire the last weekday of the given input day as well as how to retrieve the next weekday of the given day.