Calculate hour range between dates in python

python datetime
python time difference in minutes
python difference between two dates in years
adding hours and minutes in python
python datetime range
python datetime to seconds
python datetime day of week
python datetime timezone

How can I find out the hours in a date range? I'm currently calculating and printing the dates between two given dates.

from datetime import timedelta as td, datetime

d1 = datetime.strptime(start_date, '%Y-%m-%d')
d2 = datetime.strptime(end_date, '%Y-%m-%d')

def get_delta(d1, d2):
    delta = d2 - d1
    return delta

delta = get_delta(d1,d2)
for i in range(delta.days + 1):
    print d1 + td(days=i)

Current output:


Expected output:

2016-04-22 00:00:00
2016-04-22 01:00:00
2016-04-22 02:00:00
2016-04-22 03:00:00
2016-04-22 04:00:00
2016-04-22 05:00:00
2016-04-22 06:00:00
2016-04-22 07:00:00

You are incrementing the time by days and not hours, timedelta(days=i) and not timedelta(hours=i)

from datetime import timedelta as td, datetime

start_date = '2016-01-01'
end_date = '2016-01-02'
d1 = datetime.strptime(start_date, '%Y-%m-%d')
d2 = datetime.strptime(end_date, '%Y-%m-%d')

def get_delta(d1, d2):
    delta = d2 - d1
    return delta

delta = get_delta(d1,d2)
for i in range(delta.days * 24 + 1):
    print d1 + td(hours=i)


2016-01-01 00:00:00
2016-01-01 01:00:00
2016-01-01 23:00:00
2016-01-02 00:00:00

How to calculate the time interval between two time strings, Yes, definitely datetime is what you need here. Specifically, the strptime function, which parses a string into a time object. from datetime import  The Duration Calculator calculates the number of days, months and years between two dates.

For readability, to have a clear semantics of what happens in the edge cases, you could define date_range() function that is similar to the builtin range() function:

def date_range(start, end, step):
    while start < end:
        yield start
        start += step


from datetime import datetime, timedelta

HOUR = timedelta(hours=1)

def parse(date_string):
    '''Parse *date_string* in the %Y-%m-%d format.'''
    return datetime(*map(int, date_string.split('-')))

for dt in date_range(parse(start_date), parse(end_date), HOUR):

Note: end_date + ' 00:00:00 is not present in the output. date_range() behaves like range() where end is not included. You could pass parse(end_date) + HOUR to include the end_date.

8.1. datetime — Basic date and time types, A duration expressing the difference between two date, time, or datetime instances Calendrical Calculations, where it's the base calendar for all computations. Left bound for generating dates. end str or datetime-like, optional. Right bound for generating dates. periods int, optional. Number of periods to generate. freq str or DateOffset, default ‘D’ Frequency strings can have multiples, e.g. ‘5H’. See here for a list of frequency aliases. tz str or tzinfo, optional

If you look at the python docs for timedelta objects:

Only days, seconds and microseconds are stored internally

So if you want to get the hours you'll have to convert it from the seconds.

Something like:

for i in range(delta.seconds / 3600 + delta.days * 24):
    print d1 + td(seconds=3600 * i)

How to calculate a time difference in minutes in Python, How do I get the time difference between two dates in Python? The Time Duration Calculator will calculate the time that has elapsed/difference between two dates with time.

Try something like this:

import datetime

d1 = datetime.datetime(2016, 4, 28)
d2 = d1 + datetime.timedelta(days = 2)

delta = (d2 - d1).total_seconds()/3600
for i in range(int(delta)):
    print(d1 + datetime.timedelta(hours=i))

How to calculate the time difference between two datetime objects in , Python's program to calculate time difference between two datetime objects. import datetime. from datetime import timedelta. datetimeFormat  Python Basic: Exercise-14 with Solution. Write a Python program to calculate number of days between two dates. Python, month, day) : The function returns date object with same year, month and day. All arguments are required. Arguments may be integers, in the following ranges: MINYEAR <= year <= MAXYEAR; 1 <= month <= 12

Using pandas

import pandas as pd
datelist = pd.date_range(start = pd.datetime(2016, 1, 1, 0),
                         end = pd.datetime(2016, 1, 2, 0),
                         freq = "H")

Get range of dates between specified start and end date in python , Get range of dates between specified start and end date in python. Python's program to display all dates between two dates. import datetime C:\programs\​time>pep8 --first Introduction and Installation Hello World Tensors Tensor Calculations Computation Graph Variables. ©2017-20  Code in Python to calculate the number of hours between two dates. Like and share. It's FREE too :) Download source code at:

Python, To find the difference between two dates in Python, one can use the timedelta class which is present in the datetime(year, month, day, hour, minute, second). Python Tutorial: Datetime Module - How to work with Dates, Times, Timedeltas, and Timezones - Duration: 27:49. Corey Schafer 229,350 views

Python Tutorial, If you are just start using Python, working with dates and time values to calculate time Duration: 3:18 Posted: Aug 5, 2019 Even I searched in Google a lot, I couldn’t find an easy method to calculate hours between two times in Python. Finally, after a long time of research I got some code which helped to find days between two dates, then I sat for sometime and wrote a script which gives hours minutes and seconds between two dates. Here is the script:

Python: Calculate number of days between two dates, Python: Calculate number of days between two dates. Last update on February 26 2020 08:09:18 (UTC/GMT +8 hours)  Python gives the developer several tools for working with dates and time. In this article, we will be looking at the datetime and time modules. We will study how they work and some common uses for them. Let’s start with the datetime module! The datetime Module We will be learning about the following classes from … Continue reading Python 101: Working with Dates and Time →

  • What is get_delta()? Are d1 and d2 datetime.datetime objects or objects?
  • Won't this always go through the entire last day, rather than only to the hour in end_date?
  • Yes, it will. I just tried to stay as close as possible to the original code snippet.
  • Fair enough. And I suppose as long as the OP sticks with getting the dates from the format '%Y-%m-%d' it won't be an issue. Figured I'd point it out though.
  • @MaximilianPeters this will go through entire days only, what if we wanted to go to the end_date's hour? thanks
  • @Eric I am not sure if I understood your question correctly but you could add the hour to your end_date and adjust the datetime object format accordingly. Is this the same question?…