Рассчитать часы за период. с учетом летнего времениPython

Программы на Python
Anonymous
Рассчитать часы за период. с учетом летнего времени

Сообщение Anonymous »

Я хочу рассчитать число часов с учетом летнего времени для общего количества часов за период, локализованный для Европы/Лондона.
Учитывая время начала, мне нужно сгенерировать время окончания, а затем вычислить количество часов за период.
Например:

МЕСЯЧНЫЙ ПЕРИОД

Код: Выделить всё

# define start
s = pd.to_datetime('2023-03-01').tz.localize('Europe/London')

>>> Timestamp('2023-03-01 00:00:00+0000', tz='Europe/London')

# generate end
e =  (s + pd.offsets.MonthEnd()) + pd.Timedelta(days=1)

>>> Timestamp('2023-04-01 01:00:00+0100', tz='Europe/London')

# calculate hrs in period
(e - s) / pd.Timedelta(hours = 1)

>>> 743.0
Это кажется точным и дает правильный результат, поскольку в Великобритании в марте теряется час.

Однако при изменении года на 2024 и настройке s = pd.to_datetime('2024-03-01').tz.localize('Europe/London') возвращается неправильный результат 744.
Мне нужен полноценный способ расчета часов за период.

Подробнее здесь: https://stackoverflow.com/questions/790 ... -dst-aware

Вернуться в «Python»