def weekends_between(d1,d2): days_between = (d2-d1).days weekends, leftover = divmod(days_between,7) if leftover: start_day = (d2-timedelta(leftover)).isoweekday() end_day = start_day+leftover if start_day<=6 and end_day>6: weekends +=.5 if start_day<=7 and end_day>7: weekends +=.5 return weekends 参考使用:weekends_between(date(2004,10,1),date(2004,10,10))