Kent Johnson wrote:
On Thu, Nov 19, 2009 at 1:14 AM, Stephen Nelson-Smith
<sanel...@gmail.com> wrote:
I have the following method:
def get_log_dates(the_date_we_want_data_for):
t =ime.strptime(the_date_we_want_data_for, '%Y%m%d')
t2 =atetime.datetime(*t[:-2])
Use datetime.datetime.strptime() to save a step:
t2 =atetime.datetime.strptime(the_date_we_want_data_for, '%Y%m%d')
extra_day =atetime.timedelta(days=1)
t3 =2 + extra_day
t2 +=atetime.timedelta(days=1)
next_log_date =3.strftime('%Y%m%d')
return (the_date_we_want_data_for, next_log_date)
Quite apart from not much liking the t[123] variables, does date
arithmetic really need to be this gnarly?
Yes, pretty much. Convert the string to a date-aware object, increment
the date, convert back to a string.
How could I improve the above, especially from a readability
perspective?
Above changes improve readability IMO.
Kent
My opinion is that these three things don't usually belong in the same
function. You should be converting incoming dates to datetime format,
and only convert back when you're ready to output something that has to
be human-readable text. That way you avoid double-conversions, and can
localize problems such as dealing with multiple timezones or daylight
savings. When you're passing dates around the program, use a simple,
self-describing format, such as datetime.
YMMV,
DaveA
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor