How can I get hours from a Python datetime?
Question:
I have a Python datetime, d, and I want to get the number of hours since midnight as a floating point number. The best I’ve come up with is:
h = ((((d.hour * 60) + d.minute) * 60) + d.second) / (60.0 * 60)
Which gives 4.5 for 4:30am, 18.75 for 6:45pm, etc. Is there a better way?
Answers:
h = d.hour + d.minute / 60. + d.second / 3600.
has less brackets…
h = (d - d.replace(hour=0,minute=0,second=0)).seconds / 3600.
… has less division and/or multiplication
I have a Python datetime, d, and I want to get the number of hours since midnight as a floating point number. The best I’ve come up with is:
h = ((((d.hour * 60) + d.minute) * 60) + d.second) / (60.0 * 60)
Which gives 4.5 for 4:30am, 18.75 for 6:45pm, etc. Is there a better way?
h = d.hour + d.minute / 60. + d.second / 3600.
has less brackets…
h = (d - d.replace(hour=0,minute=0,second=0)).seconds / 3600.
… has less division and/or multiplication