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

112 Chapter 3 Selections Comprehensive *3.2 (Science: day of the week) Zeller\'s

ID: 3592039 • Letter: 1

Question

112 Chapter 3 Selections Comprehensive *3.2 (Science: day of the week) Zeller's congruence is an algorithm developed by Christian Zeller to calculate the day of the week. The formula is 26(m + 1) 10 where ·h is the day of the week (0: Saturday, 1: Sunday, 2: Monday, 3: Tuesday, 4: Wednesday, 5: Thursday, 6: Friday) ·q is the day of the month. ·m is the month (3: March, 4: April, , 12: December). January and February are counted as months 13 and 14 of the previous year. year J is the century (i.e 100 ·k is the year of the century (i.e., year % 100) Note that the division in the formula performs an integer division. Write a pro- gram that prompts the user to enter a year, month, and day of the month, and displays the name of the day of the week. Here are some sample runs Enter year: (e.g., 2012): 2015 Enter Enter month: 1-12: 1 Enter Enter the day of the month: 1-31: 25 Enter Day of the week is Sunday Enter year: (e.g., 2012): 2012 Enter Enter month: 1-12: 5 Enter Enter the day of the month: 1-31: 12 Enter Day of the week is Saturday (Hint January and February are counted as 13 and 14 in the formula, so you need to convert the user input 1 to 13 and 2 to 14 for the month and change the year to the previous year.)

Explanation / Answer

FindDayOfTheWeek.java

import java.util.Scanner;

public class FindDayOfTheWeek {

public static void main(String[] args) {

//Declaring variables

int year, month, day, weekday, q, m, k, j, h;

String days[] = {"Saturday", "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" };

/*

* Creating an Scanner class object which is used to get the inputs

* entered by the user

*/

Scanner sc = new Scanner(System.in);

//Getting the input entered by the user

System.out.print("Enter year:(e.g., 2012):");

year = sc.nextInt();

System.out.print("Enter month: 1-12:");

month = sc.nextInt();

System.out.print("Enter day of the month: 1-31:");

day = sc.nextInt();

if (month == 1 || month == 2) {

m = month + 12;

year = year - 1;

} else {

m = month;

}

q = day;

j = year / 100;

k = year % 100;

//Calculating the day of the week

h = (q + (26 * (m + 1) / 10) + k + (k / 4) + (j / 4) + (5 * j)) % 7;

//Displaying the output

System.out.println("Day of the week is " + days[h]);

}

}

_____________

Output#1

Enter year:(e.g., 2012):2015
Enter month: 1-12:1
Enter day of the month: 1-31:25
Day of the week is Sunday

____________

Output#2

Enter year:(e.g., 2012):2012
Enter month: 1-12:5
Enter day of the month: 1-31:12
Day of the week is Saturday

_____________Could you rate me well.Plz .Thank You