When is Easter????
Ok.... so in this lesson we are going to figure out when Easter falls for a given year
Easter is a so-called moveable feast, and its date depends on two astronomical phenomena:
the beginning of spring in the Northern hemisphere and the first full moon occurring after it.
You may think that finding the date of Easter would be extremely complex and connected to complicated astronomical calculations, but, fortunately, it's much, much easier.
The algorithm we're going to show you was created by a famous German mathematician, Carl Friedrich Gauss.
It's known in many variations – we're going to use one of the simpler forms adapted for the 20th and 21st centuries.
The only data it uses is the year number.
Okay, let's go!
The program should ask the user for the year number and output a date in the form Month Day, e.g. April 5. Test your code using the data we've provided.
Easter is a so-called moveable feast, and its date depends on two astronomical phenomena:
the beginning of spring in the Northern hemisphere and the first full moon occurring after it.
You may think that finding the date of Easter would be extremely complex and connected to complicated astronomical calculations, but, fortunately, it's much, much easier.
The algorithm we're going to show you was created by a famous German mathematician, Carl Friedrich Gauss.
It's known in many variations – we're going to use one of the simpler forms adapted for the 20th and 21st centuries.
The only data it uses is the year number.
Okay, let's go!
The program should ask the user for the year number and output a date in the form Month Day, e.g. April 5. Test your code using the data we've provided.
Psuedocode
1. Create variables with the following names
A. a string variable named stringYear (this will be for the user's input)
B. an int variable name year (this will be the converted variable)
C. int variables for these a, b, c, d, e
2. Ask the user for a year
3. Get input from user
4. Convert the answer to Arithmetically usable variable type
4. Divide year by 19 and find the remainder – assign it to a;
5. Divide year by 4 and find the remainder – assign it to b;
6. Divide year by 7 and find the remainder – assign it to c;
7. Take a, multiply it by 19, add 24, divide by 30 and find the remainder – assign it to d
8. Divide (2b + 4c + 6d + 5) by 7 and find the remainder - assign it to e;
9. Check the value of d + e;
10. If it's less than 10, Easter falls on the (d + e + 22) day of March; output to the console
11. Otherwise it falls on the (d + e – 9) day of April; output to the console
That's it.... Good luck!
A. a string variable named stringYear (this will be for the user's input)
B. an int variable name year (this will be the converted variable)
C. int variables for these a, b, c, d, e
2. Ask the user for a year
3. Get input from user
4. Convert the answer to Arithmetically usable variable type
4. Divide year by 19 and find the remainder – assign it to a;
5. Divide year by 4 and find the remainder – assign it to b;
6. Divide year by 7 and find the remainder – assign it to c;
7. Take a, multiply it by 19, add 24, divide by 30 and find the remainder – assign it to d
8. Divide (2b + 4c + 6d + 5) by 7 and find the remainder - assign it to e;
9. Check the value of d + e;
10. If it's less than 10, Easter falls on the (d + e + 22) day of March; output to the console
11. Otherwise it falls on the (d + e – 9) day of April; output to the console
That's it.... Good luck!
To test your program and make sure that it works....
Here is the test data
Example input
2016
Example output
March 27
Example input
1980
Example output
April 6
Example input
2026
Example output
April 5
Example input
2016
Example output
March 27
Example input
1980
Example output
April 6
Example input
2026
Example output
April 5