Erweiterung für FeiertagsModul

03/02/2009 - 16:38 von Veronika Neufeind | Report spam
Hallo zusammen,
ich hànge an einer Erweiterung bei „meinem“ FeiertagsModul fest und bitte um
Hilfe aus dem Forum. In der jetzigen Version wird eine generische Liste
„feiertage“ erstellt und in dieser Liste anhand eines konkreten Datums ein
möglicher Feiertag nach Bundesland ermittelt. Wie kann ich es anstellen, dass
an Stelle des konkreten Datums die Anzahl der Feiertage in einem zu wàhlenden
Monat und Bundesland ausgegeben wird? Die Anzahl der Arbeitstage pro Monat
(und damit die Anzahl der Durchlàufe einer Schleife) kann ich schon
ermitteln. Aber ich bekomme die Syntax für die komplette Schleife einfach
nicht zusammen.

Kann mir dabei jemand helfen? Das wàre ganz toll.

Vielen Dank für jede Hilfe schon mal an dieser Stelle.

Gruß

Veronika




/// <summary>
/// Den möglichen Feiertag anhand des Datums und des jeweiligen
Bundeslandes ermitteln
/// </summary>
/// <param name="datum">Das Datum, daß zur Ermittlung herangezogen
werden soll</param>
/// <param name="land">Das jeweilige Land</param>
/// <returns>Der jeweilige Feiertag als Text</returns>
public String GetFeiertag(DateTime datum, Land land)
{
// Liste der Feiertage durchgehen
foreach (FeierTag f in feiertage)
{
if (datum.ToShortDateString().Equals
(f.GetDatum(GetOstersonntag(datum.Year)).ToShortDateString()))
{
// Prüfen ob das Land enthalten ist
foreach (Land l in f.Lànder)
{
if (land == l)
{
return f.Feiertag;
}
}
}
}
return "";
}

/// <summary>
/// Einfache Abfrage ob das übergebene Datum in dem jeweiligen Land
ein Feiertag ist
/// </summary>
/// <param name="datum">Das Datum, daß zur Ermittlung herangezogen
werden soll</param>
/// <param name="land">Das jeweilige Land</param>
/// <returns>Wahr oder Falsch</returns>
public Boolean IsFeiertag(DateTime date, Land land)
{
return (GetFeiertag(date, land).Length > 0);
}
 

Lesen sie die antworten

#1 Christian Groll
05/02/2009 - 14:27 | Warnen spam
Hallo,

ich versteh nicht so ganz wozu du die Arbeitstage brauchst.
Du willst doch nicht für jeden Wochentag die GetFeiertag-Methode
aufrufen ?!

Du brauchst doch nur durch die Liste gehen und z.B. mit
der Eigenschaft Month das Monat überprüfen.

public int GetAnzahlFeiertage(int monat, Land land)
{
int anz = 0;
// Liste der Feiertage durchgehen
foreach (FeierTag f in feiertage)
{
if (f.GetDatum(GetOstersonntag(datum.Year)).Month == monat )
{
// Prüfen ob das Land enthalten ist
foreach (Land l in f.Lànder)
{
if (land == l)
{
anz++;
break;
}
}
}
}
return anz;
}

Sorry, falls tippfehler da sein sollten ;-).

Gruß
Christian Groll

"Veronika Neufeind" wrote:

Hallo zusammen,
ich hànge an einer Erweiterung bei „meinem“ FeiertagsModul fest und bitte um
Hilfe aus dem Forum. In der jetzigen Version wird eine generische Liste
„feiertage“ erstellt und in dieser Liste anhand eines konkreten Datums ein
möglicher Feiertag nach Bundesland ermittelt. Wie kann ich es anstellen, dass
an Stelle des konkreten Datums die Anzahl der Feiertage in einem zu wàhlenden
Monat und Bundesland ausgegeben wird? Die Anzahl der Arbeitstage pro Monat
(und damit die Anzahl der Durchlàufe einer Schleife) kann ich schon
ermitteln. Aber ich bekomme die Syntax für die komplette Schleife einfach
nicht zusammen.

Kann mir dabei jemand helfen? Das wàre ganz toll.

Vielen Dank für jede Hilfe schon mal an dieser Stelle.

Gruß

Veronika




/// <summary>
/// Den möglichen Feiertag anhand des Datums und des jeweiligen
Bundeslandes ermitteln
/// </summary>
/// <param name="datum">Das Datum, daß zur Ermittlung herangezogen
werden soll</param>
/// <param name="land">Das jeweilige Land</param>
/// <returns>Der jeweilige Feiertag als Text</returns>
public String GetFeiertag(DateTime datum, Land land)
{
// Liste der Feiertage durchgehen
foreach (FeierTag f in feiertage)
{
if (datum.ToShortDateString().Equals
(f.GetDatum(GetOstersonntag(datum.Year)).ToShortDateString()))
{
// Prüfen ob das Land enthalten ist
foreach (Land l in f.Lànder)
{
if (land == l)
{
return f.Feiertag;
}
}
}
}
return "";
}

/// <summary>
/// Einfache Abfrage ob das übergebene Datum in dem jeweiligen Land
ein Feiertag ist
/// </summary>
/// <param name="datum">Das Datum, daß zur Ermittlung herangezogen
werden soll</param>
/// <param name="land">Das jeweilige Land</param>
/// <returns>Wahr oder Falsch</returns>
public Boolean IsFeiertag(DateTime date, Land land)
{
return (GetFeiertag(date, land).Length > 0);
}


Ähnliche fragen