[Zope-dev] DateTime Error?

Lindell Alderman lindell@atlantis.otak.com
Tue, 21 Mar 2000 15:46:46 -0800


This is how I worked around it.  I derived a class from DateTime.  Then 
I overrode the minute and second methods.  My new methods called
the time module directly and return the right number.  This worked
well.  Of course I knew exactly which methods I needed so I didn't
have to override a lot of different methods.

-L

On Tue, Mar 21, 2000 at 03:28:56PM -0800, Jonothan Farr wrote:
> This is definitely a problem. The common explanation is floating point errors.
> 
> -jfarr
> 
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> Hi! I'm a signature virus.
> Copy me into your .sig to join the fun!
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 
> ----- Original Message ----- 
> From: Lindell Alderman <lindell@atlantis.otak.com>
> To: <lindell@atlantis.otak.com>
> Cc: <zope-dev@zope.org>
> Sent: Tuesday, March 21, 2000 3:18 PM
> Subject: [Zope-dev] DateTime Error?
> 
> 
> > I think I have found an inconsistency in the Zope DateTime class.
> > The following piece of code illustrates it.
> > 
> > #!/usr/bin/python
> > import DateTime
> > now = DateTime.DateTime()
> > 
> > for x in range(0,24):
> >   dt = DateTime.DateTime('%04d-%02d-%02d %02d:30:00' % (now.year(),
> >                                                         now.month(),
> >                                                         now.day(),x))
> >   print dt.parts()
> > 
> > # end of code
> > 
> > Here is the output on my Debian Linux box.
> > 
> > (2000, 3, 21, 0, 30, 0.0, 'US/Pacific')
> > (2000, 3, 21, 1, 30, 0.0, 'US/Pacific')
> > (2000, 3, 21, 2, 30, 0.0, 'US/Pacific')
> > (2000, 3, 21, 3, 30, 0.0, 'US/Pacific')
> > (2000, 3, 21, 4, 30, 0.0, 'US/Pacific')
> > (2000, 3, 21, 5, 30, 0.0, 'US/Pacific')
> > (2000, 3, 21, 6, 30, 0.0, 'US/Pacific')
> > (2000, 3, 21, 7, 30, 0.0, 'US/Pacific')
> > (2000, 3, 21, 8, 29, 60.0, 'US/Pacific')
> > (2000, 3, 21, 9, 30, 0.0, 'US/Pacific')
> > (2000, 3, 21, 10, 30, 0.0, 'US/Pacific')
> > (2000, 3, 21, 11, 30, 0.0, 'US/Pacific')
> > (2000, 3, 21, 12, 30, 0.0, 'US/Pacific')
> > (2000, 3, 21, 13, 30, 0.0, 'US/Pacific')
> > (2000, 3, 21, 14, 30, 7.27595761418e-12, 'US/Pacific')
> > (2000, 3, 21, 15, 30, 0.0, 'US/Pacific')
> > (2000, 3, 21, 16, 30, 0.0, 'US/Pacific')
> > (2000, 3, 21, 17, 30, 7.27595761418e-12, 'US/Pacific')
> > (2000, 3, 21, 18, 30, 0.0, 'US/Pacific')
> > (2000, 3, 21, 19, 30, 0.0, 'US/Pacific')
> > (2000, 3, 21, 20, 30, 0.0, 'US/Pacific')
> > (2000, 3, 21, 21, 30, 0.0, 'US/Pacific')
> > (2000, 3, 21, 22, 30, 0.0, 'US/Pacific')
> > (2000, 3, 21, 23, 30, 0.0, 'US/Pacific')
> > 
> > Notice that at 8:30 am the DateTime class prints 8:29:60
> > instead of 8:30:00.  Then notice at 2:30 and 5:30 the number
> > of seconds is slight off too.  I have not found the cause yet.
> > Has anyone noticed this problem too?
> > 
> > Norman Alderman
> > 
> > _______________________________________________
> > Zope-Dev maillist  -  Zope-Dev@zope.org
> > http://lists.zope.org/mailman/listinfo/zope-dev
> > **  No cross posts or HTML encoding!  **
> > (Related lists - 
> >  http://lists.zope.org/mailman/listinfo/zope-announce
> >  http://lists.zope.org/mailman/listinfo/zope )
> > 
> 
> 
> _______________________________________________
> Zope-Dev maillist  -  Zope-Dev@zope.org
> http://lists.zope.org/mailman/listinfo/zope-dev
> **  No cross posts or HTML encoding!  **
> (Related lists - 
>  http://lists.zope.org/mailman/listinfo/zope-announce
>  http://lists.zope.org/mailman/listinfo/zope )
>