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


public class Wochentag
{
   static void Main(string[] args)
   {
      int w_tag, tag, monat, jahr;
      String eingabe;

      Console.WriteLine("Bestimmung des Wochentags aus dem Datum");
      Console.Write("Tag (xx) : ");
      eingabe = Console.ReadLine();
      tag = Convert.ToInt32(eingabe);

      Console.Write("Monat (xx) : ");
      eingabe = Console.ReadLine();
      monat = Convert.ToInt32(eingabe);

      Console.Write("Jahr (xxxx) : ");
      eingabe = Console.ReadLine();
      jahr = Convert.ToInt32(eingabe);


      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)
         Console.WriteLine("Sonntag");
      else if (w_tag==1)
         Console.WriteLine("Montag");
      else if (w_tag==2)
         Console.WriteLine("Dienstag");
      else if (w_tag==3)
         Console.WriteLine("Mittwoch");
      else if (w_tag==4)
         Console.WriteLine("Donnerstag");
      else if (w_tag==5)
         Console.WriteLine("Freitag");
      else if (w_tag==6)
         Console.WriteLine("Samstag");

   } // end main

}  // end class

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

public class Wochentag2
{
   static void Main(string[] args)
   {
      int w_tag;

      Console.WriteLine("Bestimmung des Wochentags aus dem Datum");
      Console.Write("Tag (xx) : ");
      eingabe = Console.ReadLine();
      tag = Convert.ToInt32(eingabe);

      Console.Write("Monat (xx) : ");
      eingabe = Console.ReadLine();
      monat = Convert.ToInt32(eingabe);

      Console.Write("Jahr (xxxx) : ");
      eingabe = Console.ReadLine();
      jahr = Convert.ToInt32(eingabe);

      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 : Console.WriteLine("Sonntag");
                  break;
         case 1 : Console.WriteLine("Montag");
                  break;
         case 4 : Console.WriteLine("Donnerstag");
                  break;
         case 2 : Console.WriteLine("Dienstag");
                  break;
         case 5 : Console.WriteLine("Freitag");
                  break;
         case 3 : Console.WriteLine("Mittwoch");
                  break;
         case 6 : Console.WriteLine("Samstag");
                  break;
         default: Console.WriteLine("gibts nicht");

      }  // end switch

   }  // end main

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