Tag der Woche -, java -, und Zeller ' s congruence!

Ich bin dabei die Programmierung übung aus dem lehrbuch, wo wir eine Algorithmus zur Berechnung der Tag der Woche aufgerufen Zeller ' s congruence. Gut denkst du ich kann die gleiche Ausgabe wie das Beispiel ausgeführt in dem lehrbuch! Sie gehen mit Jahr 2002, Monat 3 und Tag des Monats 26. Die Probe liest sich wieder am Dienstag. Ich habe mehrere Stunden von mods und schreibt und nicht überall zu bekommen in der Nähe von Dienstag!

Es ist Seite 133 von Java Umfassende lehrbuch 8e, ob jemand hat es... ich bin ein Anfänger so ein konstruktives feedback most welcome!

Zeller ' s Congruence

Ihren Rat würde geschätzt werden:

import java.util.Scanner;

public class DayOfTheWeek {

   public static void main(String[] args) {

   //Set up the scanner...
   Scanner input = new Scanner(System.in);

   //Set up the day's of the week with 0 being Sat as per algorithm.           
   final String[] DAY_OF_WEEK = {"Saturday", "Sunday", "Monday", 
       "Tuesday", "Wednesday", "Thursday", "Friday"};

   //Get the year       
   System.out.print("Enter the year (e.g., 2002): ");             
   int year = input.nextInt();

   //Get the month
   System.out.print("Enter the month 1-12: ");  
   int month = input.nextInt();

   //Get the day
   System.out.print("Enter the day 1-31: ");  
   int day = input.nextInt();

   //According to the algorithm Jan is 13 & Feb 14...
   if (month == 1) month = 13;
   else if (month == 2) month = 14;

   //j Is the century.
   int j = year / 100;

   //k Is the year of the century.
   int k = year % 100 ;

   //Calculate
   double h = (month + ((26*(month + 1)) / 10) + k + (k / 4) +
           (j / 4) + (5 * j)) % 7;

   //Cast answer back to integer to get result from array
   int ans = (int)h;

   //Print result
   System.out.println("Day of the week is: " + DAY_OF_WEEK[ans]);

   }
}
InformationsquelleAutor aussie_aj | 2011-07-27
Schreibe einen Kommentar