Please Provide a quote.
A1-W2023-NDD Contents ▪ 1 Assignment 1 ▪ 1.1 Overview ▪ 1.2 Restrictions ▪ 1.3 Instructions ▪ 1.3.1 Preparation ▪ 1.3.2 Milestone 1 ▪ 1.3.2.1 Check Your Work ▪ 1.3.2.2 Feedback ▪ 1.3.3 Milestone 2 ▪ 1.3.3.1 Check Your Work ▪ 1.3.3.2 Submission ▪ 1.3.4 Final Submission ▪ 1.3.4.1 Final Checks ▪ 1.3.4.2 Submitting Your Code For Review ▪ 1.4 Formatting And Style ▪ 1.4.1 Comments And Documentation ▪ 1.4.2 PEP ▪ 1.4.3 Functions and Variables ▪ 1.4.4 Git Commits ▪ 1.5 Rubric ▪ 1.6 Sample Output Assignment 1 Overview A1-W2023-NDD - CDOT Wiki https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD 1 of 8 3/4/2023, 3:05 AM https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Assignment_1 https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Assignment_1 https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Assignment_1 https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Assignment_1 https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Assignment_1 https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Assignment_1 https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Assignment_1 https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Assignment_1 https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Assignment_1 https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Assignment_1 https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Assignment_1 https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Overview https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Overview https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Overview https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Overview https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Overview https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Overview https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Overview https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Overview https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Overview https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Overview https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Overview https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Restrictions https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Restrictions https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Restrictions https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Restrictions https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Restrictions https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Restrictions https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Restrictions https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Restrictions https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Restrictions https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Restrictions https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Restrictions https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Instructions https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Instructions https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Instructions https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Instructions https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Instructions https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Instructions https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Instructions https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Instructions https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Instructions https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Instructions https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Instructions https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Preparation https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Preparation https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Preparation https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Preparation https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Preparation https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Preparation https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Preparation https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Preparation https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Preparation https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Preparation https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Preparation https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Milestone_1 https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Milestone_1 https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Milestone_1 https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Milestone_1 https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Milestone_1 https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Milestone_1 https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Milestone_1 https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Milestone_1 https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Milestone_1 https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Milestone_1 https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Milestone_1 https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Check_Your_Work https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Check_Your_Work https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Check_Your_Work https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Check_Your_Work https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Check_Your_Work https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Check_Your_Work https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Check_Your_Work https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Check_Your_Work https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Check_Your_Work https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Check_Your_Work https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Check_Your_Work https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Feedback https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Feedback https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Feedback https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Feedback https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Feedback https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Feedback https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Feedback https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Feedback https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Feedback https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Feedback https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Feedback https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Milestone_2 https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Milestone_2 https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Milestone_2 https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Milestone_2 https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Milestone_2 https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Milestone_2 https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Milestone_2 https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Milestone_2 https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Milestone_2 https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Milestone_2 https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Milestone_2 https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Check_Your_Work_2 https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Check_Your_Work_2 https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Check_Your_Work_2 https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Check_Your_Work_2 https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Check_Your_Work_2 https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Check_Your_Work_2 https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Check_Your_Work_2 https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Check_Your_Work_2 https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Check_Your_Work_2 https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Check_Your_Work_2 https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Check_Your_Work_2 https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Submission https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Submission https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Submission https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Submission https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Submission https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Submission https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Submission https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Submission https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Submission https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Submission https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Submission https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Final_Submission https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Final_Submission https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Final_Submission https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Final_Submission https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Final_Submission https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Final_Submission https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Final_Submission https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Final_Submission https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Final_Submission https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Final_Submission https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Final_Submission https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Final_Checks https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Final_Checks https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Final_Checks https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Final_Checks https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Final_Checks https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Final_Checks https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Final_Checks https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Final_Checks https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Final_Checks https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Final_Checks https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Final_Checks https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Submitting_Your_Code_For_Review https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Submitting_Your_Code_For_Review https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Submitting_Your_Code_For_Review https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Submitting_Your_Code_For_Review https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Submitting_Your_Code_For_Review https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Submitting_Your_Code_For_Review https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Submitting_Your_Code_For_Review https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Submitting_Your_Code_For_Review https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Submitting_Your_Code_For_Review https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Submitting_Your_Code_For_Review https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Submitting_Your_Code_For_Review https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Formatting_And_Style https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Formatting_And_Style https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Formatting_And_Style https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Formatting_And_Style https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Formatting_And_Style https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Formatting_And_Style https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Formatting_And_Style https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Formatting_And_Style https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Formatting_And_Style https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Formatting_And_Style https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Formatting_And_Style https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Comments_And_Documentation https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Comments_And_Documentation https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Comments_And_Documentation https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Comments_And_Documentation https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Comments_And_Documentation https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Comments_And_Documentation https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Comments_And_Documentation https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Comments_And_Documentation https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Comments_And_Documentation https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Comments_And_Documentation https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Comments_And_Documentation https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#PEP https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#PEP https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#PEP https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#PEP https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#PEP https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#PEP https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#PEP https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#PEP https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#PEP https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#PEP https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#PEP https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Functions_and_Variables https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Functions_and_Variables https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Functions_and_Variables https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Functions_and_Variables https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Functions_and_Variables https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Functions_and_Variables https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Functions_and_Variables https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Functions_and_Variables https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Functions_and_Variables https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Functions_and_Variables https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Functions_and_Variables https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Git_Commits https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Git_Commits https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Git_Commits https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Git_Commits https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Git_Commits https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Git_Commits https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Git_Commits https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Git_Commits https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Git_Commits https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Git_Commits https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Git_Commits https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Rubric https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Rubric https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Rubric https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Rubric https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Rubric https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Rubric https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Rubric https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Rubric https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Rubric https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Rubric https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Rubric https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Sample_Output https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Sample_Output https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Sample_Output https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Sample_Output https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Sample_Output https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Sample_Output https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Sample_Output https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Sample_Output https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Sample_Output https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Sample_Output https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD#Sample_Output Your assignment will be to create a script that can correctly print future and past dates. The script will divide a typical year by a given value. For example, 365 divided by 2 will be rounded to 182. Your script will then the correct date 182 days into the past and 182 days into the future. Example: ./assignment1.py 2023-01-25 2 A year divided by 2 is 182 days. The date 182 days ago was 2022-07-27. The date 182 from now will be 2023-07-26. Restrictions ▪ You may only use sys for parsing command line arguments. ▪ No other modules are allowed Instructions The assignment will be broken into two milestones and one final submission. Please update your repository for each milestone and complete the final submission in order to earn all marks. ▪ Milestone 1 will be due on February 10. ▪ Milestone 2 will be due on February 24. ▪ The Final submission will be due on March 10. Preparation 1. Accept the assignment on Blackboard. 2. Once you accepted the assignment, you will get access to a starting repo. 3. Clone the repo to your local VM. 4. Add your code to the existing assignment1.py file. 5. Commit after each significant change to the code. 6. You can never have too many commits. GitHub is your proof of work and your backup if things go wrong. A1-W2023-NDD - CDOT Wiki https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD 2 of 8 3/4/2023, 3:05 AM Milestone 1 1. You are provided with a function called after(). This function is complete and should successfully return the next day’s date when provided with a starting date in YYYY-MM-DD format. You can experiment with this function by importing it into the Python interpreter: from assignment1 import after after('2023-01-25') 2. Study the after() function and explain how it works. Use in-line comments for each line of code. 3. Use the after() function as a guide, and complete the before() function. This function should perform the opposite: it should return the previous day’s date. 4. Don’t forget to push your code. Check Your Work Use the check script to verify your work so far. python3 CheckA1.py -f -v TestBefore Feedback I will provide you feedback on GitHub. Check the Issues tab, and make any changes that are required before the next deadline. You can close the issue to indicate that you have seen the comment. Milestone 2 This Milestone will ask you to refactor your code. This means modifying existing code to make it more portable. 1. Complete the leap_year() function, using the relevant code that’s already inside after(). 2. Edit your after() function. Replace any code that calculates leap years with a leap_year function call. 1. Verify that after() still works. 2. Complete the dbda() function. Given a starting date and number of days, dbda() should call either before() or after() inside of a loop and return the end date. A negative number of days should return a date before start_date, and a postive number should return a date after A1-W2023-NDD - CDOT Wiki https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD 3 of 8 3/4/2023, 3:05 AM start_date. Check Your Work Use the check script to verify your work. ▪ python3 CheckA1.py -f -v TestLeap to test your leap_year() function. ▪ python3 CheckA1.py -f -v TestAfter to test after() and ensure it’s still working. ▪ python3 CheckA1.py -f -v TestDBDA to test dbda(). Submission ▪ Take the screenshots of the output of check scripts. Add the screenshots in the files named: milstone2_leap.jpg, milstone2_after.jpg, milstone2_dbda.jpg ▪ Commit these three files to repository. ▪ Commits must be done before the deadline, a 20% deduction of marks applies to late submissions per day. Final Submission For the final submission you should integrate your functions into a working script, add relevant comments and implement some error checking so that invalid dates or arguments will cause a usage message to be displayed. 1. In the main block, check the number of arguments. The first argument should be a valid date, and the second should be a divisor of a typical year (365 days). 2. A divisor of 2 would mean dividing a year by half. This gives us 182 days. (This is rounded down, use the round() function). 3. Print the number of days for the divisor. 4. Use one call to dbda() to return the date that’s 182 days before the start date. 5. Use a second call to dbda() to return the date that’s 182 days after the start date. At this point you have a working script. Implement error checking: 1. Complete the usage() function. This should print a helpful message to the user when they make a mistake, and exit. 2. Complete the valid_date() function. This should use error checking to make sure that any date entered by the user is valid. 3. Ensure that the divisor argument is not zero! This would cause a Divide by zero error. A1-W2023-NDD - CDOT Wiki https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD 4 of 8 3/4/2023, 3:05 AM Final Checks ▪ python3 CheckA1.py -f -v TestValidDate to test your valid_date() function. ▪ python3 CheckA1.py -f -v TestFinal to test the final version of your script. Submitting Your Code For Review 1. Push your code to GitHub before the deadline. 2. In addition, submit your code to Blackboard. A link will be provided. Formatting And Style A significant amount of your mark will be based on the things that aren’t your code. Please review the following guidelines to maximise your grade. Comments And Documentation You need to be commenting your code. The following documentation is required: ▪ in-line comments: Any line of code that is doing something non-obvious should be commented. Explain why you are doing something, rather than what you are doing. ▪ function docstrings: After your def line, you enter a docstring inside ““. Any function that doesn’t already come with a docstring should have one. ▪ top-level docstring: You will have noticed that the top of your assignment1.py file already has this docstring. Complete the Academic Honesty declaration and complete the docstring. PEP The PEP-8 Style Guide (https://peps.python.org/pep-0008/) is an official Python document that describes best practices for formatting your code. You should follow this guide as much as possible. You may find that using a linter (https://code.visualstudio.com/docs/python/linting) to check style to be useful. Functions and Variables A1-W2023-NDD - CDOT Wiki https://wiki.cdot.senecacollege.ca/wiki/A1-W2023-NDD 5 of 8 3/4/2023, 3:05 AM https://peps.python.org/pep-0008/ https://peps.python.org/pep-0008/ https://peps.python.org/pep-0008/ https://peps.python.org/pep-0008/ https://peps.python.org/pep-0008/ https://peps.python.org/pep-0008/ https://code.visualstudio.com/docs/python/linting https://code.visualstudio.com/docs/python/linting https://code.visualstudio.com/docs/python/linting https://code.visualstudio.com/docs/python/linting https://code.visualstudio.com/docs/python/linting https://code.visualstudio.com/docs/python/linting ▪ In addition to the required functions, you may create as many functions as you need. ▪ Functions should be in lower case, and spaces should be represented with an underscore. For example: function_name. ▪ Any data used inside of a function should be passed in as a parameter. Avoid global variables. ▪ Variables should have a sensible name. Avoid naming things x. ▪ Variables should be in lower case, and spaces represented by an underscore. For example: start_date. Git Commits A workplace will have its own policy about how often to commit, and how to document commits. For us, git commits are your proof of work. Assignments that lack commits are subject to Academic Integrity review. ▪ A good practice is to create a commit for every significant change to your code. At the very least, commit after completing each of the required functions. ▪ An acceptable commit message needs to short, but should also describe the change. For example: git commit -m "completed