Boštjan Mejak <bostjan.me...@gmail.com> added the comment:
else:
--> ndays = (date(year, month + 1, 1) - first).days
return first.weekday(), ndays
Oh my God! The line with a pointer is so ugly!
On Mon, Oct 18, 2010 at 7:59 PM, Alexander Belopolsky <
rep...@bugs.python.org> wrote:
>
> Alexander Belopolsky <belopol...@users.sourceforge.net> added the comment:
>
> The most pedantic implementation of calendar.isleap() would be
>
> from datetime import date, timedelta
> def isleap(year):
> return date(year, 3, 1) - date(year, 2, 1) == timedelta(29)
>
> Since python calendar only supports years in the range [1, 9999], the above
> will properly raise ValueError: year is out of range on negative or zero
> year. This also guarantees that calendar module's notion of leap year is
> the same as that of datetime module.
>
> If this is found to be a worthwhile change, I would also rewrite monthrange
> as
>
> def monthrange(year, month):
> first = date(year, month, 1)
> if month == 12:
> ndays = 31
> else:
> ndays = (date(year, month + 1, 1) - first).days
> return first.weekday(), ndays
>
> ----------
>
> _______________________________________
> Python tracker <rep...@bugs.python.org>
> <http://bugs.python.org/issue10073>
> _______________________________________
>
----------
Added file: http://bugs.python.org/file19268/unnamed
_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue10073>
_______________________________________
<span class="Apple-style-span" style="font-family: arial, sans-serif;
font-size: 13px; border-collapse: collapse; ">Â Â Â else:<br>--> Â Â ndays
= (date(year, month + 1, 1) - first).days<br>Â Â Â return first.weekday(),
ndays</span><div>
<font class="Apple-style-span" face="arial, sans-serif"><span
class="Apple-style-span" style="border-collapse:
collapse;"><br></span></font></div><div><font class="Apple-style-span"
face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse:
collapse;">Oh my God! The line with a pointer is so ugly!<br>
</span></font><br><div class="gmail_quote">On Mon, Oct 18, 2010 at 7:59 PM,
Alexander Belopolsky <span dir="ltr"><<a
href="mailto:rep...@bugs.python.org">rep...@bugs.python.org</a>></span>
wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im"><br>
Alexander Belopolsky <<a
href="mailto:belopol...@users.sourceforge.net">belopol...@users.sourceforge.net</a>>
added the comment:<br>
<br>
</div>The most pedantic implementation of calendar.isleap() would be<br>
<br>
from datetime import date, timedelta<br>
def isleap(year):<br>
  return date(year, 3, 1) - date(year, 2, 1) == timedelta(29)<br>
<br>
Since python calendar only supports years in the range [1, 9999], the above
will properly raise ValueError: year is out of range on negative or zero year.
 This also guarantees that calendar module's notion of leap year is the
same as that of datetime module.<br>
<br>
If this is found to be a worthwhile change, I would also rewrite monthrange
as<br>
<br>
def monthrange(year, month):<br>
  first = date(year, month, 1)<br>
  if month == 12:<br>
    ndays = 31<br>
  else:<br>
    ndays = (date(year, month + 1, 1) - first).days<br>
  return first.weekday(), ndays<br>
<div><div></div><div class="h5"><br>
----------<br>
<br>
_______________________________________<br>
Python tracker <<a
href="mailto:rep...@bugs.python.org">rep...@bugs.python.org</a>><br>
<<a href="http://bugs.python.org/issue10073"
target="_blank">http://bugs.python.org/issue10073</a>><br>
_______________________________________<br>
</div></div></blockquote></div><br></div>
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com