Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Implement a function called first_mondays with a single parameter, namely a year

ID: 3689124 • Letter: I

Question

Implement a function called first_mondays with a single parameter, namely a year y. The function should print the dates of the first Monday of every month in that year. For example, first_mondays(2016) should print

First Mondays of 2016:

January 4, 2016

February 1, 2016

March 7, 2016

April 4, 2016

May 2, 2016

June 6, 2016

July 4, 2016

August 1, 2016

September 5, 2016

October 3, 2016

November 7, 2016

December 5, 2016

This is to be written in Python 3.5 and please use correct indentation! Can not use Python's datetime module!

Explanation / Answer

#Assuming that jan 1st 1800 is Wednesday
def leap(year):
    if(year%400==0):
        #print(year,'*');
        return 1
    elif(year%100==0):
        #print(year,'**');
        return 0
    elif(year%4==0):
        #print(year,'***');
        return 1
    #print(year,'**#');
    return 0
def first_mondays(year):
    days=0
    for i in range(1800,year):
        if(leap(i)==1):
            days+=366
            #print(i,366)
        else:
            days+=365
            #print(i,365)
    fday = (3+days)%7
    days_mon = [31,28,31,30,31,30,31,31,30,31,30,31]
    if(leap(year)==1):
        days_mon[1]=29
    names = ['January','February','March','April','May','June','July','August','September','October','November','December']
    for i in range(0,12):
        if(fday<=1):
            print(names[i],1+1-fday,year)
        else:
            print(names[i],1+8-fday,year)
        fday = fday+days_mon[i]
        fday = fday%7;
first_mondays(2016)

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote