Need Help comparing dates

colincolehour at gmail.com colincolehour at gmail.com
Mon Jun 19 14:24:40 EDT 2006


I kept getting a Python error for the following line:

month = m[webMonth]


I changed it to month = month_numbers[webMonth]

and that did the trick.


Tim Chase wrote:
> > I am new to Python and am working on my first program. I am trying to
> > compare a date I found on a website to todays date. The problem I have
> > is the website only shows 3 letter month name and the date.
> > Example: Jun 15
>
> No year, right?  Are you making the assumption that the year is
> the current year?
>
> > How would I go about comparing that to a different date?
>
> Once you've got them as dates,
>
>  >>> from datetime import date
>
> you can just compare them as you would any other comparable items.
>
> If you need to map the month-strings back into actual dates, you
> can use this dictionary:
>
>  >>> month_numbers = dict([(date(2006, m, 1).strftime("%b"), m)
> for m in range(1,13)])
>
> It happens to be locale specific, so you might have to tinker a
> bit if you're mapping comes out differently from what the website
> uses.  I also made the assumption the case was the same (rather
> than trying to normalize to upper/lower case)
>
> Then, you can use
>
>  >>> webpageDateString = "Mar 21"
>  >>> webMonth, webDay = webpageDateString.split()
>  >>> month = m[webMonth]
>  >>> day = int(webDay)
>  >>> webpageDate = date(date.today().year, month, day)
>  >>> compareDate = date.today()
>  >>> compareDate < webpageDate
> False
>  >>> compareDate > webpageDate
> True
>
> You can wrap the load in a function, something like
>
>  >>> def isNewer(dateString, year = date.today().year):
> ...     monthString, dayString = dateString.split()
> ...     month = month_numbers[monthString]
> ...     day = int(dayString)
> ...     return date.today() < date(year, month, day)
>
> which will allow you to do
>
>  >>> isNewer("Jul 1")
> True
>  >>> isNewer("Apr 1")
> False
>
> and the like.
> 
> There's plenty of good stuff in the datetime module.
> 
> -tkc




More information about the Python-list mailing list