[Tutor] time comparison question
Brian van den Broek
bvande at po-box.mcgill.ca
Fri Nov 26 10:45:53 CET 2004
Hi all,
I'm trying to build some Python 2.3.4 code which will determine if the
actual time when it is run is after the date and time specified in some
data. I want my data to be able to specify the target date/time in a
various levels of detail. I.e., I want 2004-11-28 13:25, 2004-11-28,
11-28, 11-28 13:25 to all be accepted.
My first thought was to get the current time via time.time() and then
parse my target date into a struct_time tuple to pass to time.mktime(),
run a comparison and be done. However, a struct_time tuple has data that
I won't know, given one of my target dates. I can make sensible dummies
for seconds (as well as year, hours and minutes when my target does not
specify them), and I know that the time module will try to make a
reasonable guess if given -1 for the DST element. But for
a_struct_time_tuple[-3:-1], I'd just be guessing at the weekday and day
of year. This leads to two questions:
1) As I write, time.asctime() gives 'Fri Nov 26 04:32:18 2004' for a
time.localtime() of (2004, 11, 26, 4, 32, 18, 4, 331, 0). If I were
filling out a target date of 2004-11-26 04:32, I might well end up
passing something like (2004, 11, 26, 4, 32, 18, 6, 328, 0) to
time.mktime() for the result 'Sun Nov 26 04:32:18 2004'. If I am not
actually using the weekday information, I suspect that I can just ignore
the incorrect 'Sun'. But I feel better checking -- is anything going to
break by giving struct_time elements that don't make sense (provided of
course I am not myself explicitly drawing upon them)?
2) Naturally, these worries lead me to think that there must be a better
way. I took a brief look at the datetime module, thinking it was a
natural place to find such tools. But it is all in terms of classes.
Sadly, I am still not too comfortable with doing things via OOP, so I'd
prefer a procedural (if that's the right term for a program with
functions but no classes) way. Is there a cleaner, non-class employing,
way of meeting my goal of finding out if a date of the form YYYY-MM-DD
is in the future, present, or past? (If it matters, I am on Windows.)
Thanks for any links, etc.
Best to all,
Brian vdB
More information about the Tutor
mailing list