Velocity Reviews > How to tell how many weeks apart two datetimes are?

# How to tell how many weeks apart two datetimes are?

Roy Smith
Guest
Posts: n/a

 01-08-2013
How do you tell how many weeks apart two datetimes (t1 and t2) are?
The "obvious" solution would be:

weeks = (t2 - t1) / timedelta(days=7)

but that doesn't appear to be allowed. Is there some fundamental
reason why timedelta division not supported?

marduk
Guest
Posts: n/a

 01-08-2013

On Tue, Jan 8, 2013, at 04:22 PM, Roy Smith wrote:
> How do you tell how many weeks apart two datetimes (t1 and t2) are?
> The "obvious" solution would be:
>
> weeks = (t2 - t1) / timedelta(days=7)
>
> but that doesn't appear to be allowed. Is there some fundamental
> reason why timedelta division not supported?
> --
> http://mail.python.org/mailman/listinfo/python-list

It works for python 3(.2):

>>> x = datetime.timedelta(days=666)
>>> week = datetime.timedelta(days=7)
>>> x / week

95.14285714285714
>>> halfday = datetime.timedelta(hours=12)
>>> x / halfday

1332.0

Ian Kelly
Guest
Posts: n/a

 01-08-2013
On Tue, Jan 8, 2013 at 2:22 PM, Roy Smith <(E-Mail Removed)> wrote:
> How do you tell how many weeks apart two datetimes (t1 and t2) are?
> The "obvious" solution would be:
>
> weeks = (t2 - t1) / timedelta(days=7)
>
> but that doesn't appear to be allowed. Is there some fundamental
> reason why timedelta division not supported?

Seems to be supported in Python 3.3, but not in 2.7.

Ian Kelly
Guest
Posts: n/a

 01-08-2013
On Tue, Jan 8, 2013 at 2:33 PM, Ian Kelly <(E-Mail Removed)> wrote:
> On Tue, Jan 8, 2013 at 2:22 PM, Roy Smith <(E-Mail Removed)> wrote:
>> How do you tell how many weeks apart two datetimes (t1 and t2) are?
>> The "obvious" solution would be:
>>
>> weeks = (t2 - t1) / timedelta(days=7)
>>
>> but that doesn't appear to be allowed. Is there some fundamental
>> reason why timedelta division not supported?

>
> Seems to be supported in Python 3.3, but not in 2.7.

>From the docs:

Changed in version 3.2: Floor division and true division of a
timedelta object by another timedelta object are now supported, as are
remainder operations and the divmod() function. True division and
multiplication of a timedelta object by a float object are now
supported.

MRAB
Guest
Posts: n/a

 01-08-2013
On 2013-01-08 21:22, Roy Smith wrote:
> How do you tell how many weeks apart two datetimes (t1 and t2) are?
> The "obvious" solution would be:
>
> weeks = (t2 - t1) / timedelta(days=7)
>
> but that doesn't appear to be allowed. Is there some fundamental
> reason why timedelta division not supported?
>

Try this:

weeks = (t2 - t1).days / 7

Oscar Benjamin
Guest
Posts: n/a

 01-08-2013
On 8 January 2013 22:50, MRAB <(E-Mail Removed)> wrote:
> On 2013-01-08 21:22, Roy Smith wrote:
>>
>> How do you tell how many weeks apart two datetimes (t1 and t2) are?
>> The "obvious" solution would be:
>>
>> weeks = (t2 - t1) / timedelta(days=7)
>>
>> but that doesn't appear to be allowed. Is there some fundamental
>> reason why timedelta division not supported?
>>

> Try this:
>
> weeks = (t2 - t1).days / 7

You beat me to it...

\$ python
Python 2.7.3 (default, Sep 26 2012, 21:51:14)
[GCC 4.7.2] on linux2
>>> import datetime
>>> dt1 = datetime.datetime.now()
>>> dt2 = dt1 - datetime.timedelta(days=
>>> (dt2 - dt1) / 7 > datetime.timedelta(days=14)

False

Oscar