Windows Azure Cloud Storage ermöglicht es Ihnen bereits ab 0,10€ pro GB/Monat die Vorteile der Cloud zu nutzen.
Willkommen bei dotnet-snippets.de! Snippet hinzufügen Login Registrieren
Snippets in der Datenbank: 1550 | Anzahl registrierter User: 1839 | Besucher online: 37
Hauptmenü
Home
Top Ten
Zufälliger Snippet
FAQs
.NET Community
dotnet-forum.de
dotnet-kicks.de
Social

RSS Feeds
Rss Alle Snippets
Rss C#
Rss VB.NET
Rss C++
Rss ASP.NET
Partner
Member of Microsoft Community Leader/Insider Program (CLIP)

Feiertagsberechnung


Autor: BlackDragon
Sprache: C#
Bewertung:
5.69 (7 votes)
Anzahl der Aufrufe: 6934
  
Kick it on dotnet-kicks.de  

Beschreibung:

Eine Feiertagsberechnung aufgrund der Osterformel


Abgelegt unter: Feiertag, Osterformel, Feiertagsberechnung.



C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
/// <summary>
/// Teste das übergeben Datum auf einen Feiertag
/// </summary>
/// <param name="DateTime">Das Datum, daß auf einen Beweglichen Feiertag geprüft werden soll</param>
/// <returns>Wenn das übergebene Datum auf einen Feriertag fällt dan wird dieser Feiertag zurückgegeben</returns>
public string GetFeiertag(DateTime myDatum){
	string feierTag = "";
	
	// Datum zerlegen und für den Test eines FEsten Feiertages zusammenbauen
	String testDate = (myDatum.Day.ToString() +"/"+ myDatum.Month.ToString());
	
	switch(testDate){
		case "1/1":
			feierTag = "Neujahr";
			break;
		case "1/5":
			feierTag = "Tag der Arbeit";
			break;
		case "15/8":
			feierTag = "Mariae Himmelfahrt";
			break;
		case "3/10":
			feierTag = "Tag der dt. Einheit";
			break;
		case "1/11":
			feierTag = "Allerheiligen";
			break;
		case "25/12":
			feierTag = "1. Weihnachtstag";
			break;
		case "26/12":
			feierTag = "2. Weihnachtstag";
			break;
		default:
			feierTag = GetMovFeierTag(myDatum);
			break;
	}
	
	return feierTag;
}

/// <summary>
/// Teste das übergeben Datum auf einen Beweglichen Feiertag
/// </summary>
/// <param name="DateTime">Das Datum, daß auf einen Beweglichen Feiertag geprüft werden soll</param>
/// <returns>Der bewegliche Feiertag oder halt nichts</returns>
private String GetMovFeierTag(DateTime myDatum){			
	int Jahr = myDatum.Year;
	DateTime Ostersonntag = GetOstersonntag(Jahr);
	
	if (myDatum == Ostersonntag.AddDays(0)){
		return "OsterSonntag";
	}
	if (myDatum == Ostersonntag.AddDays(-2)){
		return "Karfreitag";
	}
	if (myDatum == Ostersonntag.AddDays(1)){
		return "Ostermontag";
	}
	if (myDatum == Ostersonntag.AddDays(39)){
		return "Christi Himmelfahrt";
	}
	if (myDatum == Ostersonntag.AddDays(49)){
		return "Pfingstsonntag";
	}
	if (myDatum == Ostersonntag.AddDays(50)){
		return "Pfingstmontag";
	}
	if (myDatum == Ostersonntag.AddDays(60)){
		return "Fronleichnam";
	}
	
	return "";
}

/// <summary>
/// Errechnet das Datum des Ostersonntags aus dem übergebenen Jahr
/// </summary>
/// <param name="int">Das Jahr in YYYY Schreibweise</param>
/// <returns>Das Datum des Ostersonntags in dem Übergebe Jahr</returns>
private DateTime GetOstersonntag(int jahr){
	DateTime OsterSonntag;
	
	int c;
	int i;
	int j;
	int k;
	int l;
	int n;
	int OsterTag;
	int OsterMonat;
	
	c = jahr / 100;
	n = jahr - 19 * ((int)(jahr / 19));
	k = (c - 17) / 25;
	i = c - c / 4 - ((int)(c - k) / 3) + 19 * n + 15;
	i = i - 30 * ((int)(i / 30));
	i = i - (i / 28) * ((int)(1 - (i / 28)) * ((int)(29 / (i + 1))) * ((int)(21 - n) / 11));
	j = jahr + ((int)jahr / 4) + i + 2 - c + ((int)c / 4);
	j = j - 7 * ((int)(j / 7));
	l = i - j;
	
	OsterMonat = 3 + ((int)(l + 40) / 44);
	OsterTag = l + 28 - 31 * ((int)OsterMonat / 4);
	
	return Convert.ToDateTime(OsterTag.ToString() + "." + OsterMonat + "." + jahr);
}
Sie haben Fragen zu diesem Snippet oder brauchen Hilfe bei der .NET Entwicklung?
Freundliche und kompetente Entwickler helfen Ihnen gern weiter im Forum für .NET Entwicklung.



Kommentare:
(Zum Schreiben von Kommentaren bitte anmelden.)

Yellow schrieb am:  03.11.2006 23:20:11

Die Feiertage in den einzelnen Bundesländer unterscheiden sich, so ist Allerheiligen beispielsweise in Hessen kein Feiertag (siehe http://de.wikipedia.org/wiki/Feiertage_%28Deutschland%29).

-yellow
BlackDragon schrieb am:  04.11.2006 23:33:23

Ja, das mit den Feiertagen stimmt schon aber denke mal das wäre nur eine kleine anpassung
Yellow schrieb am:  07.11.2006 00:56:31

Nuja... Maria Himmelfahrt ist auch nur im Saarland und in einigen Ortschaften im Bayern noch Feiertag. Pack' doch die Feiertag/Bundesland-Zuordnung in ein Array oder dergleichen... das wäre doch klasse.
Incognito schrieb am:  19.12.2007 02:21:04

Es gibt eine XML Web Service Seite dafür: http://www.holidaywebservice.com/Holidays/US/Dates/USHolidayDates.asmx?WSDL


Diese Snippets könnten für Sie interessant sein:

schlecht sehr gut
1 2 3 4 5 6 7 8 9 10
Nur angemeldete User können Snippets bewerten.