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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
|
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
<script:module xmlns:script="http://openoffice.org/2000/script" script:name="GermanHolidays" script:language="StarBasic">Option Explicit
Sub Main()
Call CalAutopilotTable()
End Sub
Function CalGetGermanLandAtMousePos(byval X as single, byval Y as single) as Integer
CalChoosenLand = 0
If (X>73)And(X<130)And(Y>=117)And(Y<181) Then
CalChoosenLand = CalBLBayern
ElseIf (X>41)And(X<89)And(Y>=136)And(Y<183) Then
CalChoosenLand = CalBLBadenWuert
ElseIf (X>18)And(X<35)And(Y>136)And(Y<147) Then
CalChoosenLand = CalBLSaarland
ElseIf (X>13)And(X<42)And(Y>111)And(Y<146) Then
CalChoosenLand = CalBLRheinlandPfalz
ElseIf (X>15)And(X<=60)And(Y>=69)And(Y<112) Then
CalChoosenLand = CalBLNordrheinWest
ElseIf (X>=42)And(X<78)And(Y>=95)And(Y<136) Then
CalChoosenLand = CalBLHessen
ElseIf (X>=78)And(X<112)And(Y>=95)And(Y<117) Then
CalChoosenLand = CalBLThueringen
ElseIf (X>=112)And(X<158)And(Y>=88)And(Y<114) Then
CalChoosenLand = CalBLSachsen
ElseIf (X>77)And(X<84)And(Y>35)And(Y<42) Then
CalChoosenLand = CalBLHamburg
ElseIf (X>56)And(X<60)And(Y>36)And(Y<41) Then
CalChoosenLand = CalBLBremen
ElseIf (X>58)And(X<63)And(Y>44)And(Y<52) Then
CalChoosenLand = CalBLBremen
ElseIf (X>52)And(X<95)And(Y>8)And(Y<40) Then
CalChoosenLand = CalBLSchlHolstein
ElseIf (X>90)And(X<149)And(Y>23)And(Y<48) Then
CalChoosenLand = CalBLMeckPomm
ElseIf (X>28)And(X<90)And(Y>35)And(Y<69) Then
CalChoosenLand = CalBLNiedersachsen
ElseIf (X>60)And(X<90)And(Y>=69)And(Y<95) Then
CalChoosenLand = CalBLNiedersachsen
ElseIf (X>=90)And(X<=115)And(Y>47)And(Y<95) Then
CalChoosenLand = CalBLSachsenAnhalt
ElseIf (X>129)And(X<139)And(Y>60)And(Y<66) Then
CalChoosenLand = CalBLBerlin
ElseIf (X>115)And(X<151)And(Y>=48)And(Y<88) Then
CalChoosenLand = CalBLBrandenburg
End If
CalGetGermanLandAtMousePos = CalChoosenLand
End Function
Sub CalFindWholeYearHolidays_GERMANY(ByVal iSelYear as Integer, ByVal iCountry as Integer)
' Ermittelt die Feiertage eines gesamten Jahres (Parameter iSelYear),
' bezogen auf ein bestimmtes Bundesland (Parameter iCountry). Kein
' bestimmtes Bundesland bedeutet, dass der Parameter gleich der
' Konstante calBLHamburg ist, da Hamburg nur Standardfeiertage kennt.
' Die Feiertage werden in das Array CalBankHolidayName$ geschrieben.
' Der Index dieses Arrays geht bis vierhundert. Der 1. Januar hat den
' Indexwert 1, der 2. Januar den Indexwert 2 usw. Das bedeutet, daß
' wenn am 2. Januar kein Feiertag existiert, liefert
' CalBankHolidayName$(DateSerial(0, 1, 2) eine leere Zeichenkette ("").
Dim So as Integer
Dim OsternDate&, VierterAdvent&
If (iCountry < 1) Or (iCountry > 16) Then
iCountry = CalBLHamburg
End If
OsternDate& = CalEasterTable&(iSelYear)
So = 1
CalInsertBankholiday(DateSerial(iSelYear, 1, 1), "Neujahr", cHolidayType_Full)
If (iCountry = CalBLBayern) Or (iCountry = CalBLBadenWuert) Or (iCountry = CalBLSachsenAnhalt) Then
CalInsertBankholiday(DateSerial(iSelYear, 1, 6), "Hl. 3 Könige", cHolidayType_Full)
End If
CalInsertBankholiday(OsternDate&-2, "Karfreitag", cHolidayType_Full)
CalInsertBankholiday(OsternDate&, "Ostersonntag", cHolidayType_Full)
CalInsertBankholiday(OsternDate&+1, "Ostermontag", cHolidayType_Full)
CalInsertBankholiday(DateSerial(iSelYear, 5, 1), "Maifeiertag", cHolidayType_Full)
CalInsertBankholiday(OsternDate&+39, "Christi Himmelfahrt", cHolidayType_Full)
CalInsertBankholiday(OsternDate&+49, "Pfingstsonntag", cHolidayType_Full)
CalInsertBankholiday(OsternDate&+50, "Pfingstmontag", cHolidayType_Full)
If (iCountry = CalBLBadenWuert) Or (iCountry = CalBLBayern) Or (iCountry = CalBLHessen) Or (iCountry = CalBLNordRheinWest) Or (iCountry = CalBLRheinlandPfalz) Or (iCountry = CalBLSaarland) Or (iCountry = CalBLSachsen) Or (iCountry = CalBLThueringen) Then
CalInsertBankholiday(OsternDate&+60, "Fronleichnam", cHolidayType_Full)
End If
If (iCountry = CalBLBayern) Or (iCountry = CalBLSaarland) Then
CalInsertBankholiday(DateSerial(iSelYear, 8, 15), "Mariä Himmelfahrt", cHolidayType_Full)
End If
CalInsertBankholiday(DateSerial(iSelYear, 10, 3), "Tag der dt. Einheit", cHolidayType_Full)
If (iCountry=CalBLBrandenburg) Or (iCountry=CalBLMeckPomm) Or (iCountry=CalBLSachsenAnhalt) Or (iCountry=CalBLSachsen) Or (iCountry=CalBLThueringen) Then
CalInsertBankholiday(DateSerial(iSelYear, 10, 31), "Reformationstag", cHolidayType_Full)
End If
If (iCountry = CalBLBadenWuert) Or (iCountry = CalBLBayern) Or (iCountry = CalBLNordRheinWest) Or (iCountry = CalBLRheinlandPfalz) Or (iCountry = CalBLSaarland) Or (iCountry = CalBLSachsen) Or (iCountry = CalBLThueringen) Then
CalInsertBankholiday(DateSerial(iSelYear, 11, 1), "Allerheiligen", cHolidayType_Full)
End If
vierterAdvent = DateSerial(iSelYear, 12, 24)
While WeekDay(vierterAdvent) <> So
vierterAdvent = vierterAdvent - 1
Wend
If iCountry = CalBLSachsen Then
CalInsertBankholiday(vierterAdvent-32, "Buß- und Bettag", cHolidayType_Full)
Else
CalInsertBankholiday(vierterAdvent-32, "Buß- und Bettag", cHolidayType_Half)
End If ' Dank an die EKD für die Berechnungsvorschrift des Buß- und Bettags!
CalInsertBankholiday(vierterAdvent-21, "1. Advent", cHolidayType_Full)
CalInsertBankholiday(vierterAdvent-14, "2. Advent", cHolidayType_Full)
CalInsertBankholiday(vierterAdvent-7, "3. Advent", cHolidayType_Full)
CalInsertBankholiday(vierterAdvent, "4. Advent", cHolidayType_Full)
CalInsertBankholiday(Dateserial(iSelYear, 12, 24), "Heiligabend", cHolidayType_Half)
CalInsertBankholiday(Dateserial(iSelYear, 12, 25), "1. Weihnachtstag", cHolidayType_Full)
CalInsertBankholiday(Dateserial(iSelYear, 12, 26), "2. Weihnachtstag", cHolidayType_Full)
CalInsertBankholiday(Dateserial(iSelYear, 12, 31), "Sylvester", cHolidayType_Half)
End Sub
</script:module>
|