Advertisement
Guest User

Untitled

a guest
May 25th, 2015
227
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.41 KB | None | 0 0
  1. #returns the next day when given a date
  2. def next_day(year,month,day):
  3.     day = day + 1
  4.     if day > in_month(year,month):
  5.         day = 1
  6.         month = month + 1
  7.     if month > 12:
  8.         month = 1
  9.         year = year + 1
  10.     return (year,month,day)
  11.  
  12. #returns the maximum day of a month
  13. def in_month(year,month):
  14.     if month in (4,6,9,11):
  15.         month = 30
  16.     elif month == 2 and is_leap_year(year) == True:
  17.         month = 29
  18.     elif month == 2:
  19.         month = 28
  20.     else:
  21.         month = 31
  22.     return month
  23.  
  24. #checks if a year is a leap year
  25. def is_leap_year(year):
  26.     if year % 4 == 0:
  27.         if year % 100 == 0 and not year % 400 == 0:
  28.             return False
  29.         return True
  30.     return False
  31.  
  32. #checks whether the first date occurs before the second
  33. def date_before(year1,month1,day1,year2,month2,day2):
  34.     if year1 < year2:
  35.         return True
  36.     if year1 == year2:
  37.         if month1 < month2:
  38.             return True
  39.         if month1 == month2:
  40.             if day1 < day2:
  41.                 return True
  42.     return False
  43.  
  44. #calculates the number of days between two dates  
  45. def day_calculator(year1,month1,day1,year2,month2,day2):
  46.     assert date_before(year1,month1,day1,year2,month2,day2) == True
  47.  
  48.     days = 0
  49.  
  50.     while date_before(year1,month1,day1,year2,month2,day2) == True:
  51.         year1,month1,day1 = next_day(year1,month1,day1)
  52.         days += 1
  53.     return days
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement