Guest User

Untitled

a guest
Feb 20th, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.13 KB | None | 0 0
  1. #620031587
  2. #Lab 1
  3.  
  4. #Days in month and Day names lists
  5. month_days = [('January',[31]),('February',[28,29]),('March',[31]),
  6. ('April',[30]),('May',[31]),('June',[30]),('July',[31]),('August',[31]),
  7. ('September',[30]),('October',[31]),('November',[30]),('December',[31])]
  8.  
  9. day_names = ['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday']
  10.  
  11. #Problem 1
  12. #Function days_in_month
  13. #Arguments: Month
  14. #Returns: Days in month
  15. def days_in_month(month):
  16.     #No empty strings
  17.     if month == '':
  18.         return "Enter a month"
  19.     #Loop through month_days array
  20.     for i in range(len(month_days)):
  21.         #If month = first index of current month_days, return it
  22.         if month == month_days[i][0]:
  23.             return month_days[i][1]
  24.         #Otherwise, do nothing
  25.         else:
  26.             pass
  27.     #If month not found, return an error
  28.     return "Not a valid month"
  29.    
  30.  #Problem 2
  31.  #Function day_of_week
  32.  #Arguments:Day, Month, Year
  33.  #Returns: Day of week
  34. def day_of_week(d,m,y):
  35.     #Add 12 to month and subtract 1 from year if month = Jan or Feb
  36.     if m == 1 or m == 2:
  37.         m+=12
  38.         y-=1
  39.     else:
  40.         pass
  41.     #Zeller's formula
  42.     day = (((13*m+3) / 5 + d + y + (y /4) - (y / 100) + (y / 400)) %7)
  43.        
  44.     return day_names[day]
  45.    
  46. #Problem 3
  47. #Function unlucky
  48. #Arguments: Year
  49. #Returns: Months of year with Friday 13th
  50. def unlucky(year):
  51.     #Validate year
  52.     if year < 0:
  53.         return "Invalid year"
  54.     else:
  55.         #Return the unlucky dates in the year
  56.         return [(i,j,year) for i in range(1,12) for j in range(1,31) if j == 13 and day_of_week(j,i,year) == 'Friday']
  57.                    
  58.  
  59. #Problem 4
  60. #Function mostUnlucky
  61. #Arguments: None
  62. #Returns: Years with more than 3 unlucky days
  63. def mostUnlucky():
  64.     #List for unlucky years
  65.     unlucky_years = []
  66.    
  67.     #Loop through range
  68.     for i in range(0,2010):
  69.         #If unlucky dates > 2, add year to list
  70.         if len(unlucky(i)) > 2:
  71.             unlucky_years += [i]
  72.         #Otherwise, do nothing
  73.         else:
  74.             pass
  75.     #Return unlucky years as list        
  76.     return unlucky_years
Add Comment
Please, Sign In to add comment