C# :: Aufgabe #179 :: Lösung #1

7 Lösungen Lösungen öffentlich
#179

Ist Freitag der 13. ein Unglücks- oder Glückstag?

Anfänger - C# von hollst - 26.06.2017 um 13:14 Uhr
Wir betrachten den Gregorianischen Kalender mit den üblichen 12 Monaten und Schaltjahren.

Schaltjahr ist, wenn die Jahreszahl durch 4 teilbar ist, mit Ausnahme der Jahre, die durch 100,
jedoch nicht durch 400 teilbar sind. Im Schaltjahr hat der Februar 29 Tage.

Unsere Zeitrechnung beginne mit dem 1. Januar 00.

Frage: Welcher Wochentag fällt

a) am häufigsten auf einen 13. des Monats und
b) welcher bzw. welche am wenigsten.
#1
vote_ok
von Mexx (2370 Punkte) - 26.06.2017 um 22:48 Uhr
Der Freitag kommt mit 3469x am häufigsten vor.

Monday: 3452
Tuesday: 3455
Wednesday: 3462
Thursday: 3448
Friday: 3469
Saturday: 3448
Sunday: 3464

Quellcode ausblenden C#-Code
using System;
using System.Collections;
using System.Collections.Generic;

namespace Freitag_der_13_Tagesbestimmung
{
    class Program
    {
        static void Main(string[] args)
        {
            DateTime dtBeginn = new DateTime(0);
            DateTime dtNow = DateTime.Now;
            List<object[]> matches = new List<object[]>();
            Hashtable htAnzahl = new Hashtable();
            htAnzahl.Add(DayOfWeek.Monday.ToString(), 0);
            htAnzahl.Add(DayOfWeek.Tuesday.ToString(), 0);
            htAnzahl.Add(DayOfWeek.Wednesday.ToString(), 0);
            htAnzahl.Add(DayOfWeek.Thursday.ToString(), 0);
            htAnzahl.Add(DayOfWeek.Friday.ToString(), 0);
            htAnzahl.Add(DayOfWeek.Saturday.ToString(), 0);
            htAnzahl.Add(DayOfWeek.Sunday.ToString(), 0);

            while (dtBeginn < dtNow)
            {
                if (dtBeginn.Day == 13)
                    matches.Add(new object[] { dtBeginn.Day, dtBeginn.Month, dtBeginn.Year, dtBeginn.DayOfWeek });
                dtBeginn = dtBeginn.AddDays(1);
            }

            matches.ForEach(x => {
                //Console.WriteLine(string.Format(x[0].ToString() + "." + x[1].ToString() + "." + x[2].ToString() + ":\t" + x[3].ToString()));
                htAnzahl[x[3].ToString()] = (int)htAnzahl[x[3].ToString()] + 1;                
            });

            Console.WriteLine();
            Console.WriteLine(DayOfWeek.Monday.ToString() + ":   \t" + htAnzahl[DayOfWeek.Monday.ToString()].ToString());
            Console.WriteLine(DayOfWeek.Tuesday.ToString() + ":\t" + htAnzahl[DayOfWeek.Tuesday.ToString()].ToString());
            Console.WriteLine(DayOfWeek.Wednesday.ToString() + ":\t" + htAnzahl[DayOfWeek.Wednesday.ToString()].ToString());
            Console.WriteLine(DayOfWeek.Thursday.ToString() + ":\t" + htAnzahl[DayOfWeek.Thursday.ToString()].ToString());
            Console.WriteLine(DayOfWeek.Friday.ToString() + ":   \t" + htAnzahl[DayOfWeek.Friday.ToString()].ToString());
            Console.WriteLine(DayOfWeek.Saturday.ToString() + ":\t" + htAnzahl[DayOfWeek.Saturday.ToString()].ToString());
            Console.WriteLine(DayOfWeek.Sunday.ToString() + ":   \t" + htAnzahl[DayOfWeek.Sunday.ToString()].ToString());

            Console.ReadKey();
        }
    }
}

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben