1. #!/usr/bin/env python 
  2.  
  3. # Created on 2012-7-5 by Eric 
  4. # About calculate the days between the two dates 
  5.  
  6. def isComYear(year):# judge if a certain year is a common year in which February only has 28 days 
  7.         if year%100 == 0
  8.                 if (year/100)%4 == 0
  9.                         return 0 
  10.                 else
  11.                         return 1 
  12.         else
  13.                 if year%4 == 0
  14.                         return 0 
  15.                 else
  16.                         return 1 
  17.  
  18. def daysInMonth(year,month):#calculate the total days in a certain month in a certain year   
  19.         bigMonth = [135781012
  20.         if month in bigMonth: 
  21.                 return 31 
  22.         elif month == 2
  23.                 if isComYear(year): 
  24.                         return 28 
  25.                 else
  26.                         return 29 
  27.         else
  28.                 return 30 
  29.  
  30. def daysInYear(year):#calculate the total days in a certain year 
  31.         if isComYear(year): 
  32.                 return 365 
  33.         else
  34.                 return 366 
  35.  
  36. def distance(date1,date2): # first sort the two date 
  37.         list1 = [] 
  38.         list2 = [] 
  39.         result = 0 
  40.         for ele in date1.split("/"): 
  41.                 list1.append(int(ele)) 
  42.         for ele in date2.split("/"): 
  43.                 list2.append(int(ele)) 
  44.         print list1 
  45.         print list2 
  46.         list1,list2 = min(list1,list2),max(list1,list2) 
  47.  
  48.         if list1[0] == list2[0]: # equal year 
  49.                 if list1[1] == list2[1]: # equal month 
  50.                         result = list1[2] - list2[2
  51.                 else
  52.                         result1 = 0 
  53.                         for month in range(list1[1],list2[1]): 
  54.                                 result1 += daysInMonth(list1[0],month) 
  55.                         result = result1 - list1[2] + list2[2
  56.         else
  57.                 #if year is not equal,we won't care if the month is equal.We will only 
  58.                 #care the first year's remaining days,the last year's passed days and the total days between the two years 
  59.                 result2 = 0 
  60.                 result3 = 0 
  61.                 result4 = 0 
  62.                 for year in range(list1[0],list2[0]): 
  63.                         result2 += daysInYear(year) 
  64.                 if list1[1] == 1
  65.                         result3 = list1[2] - 1 
  66.                 else
  67.                         for month in range(1,list1[1]): 
  68.                                 result3 += daysInMonth(list1[0],month) 
  69.                 if list2[1] == 1
  70.                         result4 = list[2
  71.                 else
  72.                         for month in range(1,list2[1]): 
  73.                                 result4 += daysInMonth(list2[0],month) 
  74.                 result = result2 - result3 + result4 
  75.         return result 
  76.  
  77. def main(): 
  78.         date1 = raw_input("input the first date in the format YY/MM/DD : "
  79.         date2 = raw_input("input the second date in the format YY/MM/DD: "
  80.         dist = distance(date1,date2) 
  81.         print "the distance between the two date is:",abs(dist) 
  82.  
  83. if __name__ == '__main__'
  84.         main()