On Mon, 08 Sep 2008 21:53:18 -0700, W. eWatson wrote: > I have two dates, ts1, ts2 as below in the sample program. I know the > clock drift in seconds per day. I would like to calculate the actual > date of ts2. See my question at the end of the program.
When faced with a complicated task, break it down into simpler subtasks. Functions are your friends. Here you go: from __future__ import division from datetime import datetime as DT from datetime import timedelta SITE_DRIFT = 4.23 # drift in seconds per day # negative drift means the clock falls slow SEC_PER_DAY = 60*60*24 # number of seconds per day def calc_drift(when, base, drift=SITE_DRIFT): """Return the amount of drift at date when since date base.""" x = when - base days = x.days + x.seconds/SEC_PER_DAY return drift*days def fix_date(when, base, drift=SITE_DRIFT): """Return date when adjusted to the correct time.""" d = calc_drift(when, base, drift) delta = timedelta(seconds=-d) return when + delta And here it is in action: >>> fix_date(DT(2008,9,9), DT(2008,9,8)) datetime.datetime(2008, 9, 8, 23, 59, 55, 770000) I leave it to you to convert date/time strings into datetime objects. -- Steven -- http://mail.python.org/mailman/listinfo/python-list