C# :: Aufgabe #31
9 Lösungen
Anzahl Freitag, der 13te über bestimmten Zeitraum
Anfänger - C#
von pocki
- 29.12.2012 um 19:56 Uhr
Schreibe ein Programm welches 2 verschiedene Datum einliest und berechne die Anzahl wie oft in diesem Zeitraum der 13te eines Monats auf einen Freitag fiel und gib diese aus.
Konsolenausgabe:
Startdatum: 01.01.2009
Enddatum: 31.12.2009
13.02.2009
13.03.2009
13.11.2009
Summe: 3
Lösungen:
void main()
{
Console.Write("Startdatum: ");
string inputStart = Console.ReadLine();
Console.Write("Enddatum: ");
string inputEnde = Console.ReadLine();
DateTime dtStart = DateTime.Parse(inputStart);
DateTime dtEnde = DateTime.Parse(inputEnde);
int summe = 0;
while (dtStart < dtEnde)
{
if (dtStart.Day == 13)
{
if (dtStart.DayOfWeek == DayOfWeek.Friday)
{
Console.WriteLine(dtStart.ToShortDateString());
summe++;
}
dtStart = dtStart.AddMonths(1);
}
else
{
dtStart = dtStart.AddDays(1);
}
}
Console.WriteLine("Summe: {0}", summe);
}using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FreitagDer13Ermitteln
{
class Program
{
static void Main(string[] args)
{
bool result1 = false, result2 = false;
DateTime date1, date2;
do
{
Console.WriteLine("Geben Sie das Startdatum an");
if (!(DateTime.TryParse(Console.ReadLine(), out date1)))
{
}
else
{
result1 = true;
}
Console.WriteLine("Geben Sie das Enddatum an");
if (!(DateTime.TryParse(Console.ReadLine(), out date2)))
{
Console.WriteLine("Eines der Eingegebenen Daten war nicht korrekt, versuchen Sie es erneut");
Console.WriteLine("");
}
else
{
result2 = true;
}
} while (!(result1 && result2));
int count = 0;
while (date1 <= date2)
{
if (date1.DayOfWeek.ToString() == "Friday" && date1.Day == 13)
{
Console.WriteLine(date1.Date.ToShortDateString());
count++;
}
date1 = date1.AddDays(1);
}
Console.WriteLine("Summe {0}", count);
Console.ReadKey();
}
}
}
using System;
namespace FreitagDer13
{
class Program
{
static void Main(string[] args)
{
DateTime startdatum = new DateTime();
DateTime enddatum = new DateTime();
int summe = 0;
do
{
Console.Write("Startdatum: ");
}
while (!DateTime.TryParse(Console.ReadLine(), out startdatum));
do
{
Console.Write("Enddatum: ");
}
while (!DateTime.TryParse(Console.ReadLine(), out enddatum) || enddatum < startdatum);
while (startdatum <= enddatum)
{
if (startdatum.Day == 13 && startdatum.DayOfWeek.ToString().Equals("Friday"))
{
Console.WriteLine(startdatum.ToShortDateString());
summe++;
}
startdatum = startdatum.AddDays(1.0);
}
Console.WriteLine("Summe: {0}", summe);
}
}
}
public List<DateTime> Friday13(DateTime From, DateTime To)
{
List<DateTime> Result = new List<DateTime>();
do {
if (From.Day == 13 & From.DayOfWeek == DayOfWeek.Friday) Result.Add(From); }
while (From.AddDays(1) <= To);
return Result;
}
using System;
namespace Freitag13 {
class Program {
static void Main() {
DateTime
start = default(DateTime),
end = default(DateTime);
int counter;
while (start == default(DateTime) || end == default(DateTime) || start.CompareTo(end) > 0) {
try {
Console.Clear();
Console.Write("Start-Datum>");
start = Convert.ToDateTime(Console.ReadLine());
Console.Write("End-Datum>");
end = Convert.ToDateTime(Console.ReadLine());
}
catch (Exception) {
start = default(DateTime);
end = default(DateTime);
}
}
for (start = GotoNext(13, start), counter = 0; start.CompareTo(end) <= 0; start = start.AddMonths(1)) {
if (start.DayOfWeek == DayOfWeek.Friday) {
Console.WriteLine(start.ToShortDateString());
counter++;
}
}
Console.WriteLine("Summe: " + counter);
Console.ReadKey(true);
}
static DateTime GotoNext(int DayInMonth, DateTime AfterOrAt) {
if (DayInMonth < 0 || DayInMonth > 31 || AfterOrAt.Day == DayInMonth)
return AfterOrAt;
else
return
AfterOrAt
.AddDays(DayInMonth - AfterOrAt.Day)
.AddMonths(AfterOrAt.Day > DayInMonth ? 1 : 0);
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AnzahlFreitag13
{
class Program
{
static void Main(string[] args)
{
DateTime datumStart, datumEnde;
int summe = 0;
Console.Write("Startdatum:\t");
datumStart = Convert.ToDateTime(Console.ReadLine());
Console.Write("Enddatum:\t");
datumEnde = Convert.ToDateTime(Console.ReadLine());
while (datumStart <= datumEnde)
{
if (Convert.ToString(datumStart.DayOfWeek) == "Friday" && datumStart.Day == 13)
{
Console.WriteLine(Convert.ToString(datumStart.Date.ToString("d")));
summe++;
}
datumStart = datumStart.AddDays(1);
}
Console.WriteLine("Summe: " + Convert.ToString(summe));
Console.Read();
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TrainYourProgrammer31
{
class Program
{
static void Main(string[] args)
{
int summe=0;
Console.Write("Startdatum: ");
string startdatum = Console.ReadLine();
string[] datenStart = startdatum.Split('.');
Console.Write("Enddatum: ");
string enddatum = Console.ReadLine();
string[] datenEnde = enddatum.Split('.');
while (Convert.ToInt32(datenStart[2]) <= Convert.ToInt32(datenEnde[2]))
{
datenStart[0] = "13";
while (Convert.ToInt32(datenStart[1]) <= 12)
{
DateTime pruefe = new DateTime(Convert.ToInt32(datenStart[2]), Convert.ToInt32(datenStart[1]), Convert.ToInt32(datenStart[0]));
string wochentagpruefung = Convert.ToString(pruefe.DayOfWeek);
if (wochentagpruefung == "Friday")
{
Console.WriteLine(datenStart[0] + "." + datenStart[1] + "." + datenStart[2]);
summe++;
}
datenStart[1] = Convert.ToString(Convert.ToInt32(datenStart[1]) + 1);
}
datenStart[2] = Convert.ToString(Convert.ToInt32(datenStart[2]) + 1);
}
Console.WriteLine("Summe: " + summe);
Console.ReadKey();
}
}
}
static void Aufgabe_31()
{
DateTime start, ende;
int counter = 0;
Console.Write("Startdatum: ");
start = Convert.ToDateTime(Console.ReadLine());
Console.Write("Enddatum: ");
ende = Convert.ToDateTime(Console.ReadLine());
while (start != ende)
{
if (start.DayOfWeek == DayOfWeek.Friday && start.Day == 13)
{
counter++;
Console.WriteLine(start.Date.ToString("dd.MM.yyyy"));
}
start = start.AddDays(1);
}
Console.WriteLine("Summe: {0}", counter);
} static void Main(string[] args)
{
//eingabe Anfangsdatum
DateTime anfangsDatum;
Console.Write("Startdatum: ");
while (!DateTime.TryParse(Console.ReadLine(), out anfangsDatum))
{
Console.WriteLine("Fehlerhafte Eingabe, eingabe wiederholen");
Console.Write("Startdatum: ");
}
//eingabe Enddatum
DateTime endDatum;
Console.Write("Enddatum: ");
while (!(DateTime.TryParse(Console.ReadLine(), out endDatum) && endDatum > anfangsDatum))
{
Console.WriteLine("Fehlerhafte Eingabe, eingabe wiederholen");
Console.Write("Enddatum: ");
}
//Setzten des Tages auf den 13. ggf im nächsten Monat.
if (anfangsDatum.Day <=13)
{
anfangsDatum.AddDays(13-anfangsDatum.Day);
}
else
{
anfangsDatum = new DateTime(anfangsDatum.Year, anfangsDatum.Month, 13).AddMonths(1);
}
// Schleifendurchlauf mit Zählfunktion der übereinstimmung.
int fridaysOfNoFuture = 0;
for (DateTime i = anfangsDatum; i<endDatum; i=i.AddMonths(1)) // überprüft immer nur den 13. jeden Monats
{
if (i.DayOfWeek== DayOfWeek.Friday)
{
fridaysOfNoFuture++;
Console.WriteLine("{0:dd/MM/yyyy}", i.Date);
}
}
Console.WriteLine("Summe: "+fridaysOfNoFuture);
Console.ReadKey();
}