﻿ Python: Convert two date difference in days, hours, minutes, seconds - w3resource

# Python: Convert two date difference in days, hours, minutes, seconds

## Python Datetime: Exercise-37 with Solution

Write a Python program to convert difference of two dates into days, hours, minutes, and seconds.

Sample Solution:

Python Code:

``````# Import the datetime and time classes from datetime module
from datetime import datetime, time

# Define a function called date_diff_in_seconds which calculates the difference in seconds between two datetime objects
def date_diff_in_seconds(dt2, dt1):
# Calculate the time difference between dt2 and dt1
timedelta = dt2 - dt1
# Return the total time difference in seconds
return timedelta.days * 24 * 3600 + timedelta.seconds

# Define a function called dhms_from_seconds which converts seconds into days, hours, minutes, and seconds
def dhms_from_seconds(seconds):
# Calculate minutes and remaining seconds
minutes, seconds = divmod(seconds, 60)
# Calculate hours and remaining minutes
hours, minutes = divmod(minutes, 60)
# Calculate days and remaining hours
days, hours = divmod(hours, 24)
# Return days, hours, minutes, and seconds
return (days, hours, minutes, seconds)

# Specified date: January 1, 2015, at 01:00:00
date1 = datetime.strptime('2015-01-01 01:00:00', '%Y-%m-%d %H:%M:%S')
# Current date and time
date2 = datetime.now()

# Print the time difference in days, hours, minutes, and seconds between the current date and the specified date
print("\n%d days, %d hours, %d minutes, %d seconds" % dhms_from_seconds(date_diff_in_seconds(date2, date1)))
# Print an empty line
print()
```
```

Output:

```858 days, 12 hours, 34 minutes, 21 seconds
```

Explanation:

In the exercise above,

• The code imports the "datetime" and "time" classes from the "datetime" module.
• It defines a function named "date_diff_in_seconds()" which calculates the difference in seconds between two "datetime" objects.
• Inside the "date_diff_in_seconds()" function:
• It calculates the time difference (timedelta) between 'dt2' and 'dt1' using simple subtraction.
• It converts the time difference into seconds by multiplying the number of days by 24 hours and then by 3600 seconds, and adding the number of seconds in the 'timedelta'.
• It defines a function named "dhms_from_seconds()" which converts seconds into days, hours, minutes, and seconds.
• Inside the "dhms_from_seconds()" function:
• It uses the "divmod()" function to calculate minutes, hours, and days from the given number of seconds.
• It defines 'date1' as a specified date, January 1, 2015, at 01:00:00, using the "strptime()" function to parse the string into a "datetime" object.
• It defines 'date2' as the current date and time using the "datetime.now()" function.
• It prints the time difference in days, hours, minutes, and seconds between 'date2' and 'date1'.

Flowchart:

Python Code Editor:

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.

﻿