incrementing a time tuple by one day
peter at engcorp.com
Thu Sep 23 19:24:05 CEST 2004
David Stockwell wrote:
> I'm sure this has been asked before, but I wasn't able to find it.
> First off I know u can't change a tuple but if I wanted to increment a
> time tuple by one day what is the standard method to do that?
> I've tried the obvious things and haven't gotten very far.
> I have a time tuple that was created like this:
> aDate = '19920228'
> x = time.strptime(aDate,"%Y%m%d")
> print x
> (1992, 2, 28, 0, 0, 0, 4, 59, -1)
> y = time.mktime(x) + time.mktime((0,0,1,0,0,0,0,0,0))
> print y
> print time.ctime(y)
> 'Thu Jan 27 05:00:00 2022'
> It appears to have decremented by a day and a month instead of increment.
> What am I doing wrong?
What you're doing wrong is: not using the datetime module...
>>> aDate = '19920228'
>>> x = time.strptime(aDate, '%Y%m%d')
>>> print x
(1992, 2, 28, 0, 0, 0, 4, 59, -1)
>>> d = datetime.datetime.fromtimestamp(time.mktime(x))
datetime.datetime(1992, 2, 28, 0, 0)
>>> y = d + datetime.timedelta(days=1)
'Sat Feb 29 00:00:00 1992'
More information about the Python-list