Python Help - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: Homework (https://python-forum.io/forum-9.html) +--- Thread: Python Help (/thread-30703.html) |
Python Help - ineedpythonhelp - Nov-02-2020 Hello, I need help for an assignment. I seem to have a problem with the output, for the month November 2020, the first day should start on Monday but the output does not appear so. Any suggestions on where I've went wrong? # mm = 11 # yy = 2020 mm = int(input("Input your month: ")) yy = int(input("Input your year: ")) month = {1: 'January', 2: 'February', 3: 'March', 4: 'April', 5: 'May', 6: 'June', 7: 'July', 8: 'August', 9: 'September', 10: 'October', 11: 'November', 12: 'December'} # code below for calculation of odd days day = (yy - 1) % 400 day = (day // 100) * 5 + ((day % 100) - (day % 100) // 4) + ((day % 100) // 4) * 2 day = day % 7 nly = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] ly = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] s = 0 if yy % 4 == 0: if yy % 100 == 0 and yy % 400 == 0: for i in range(mm - 1): s += ly[i] elif yy % 100 == 0 and yy % 400 != 0: for i in range(mm - 1): s += nly[i] elif yy % 100 != 0: for i in range(mm - 1): s += ly[i] else: for i in range(mm - 1): s += nly[i] day += s % 7 day = day % 7 # variable used for white space filling # where date not present space = '' space = space.rjust(2, ' ') # code below is to print the calendar print(month[mm], yy) print('Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa') if mm == 9 or mm == 4 or mm == 6 or mm == 11: for i in range(31 + day): if i <= day: print(space, end=' ') else: print("{:02d}".format(i - day), end=' ') if (i + 1) % 7 == 0: print() elif mm == 2: if yy % 4 == 0: if yy % 100 == 0 and yy % 400 == 0: p = 30 elif yy % 100 == 0 and yy % 400 != 0: p = 29 elif yy % 100 != 0: p = 30 else: p = 29 for i in range(p + day): if i <= day: print(space, end=' ') else: print("{:02d}".format(i - day), end=' ') if (i + 1) % 7 == 0: print() else: for i in range(32 + day): if i <= day: print(space, end=' ') else: print("{:02d}".format(i - day), end=' ') if (i + 1) % 7 == 0: print() RE: Python Help - perfringo - Nov-02-2020 (Nov-02-2020, 07:24 AM)ineedpythonhelp Wrote: I seem to have a problem with the output, for the month November 2020, the first day should start on Monday but the output does not appear so. What is the reason it should start on Monday? November started on Sunday. RE: Python Help - Larz60+ - Nov-02-2020 use datetime module, see: https://pymotw.com/3/datetime/ RE: Python Help - ineedpythonhelp - Nov-03-2020 (Nov-02-2020, 02:00 PM)perfringo Wrote:(Nov-02-2020, 07:24 AM)ineedpythonhelp Wrote: I seem to have a problem with the output, for the month November 2020, the first day should start on Monday but the output does not appear so. Ah sorry I meant Sunday! The output did not start on Sunday. |