w3resource

Python Pendulum Module - Exercises, Solutions, and Examples

Python Pendulum Module [34 exercises with solution]

Pendulum is a date and time manipulation library that provides a cleaner and more intuitive interface than the standard "datetime" module. It offers features like a more expressive API, improved timezone support, easier formatting, and parsing of dates and times.

To use Pendulum, you need to install it first using a package manager like pip:

pip install pendulum

Current Date and Time:

1. Write a Python program to print the current date and time using Pendulum module.

Code:

import pendulum

# Get the current date and time
current_datetime = pendulum.now()

# Print the current date and time
print("Current Date and Time:", current_datetime) 

Output:

Current Date and Time: 2024-02-02 10:57:16.160411+05:30

Manipulate Date and Time:

2. Write a Python program to create a Pendulum object for tomorrow's date and time using Pendulum module.

Code:

# Import the Pendulum module
import pendulum

# Get the current date and time
current_datetime = pendulum.now()

# Calculate the date and time for tomorrow by adding one day
tomorrow_datetime = current_datetime.add(days=1)

# Print the Pendulum object for tomorrow's date and time
print("Pendulum object for tomorrow's date and time:", tomorrow_datetime)

Output:

Pendulum object for tomorrow's date and time: 2024-02-03 11:05:09.411557+05:30

Date Formatting:

3. Write a Python program to format the current date and time as "YYYY-MM-DD HH:mm:ss" using Pendulum module.

Code:

# Import the Pendulum module
import pendulum

# Get the current date and time
current_datetime = pendulum.now()

# Format the date and time as "YYYY-MM-DD HH:mm:ss"
formatted_datetime = current_datetime.format('YYYY-MM-DD HH:mm:ss')

# Print the formatted date and time
print("Formatted Date and Time:", formatted_datetime)

Output:

Formatted Date and Time: 2024-02-02 11:12:18

Timezone Support:

4. Write a Python program to create a Pendulum object for the current date and time in the "Europe/London" timezon using Pendulum module.

Code:

# Import the Pendulum module
import pendulum

# Get the current date and time in the "Europe/London" timezone
london_datetime = pendulum.now('Europe/London')

# Print the Pendulum object for the current date and time in London timezone
print("Pendulum object for the current date and time in London timezone:", london_datetime)

Output:

Pendulum object for the current date and time in London timezone: 2024-02-02 05:45:58.214606+00:00

Convert Timezone:

5. Write a Python program to convert the current date and time from "UTC" to "America/New_York" timezone using Pendulum module.

Code:

# Import the Pendulum module
import pendulum

# Get the current date and time in UTC
utc_datetime = pendulum.now('UTC')

# Convert the UTC date and time to "America/New_York" timezone
ny_datetime = utc_datetime.in_tz('America/New_York')

# Print the converted Pendulum object
print("Converted date and time to America/New_York timezone:", ny_datetime)

Output:

Converted date and time to America/New_York timezone: 2024-02-02 00:47:31.813949-05:00

Difference in Days:

6. Write a Python program to find the difference in days between two arbitrary dates using Pendulum module.

Code:

# Import the Pendulum module
import pendulum

# Define two arbitrary dates as strings
date_str1 = "2018-03-15"
date_str2 = "2018-04-20"

# Parse the date strings into Pendulum objects
date1 = pendulum.parse(date_str1)
date2 = pendulum.parse(date_str2)

# Calculate the difference in days between the two dates
days_difference = date2.diff(date1).in_days()

# Print the difference in days
print(f"Difference in days between {date_str1} and {date_str2}: {days_difference} days")

Output:

Difference in days between 2018-03-15 and 2018-04-20: 36 days

Add and Subtract Duration:

7. Write a Python program to add 3 hours and 30 minutes to the current date and time, then subtract 1 day using Pendulum module.

Code:

# Import the Pendulum module
import pendulum

# Get the current date and time
current_datetime = pendulum.now()

# Add 3 hours and 30 minutes to the current date and time
new_datetime = current_datetime.add(hours=3, minutes=30)

# Subtract 1 day from the new date and time
result_datetime = new_datetime.subtract(days=1)

# Print the result after adding and subtracting
print("Current Date and Time:", current_datetime)
print("After adding 3 hours and 30 minutes:", new_datetime)
print("After subtracting 1 day:", result_datetime)

Output:

Current Date and Time: 2024-02-02 11:22:24.599671+05:30
After adding 3 hours and 30 minutes: 2024-02-02 14:52:24.599671+05:30
After subtracting 1 day: 2024-02-01 14:52:24.599671+05:30

Parsing Date and Time:

8. Write a Python program to parse the string "2019-02-01 15:45:00" into a Pendulum object using Pendulum module.

Code:

# Import the Pendulum module
import pendulum

# Define the date and time string
date_time_str = "2019-02-01 15:45:00"

# Parse the date and time string into a Pendulum object
parsed_datetime = pendulum.parse(date_time_str)

# Print the Pendulum object
print("Parsed Pendulum object:", parsed_datetime)

Output:

Parsed Pendulum object: 2019-02-01 15:45:00+00:00

Human-Readable Difference:

9. Write a Python program to find the human-readable difference between two arbitrary dates (e.g., "2 weeks and 3 days ago") using Pendulum module.

Code:

# Import the Pendulum module
import pendulum

# Define two arbitrary dates as strings
date_str1 = "2019-03-15"
date_str2 = "2019-04-20"

# Parse the date strings into Pendulum objects
date1 = pendulum.parse(date_str1)
date2 = pendulum.parse(date_str2)

# Calculate the difference in a human-readable format
human_readable_difference = date2.diff_for_humans(date1, absolute=True)

# Print the human-readable difference
print(f"Difference between {date_str1} and {date_str2}: {human_readable_difference}")

Output:

Difference between 2019-03-15 and 2019-04-20: 1 month

Check for Leap Year:

10. Write a Python program to determine if the current year is a leap year using Pendulum module.

Code:

# Import the Pendulum module
import pendulum
import calendar

# Get the current year
current_year = pendulum.now().year

# Check if the current year is a leap year
is_leap_year = calendar.isleap(current_year)

# Print the result
if is_leap_year:
    print(f"{current_year} is a leap year.")
else:
    print(f"{current_year} is not a leap year.")

Output:

2024 is a leap year.

First Day of the Month:

11. Write a Python program to print the first day of the current month using Pendulum module.

Code:

# Import the Pendulum module
import pendulum

# Get the current date and time
current_datetime = pendulum.now()

# Get the first day of the current month
first_day_of_month = current_datetime.start_of('month')

# Print the first day of the current month
print("First day of the current month:", first_day_of_month)

Output:

First day of the current month: 2024-02-01 00:00:00+05:30

Last Day of the Month:

12. Write a Python program to print the last day of the current month using Pendulum module.

Code:

# Import the Pendulum module
import pendulum

# Get the current date and time
current_datetime = pendulum.now()

# Get the last day of the current month
last_day_of_month = current_datetime.end_of('month')

# Print the last day of the current month
print("Last day of the current month:", last_day_of_month)

Output:

Last day of the current month: 2024-02-29 23:59:59.999999+05:30

Week Start and End:

13. Write a Python program to print the start and end dates of the current week using Pendulum module.

Code:

# Import the Pendulum module
import pendulum

# Get the current date and time
current_datetime = pendulum.now()

# Get the start date of the current week (Monday)
start_of_week = current_datetime.start_of('week')

# Get the end date of the current week (Sunday)
end_of_week = current_datetime.end_of('week')

# Print the start and end dates of the current week
print("Start date of the current week:", start_of_week)
print("End date of the current week:", end_of_week)

Output:

Start date of the current week: 2024-01-29 00:00:00+05:30
End date of the current week: 2024-02-04 23:59:59.999999+05:30

Is it Weekday or Weekend?:

14. Write a Python program to check if the current day is a weekday or a weekend day using Pendulum module.

Code:

# Import the Pendulum module
import pendulum

# Get the current date and time
current_datetime = pendulum.now()

# Get the day of the week (1 for Monday, 2 for Tuesday, ..., 7 for Sunday)
day_of_week = current_datetime.day_of_week

# Check if the current day is a weekday (Monday to Friday)
is_weekday = day_of_week >= 1 and day_of_week <= 5

# Check if the current day is a weekend day (Saturday or Sunday)
is_weekend = day_of_week == 6 or day_of_week == 7

# Print the result
if is_weekday:
    print("Today is a weekday.")
elif is_weekend:
    print("Today is a weekend day.")
else:
    print("Error in day detection.")

Output:

Today is a weekday.

Time Only:

15. Write a Python program to extract and print the time part from the current date and time using Pendulum module.

Code:

# Import the Pendulum module
import pendulum

# Get the current date and time
current_datetime = pendulum.now()

# Extract the time part from the current date and time
time_part = current_datetime.format('HH:mm:ss')

# Print the extracted time part
print("Time part from the current date and time:", time_part)

Output:

Time part from the current date and time: 12:24:23 

Interval Intersection:

16. Write a Python program to find the overlapping period from two given two time intervals using Pendulum module.

Code:

# Import the Pendulum module
import pendulum

# Define two time intervals as strings
interval1_start = "2020-03-15T08:00:00"
interval1_end = "2020-03-15T12:00:00"

interval2_start = "2020-03-15T10:30:00"
interval2_end = "2020-03-15T14:00:00"

# Parse the time intervals into Pendulum objects
interval1_start_time = pendulum.parse(interval1_start)
interval1_end_time = pendulum.parse(interval1_end)

interval2_start_time = pendulum.parse(interval2_start)
interval2_end_time = pendulum.parse(interval2_end)

# Find the overlapping period
overlap_start = max(interval1_start_time, interval2_start_time)
overlap_end = min(interval1_end_time, interval2_end_time)

# Check if there is an overlap
if overlap_start <= overlap_end:
    print(f"There is an overlapping period from {overlap_start} to {overlap_end}.")
else:
    print("There is no overlapping period.")

Output:

There is an overlapping period from 2020-03-15 10:30:00+00:00 to 2020-03-15 12:00:00+00:00.

Convert to Timestamp:

17. Write a Python program to convert the current date and time to a Unix timestamp using Pendulum module.

Code:

# Import the Pendulum module
import pendulum

# Get the current date and time
current_datetime = pendulum.now()

# Convert the current date and time to a Unix timestamp
unix_timestamp = current_datetime.timestamp()

# Print the Unix timestamp
print("Unix timestamp for the current date and time:", unix_timestamp)

Output:

Unix timestamp for the current date and time: 1706857529.404638

Custom Formatting:

18. Write a Python program to create a custom format for date and time representation and use it for formatting. Use Pendulum module.

Code:

# Import the Pendulum module
import pendulum

# Get the current date and time
current_datetime = pendulum.now()

# Define a custom format for date and time representation
custom_format = "YYYY/MM/DD HH:mm:ss A"

# Format the current date and time using the custom format
formatted_datetime = current_datetime.format(custom_format)

# Print the formatted date and time
print("Formatted date and time using custom format:", formatted_datetime)

Output:

Formatted date and time using custom format: 2024/02/02 12:37:41 PM

Difference in Hours:

19. Write a Python program to find the difference in hours between two arbitrary dates using Pendulum module.

Code:

# Import the Pendulum module
import pendulum

# Define two arbitrary dates as strings
date_str1 = "2019-03-15 10:00:00"
date_str2 = "2019-03-15 14:30:00"

# Parse the date strings into Pendulum objects
date1 = pendulum.parse(date_str1)
date2 = pendulum.parse(date_str2)

# Calculate the difference in hours between the two dates
hours_difference = date2.diff(date1).in_hours()

# Print the difference in hours
print(f"Difference in hours between {date_str1} and {date_str2}: {hours_difference} hours")

Output:

Difference in hours between 2019-03-15 10:00:00 and 2019-03-15 14:30:00: 4 hours

Relative Time:

20. Write a Python program to print the relative time (e.g., "2 hours ago" or "in 30 minutes") for an arbitrary date using Pendulum module.

Code:

# Import the Pendulum module
import pendulum

# Define an arbitrary date as a string
arbitrary_date_str = "2018-03-15 12:30:00"

# Parse the arbitrary date string into a Pendulum object
arbitrary_date = pendulum.parse(arbitrary_date_str)

# Calculate the relative time
relative_time = arbitrary_date.diff_for_humans()

# Print the relative time
print(f"Relative time for {arbitrary_date_str}: {relative_time}")

Output:

Relative time for 2018-03-15 12:30:00: 6 years ago

Age Calculation:

21. Write a Python program to calculate the person's age from a given birthdate using Pendulum module.

Code:

# Import the Pendulum module
import pendulum

# Function to calculate age from birthdate
def calculate_age(birthdate):
    # Get the current date
    current_date = pendulum.now()

    # Parse the birthdate string into a Pendulum object
    birthdate = pendulum.parse(birthdate)

    # Calculate the age
    age = current_date.diff(birthdate).in_years()

    return age

# Example birthdate as a string (format: YYYY-MM-DD)
birthdate_str = "1990-05-15"

# Calculate the age using the function
person_age = calculate_age(birthdate_str)

# Print the calculated age
print(f"The person's age with birthdate {birthdate_str} is {person_age} years.")

Output:

The person's age with birthdate 1990-05-15 is 33 years.

Timezone Offset:

22. Write a Python program to find the timezone offset (in hours) for the current timezone using Pendulum module.

Code:

# Import the Pendulum module
import pendulum

# Get the current date and time
current_datetime = pendulum.now()

# Get the timezone offset in hours for the current timezone
timezone_offset_hours = current_datetime.offset / 3600

# Print the timezone offset
print(f"Timezone offset for the current timezone: {timezone_offset_hours} hours")

Output:

Timezone offset for the current timezone: 5.5 hours

Number of Days in a Month:

23. Write a Python program to get the number of days from a specific month and year (given) using Pendulum module.

Code:

# Import the Pendulum module
import pendulum

# Function to get the number of days in a specific month and year
def get_days_in_month(year, month):
    # Create a Pendulum object for the specified month and year
    target_date = pendulum.datetime(year, month, 1)

    # Calculate the number of days in the month
    days_in_month = target_date.days_in_month

    return days_in_month

# Specify the year and month (format: YYYY-MM)
target_year = 2015
target_month = 3

# Get the number of days using the function
days_in_month = get_days_in_month(target_year, target_month)

# Print the result
print(f"The number of days in {pendulum.date(target_year, target_month, 1).format('MMMM YYYY')} is: {days_in_month} days")

Output:

The number of days in March 2015 is: 31 days

Nearest Hour:

24. Write a Python program to round the current time to the nearest hour using Pendulum module.

Code:

# Import the Pendulum module
import pendulum

# Get the current date and time
current_datetime = pendulum.now()

# Round the current time to the nearest hour
rounded_datetime = current_datetime.start_of('hour')

# Print the rounded datetime
print("Rounded time to the nearest hour:", rounded_datetime)

Output:

Rounded time to the nearest hour: 2024-02-02 13:00:00+05:30

Time Until Next Weekend:

25. Write a Python program to calculate and print the amount of time until the next Saturday using Pendulum module.

Code:

# Import the Pendulum module
import pendulum

# Get the current date and time
current_datetime = pendulum.now()

# Calculate the days remaining until the next Saturday (ISO weekday 6)
days_until_saturday = (6 - current_datetime.weekday()) % 7

# Calculate the next Saturday's date
next_saturday = current_datetime.add(days=days_until_saturday)

# Calculate the time difference until the next Saturday
time_until_saturday = current_datetime.diff(next_saturday)

# Print the amount of time until the next Saturday
print(f"Time until the next Saturday: {time_until_saturday.in_words()}")

Output:

Time until the next Saturday: 2 days

Time Until Midnight:

26. Write a Python program to calculate and print the amount of time until midnight from the current time using Pendulum module.

Code:

# Import the Pendulum module
import pendulum

# Get the current date and time
current_datetime = pendulum.now()

# Calculate the time until midnight
time_until_midnight = current_datetime.end_of('day').diff(current_datetime)

# Print the amount of time until midnight
print(f"Time until midnight: {time_until_midnight.in_words()}")

Output:

Time until midnight: 9 hours 15 minutes 54 seconds

Business Days Count:

27. Write a Python program to determine the number of business days between two arbitrary dates (excluding weekends). Use Pendulum module.

Code:

# Import the Pendulum module
import pendulum

# Function to calculate business days between two dates
def calculate_business_days(start_date, end_date):
    # Initialize a counter for business days
    business_days = 0

    # Initialize a current date for iteration
    current_date = start_date

    # Loop through each day in the date range
    while current_date <= end_date:
        # Check if the current day is a weekday (Monday to Friday)
        if current_date.weekday() < 5:
            business_days += 1

        # Move to the next day
        current_date = current_date.add(days=1)

    return business_days

# Define two arbitrary dates as strings (format: YYYY-MM-DD)
start_date_str = "2020-12-01"
end_date_str = "2020-12-31"

# Parse the date strings into Pendulum objects
start_date = pendulum.parse(start_date_str)
end_date = pendulum.parse(end_date_str)

# Calculate the business days between the two dates using the function
business_days = calculate_business_days(start_date, end_date)

# Print the result
print(f"Business days between {start_date_str} and {end_date_str}: {business_days} days")

Output:

Business days between 2020-12-01 and 2020-12-31: 23 days

Quarter of the Year:

28. Write a Python program to determine the quarter of the year for the current date. Use Pendulum module.

Code:

# Import the Pendulum module
import pendulum

# Get the current date
current_date = pendulum.now()

# Determine the quarter of the year
quarter_of_year = (current_date.month - 1) // 3 + 1

# Print the quarter of the year
print(f"Quarter of the year for the current date ({current_date.format('YYYY-MM-DD')}): {quarter_of_year}")

Output:

Quarter of the year for the current date (2024-02-02): 1

Age in Weeks:

29. Write a Python program to calculate the person's age in weeks of a given a birthdate. Use Pendulum module.

Code:

 # Import the Pendulum module
import pendulum

# Function to calculate age in weeks from a given birthdate
def calculate_age_in_weeks(birthdate):
    # Get the current date
    current_date = pendulum.now()

    # Parse the birthdate string into a Pendulum object
    birthdate = pendulum.parse(birthdate)

    # Calculate the age in weeks
    age_in_weeks = current_date.diff(birthdate).in_weeks()

    return age_in_weeks

# Example birthdate as a string (format: YYYY-MM-DD)
birthdate_str = "1990-05-15"

# Calculate the age in weeks using the function
person_age_in_weeks = calculate_age_in_weeks(birthdate_str)

# Print the calculated age in weeks
print(f"The person's age in weeks with birthdate {birthdate_str} is approximately {person_age_in_weeks} weeks.")

Output:

The person's age in weeks with birthdate 1990-05-15 is approximately 1759 weeks.

Time to a Specific Event:

30. Write a Python program to calculate and print the time remaining until that event of a given a future date and time using Pendulum module.

Code:

 # Import the Pendulum module
import pendulum

# Function to calculate and print time remaining until a future event
def time_until_event(event_datetime):
    # Get the current date and time
    current_datetime = pendulum.now()

    # Calculate the time difference until the event
    time_until_event = current_datetime.diff(event_datetime)

    # Print the time remaining until the event
    print(f"Time remaining until the event ({event_datetime.format('YYYY-MM-DD HH:mm:ss')}): {time_until_event.in_words()}")

# Example future date and time as a string (format: YYYY-MM-DD HH:mm:ss)
future_event_str = "2023-12-31 18:00:00"

# Parse the future event string into a Pendulum object
future_event_datetime = pendulum.parse(future_event_str)

# Call the function with the future event datetime
time_until_event(future_event_datetime)

Output:

Time remaining until the event (2023-12-31 18:00:00): 1 month 1 day 15 hours 50 minutes 46 seconds

Set Time to Midnight:

31. Write a Python program to set the time part of the current date to midnight (00:00:00) using Pendulum module.

Code:

# Import the Pendulum module
import pendulum

# Get the current date and time
current_datetime = pendulum.now()

# Set the time part of the current date to midnight
midnight_datetime = current_datetime.start_of('day')

# Print the result
print(f"Current datetime: {current_datetime}")
print(f"Date with time set to midnight: {midnight_datetime}")

Output:

Current datetime: 2024-02-02 15:35:07.523211+05:30
Date with time set to midnight: 2024-02-02 00:00:00+05:30

Change Day of the Week:

32. Write a Python program that changes the current day to a different day of the week using Pendulum module.

Code:

# Import the Pendulum module
import pendulum

# Get the current date and time
current_datetime = pendulum.now()

# Define the desired day of the week (Monday to Sunday: 1 to 7)
desired_day_of_week = 3  # Change this to the desired day (e.g., 3 for Wednesday)

# Calculate the difference in days to the desired day
days_to_desired_day = (desired_day_of_week - current_datetime.day_of_week) % 7

# Change the current date to the desired day
new_datetime = current_datetime.add(days=days_to_desired_day)

# Print the result
print(f"Original datetime: {current_datetime}")
print(f"Datetime with the day changed to {desired_day_of_week}: {new_datetime}")

Output:

Original datetime: 2024-02-02 15:37:26.706953+05:30
Datetime with the day changed to 3: 2024-02-08 15:37:26.706953+05:30

Travel Time:

33. Write a Python program to calculate and print the travel time between two given dates and times them using Pendulum module.

Code:

# Import the Pendulum module
import pendulum

# Function to calculate and print travel time between two dates and times
def calculate_travel_time(start_datetime, end_datetime):
    # Calculate the travel time between two datetimes
    travel_time = start_datetime.diff(end_datetime)

    # Print the travel time
    print(f"Travel time from {start_datetime} to {end_datetime}: {travel_time.in_words()}")

# Example start datetime and end datetime as strings (format: YYYY-MM-DD HH:mm:ss)
start_datetime_str = "2023-06-01 12:30:00"
end_datetime_str = "2023-06-02 15:45:00"

# Parse the datetime strings into Pendulum objects
start_datetime = pendulum.parse(start_datetime_str)
end_datetime = pendulum.parse(end_datetime_str)

# Call the function with the start and end datetimes
calculate_travel_time(start_datetime, end_datetime)

Output:

Travel time from 2023-06-01 12:30:00+00:00 to 2023-06-02 15:45:00+00:00: 1 day 3 hours 15 minutes

Countdown Timer:

34. Write a Python program that creates a countdown timer that prints the remaining time in seconds every second until reaching zero using Pendulum module.

Code:

# Import the Pendulum module
import pendulum
import time

# Function to create and run a countdown timer
def countdown_timer(end_datetime):
    # Get the current date and time
    current_datetime = pendulum.now()

    # Calculate the initial remaining time
    remaining_time = end_datetime.diff(current_datetime)

    # Run the countdown loop
    while remaining_time.total_seconds() > 0:
        # Print the remaining time in seconds
        print(f"Remaining time: {remaining_time.total_seconds()} seconds\n", end='\r')

        # Wait for 1 second
        time.sleep(1)

        # Update the remaining time for the next iteration
        current_datetime = pendulum.now()
        remaining_time = end_datetime.diff(current_datetime)

    # Print a message when the countdown reaches zero
    print("\nCountdown reached zero!")

# Example end datetime as a string (format: YYYY-MM-DD HH:mm:ss)
end_datetime_str = "2023-12-31 23:59:59"

# Parse the end datetime string into a Pendulum object
end_datetime = pendulum.parse(end_datetime_str)

# Call the countdown timer function with the end datetime
countdown_timer(end_datetime)

Output:

Remaining time: 2801659.410176 seconds
Remaining time: 2801660.424509 seconds
Remaining time: 2801661.43167 seconds
Remaining time: 2801662.445267 seconds
Remaining time: 2801663.448513 seconds
Remaining time: 2801664.460863 seconds
Remaining time: 2801665.468188 seconds
Remaining time: 2801666.48114 seconds
Remaining time: 2801667.491533 seconds
Remaining time: 2801668.497517 seconds
Remaining time: 2801669.502577 seconds
Remaining time: 2801670.51506 seconds
Remaining time: 2801671.522194 seconds
.................
.................

More to Come !

Do not submit any solution of the above exercises at here, if you want to contribute go to the appropriate exercise page.



Follow us on Facebook and Twitter for latest update.