LeapYear Solution

$30.00

Category:

Description

File Name:

 

H:\CPSC1150\Lab6\LeapYear.java
Purpose

 

To calculate whether the given year is a leap year. If it is, then what day February 29th  is on.

.

Input

 

The year
Output

 

If it is a leap year or not. If it is then what day February 29th is on

 

 

Program Logic (Pseudocode)

 

Algorithm LeapYear

Start

(main method)

  1. Initialize variables

(a) day = 29 in int

(b) month = 2 in int

(c) year in int (user input)

 

  1. Allow the user to enter a year

(a) check to make sure the year is after 1582

(b) if is after 1582 take it to the (is_leap_year method)

(c) return whether the year is a leap year or not

 

  1. if the year is a leap year

(a)Take it to the (zellers mtehod) and give it the day, month, and year

(b) take daynumber and enter it in (week_day method)

(c) Inform user what day February 29th lies on

 

 

  1. Create a loop to find the next year with February 29th occurring on the same day

(a) The loop parameters should be the year1 starting 4 years after the given year and increases by 4

(b) Put year1 into the (zellers method) and return as daynumber1

(c) check if the daynumber=daynumber1 and check if year1 is a leap year (is_leap_year method)

(d) if it is the same display to the user and exit loop

 

 

(is_leap_year method)

  1. Check if it is a leap year and return a Boolean of true if it is and false if it isn’t
  • If year%4 equals 0
  • If the year%100 does not equal 0
  • And if the year%400 equals 0

 

(zellers method)

  1. Define Terms
    • Let DAY an integer number representing the day of the month
    • Let MONTH an integer number representing the month
    • Let YEAR be an integer number representing the year
    • Let DayNumber be the an integer number representing the day of the week( 0 represents Sunday, 6 represents Saturday)
    • Let StartMonth, StartYear, and LeapFactor be three integer variables used in the calculation

 

  1. INITIALIZE Variables
    • Set DAY , MONTH and YEAR to the date you want to find the week day

 

  1. IF MONTH < 3

2.1 StartMonth = 0

2.2 StartYear   = YEAR – 1

 

otherwise

2.1 StartMonth = INT (0.4 * MONTH + 2.3)

2.2 StartYear   = YEAR

 

(a)LeapFactor = (StartYear / 4) – (StartYear / 100) + (StartYear / 400)

(b)DayNumber = ((365 * YEAR  + 31 * (MONTH  – 1) + DAY +  LeapFactor – StartMonth) – 1) MOD 7

(c) return daynumber

 

(week_day method)

1.Create a switch statement

(a) set each number to a day with the numbers between 0 and 6

(b) return the given day in string


error: Content is protected !!