Advanced   Java   Services JAVA-Praktikum Back Next Up Home
Wochentag zum Datum ( Lösung )
/* ------------------------------------------------------------------------------------ *\
  Wochentag.java
  Bestimmt zu einem vom Benutzer eingegebenen Datum den Wochentag
\* ------------------------------------------------------------------------------------ */


public class Wochentag
{
   public static void main(String[] args)
   {
      int w_tag;

      System.out.println("Bestimmung des Wochentags aus dem Datum");
      System.out.print("Tag (xx) : ");
      int tag = Stdin.intEingabe();
      System.out.print("Monat (xx) : ");
      int monat = Stdin.intEingabe();
      System.out.print("Jahr (xxxx) : ");
      int jahr = Stdin.intEingabe();

      int h = monat, k = jahr ;

      if (monat < 3)
      {
         h = monat + 12 ;
         k = jahr-1 ;
      }

      w_tag = (tag+2*h + (3*h+3)/5 + k + k/4 - k/100 + k/400 + 1)%7 ;

      if (w_tag==0)
         System.out.println("Sonntag");
      else if (w_tag==1)
         System.out.println("Montag");
      else if (w_tag==2)
         System.out.println("Dienstag");
      else if (w_tag==3)
         System.out.println("Mittwoch");
      else if (w_tag==4)
         System.out.println("Donnerstag");
      else if (w_tag==5)
         System.out.println("Freitag");
      else if (w_tag==6)
         System.out.println("Samstag");

   } // end main

}  // end class

Die Mehrfachverzweigung kann statt mit  else if  auch mit   switch  realisiert werden.

public class Wochentag2
{
   public static void main(String[] args)
   {
      int w_tag;

      System.out.println("Bestimmung des Wochentags aus dem Datum");
      System.out.print("Tag (xx) : ");
      int tag = Stdin.intEingabe();
      System.out.print("Monat (xx) : ");
      int monat = Stdin.intEingabe();
      System.out.print("Jahr (xxxx) : ");
      int jahr = Stdin.intEingabe();

      int h = monat, k = jahr ;

      if (monat < 3)
      {
         h = monat + 12 ;
         k = jahr-1 ;
      }

      w_tag = (tag+2*h + (3*h+3)/5 + k + k/4 - k/100 + k/400 + 1)%7 ;


      switch (w_tag)
      {
         case 0 : System.out.println("Sonntag");
                  break;
         case 1 : System.out.println("Montag");
                  break;
         case 4 : System.out.println("Donnerstag");
                  break;
         case 2 : System.out.println("Dienstag");
                  break;
         case 5 : System.out.println("Freitag");
                  break;
         case 3 : System.out.println("Mittwoch");
                  break;
         case 6 : System.out.println("Samstag");
                  break;
         default: System.out.println("gibts nicht");

      }  // end switch

   }  // end main

}  // end class
Valid XHTML 1.0 Strict top Back Next Up Home