timedelta and float multiplication in python 2
Peter Otten
__peter__ at web.de
Thu Feb 11 06:24:20 EST 2016
Nagy László Zsolt wrote:
> I ran into a problem today where I had to determine the mean point
> between two datetimes. Here is an example:
>
>>>> start = datetime.datetime(2016,2,11)
>>>> stop = datetime.datetime.now()
>>>> mean = start + (stop-start)*0.5
> Traceback (most recent call last):
> File "<stdin>", line 1, in <module>
> TypeError: unsupported operand type(s) for *: 'datetime.timedelta' and
> 'float'
>
> A workaround could be something like this:
>
>>>> start + datetime.timedelta(seconds=0.5*((stop-start).total_seconds()))
> datetime.datetime(2016, 2, 11, 5, 45, 45, 818009)
How about
mean = start + (stop - start) / 2
?
> Interesting thing is that total_seconds() already returns fractions of
> seconds, so it would be almost trivial to implement timedelta
> multiplication with floats.
>
> I have checked and it does work with Python 3. But it does not work with
> Python 2 - is there a good reason for this?
>
> Thanks,
>
> Laszlo
More information about the Python-list
mailing list