home *** CD-ROM | disk | FTP | other *** search
/ PC World 2003 April / PCWorld_2003-04_cd.bin / Software / Komercni / openoffice / f_0032 / GermanHolidays.xba < prev    next >
Extensible Markup Language  |  2002-11-01  |  7KB  |  144 lines

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