mehrere/einzelne Werte aus eine Procedure holen
Verfasst: 01.04.2013 13:55
Hallo Leute,
bin stolz wie tausen Affen !!
Hab es geschafft die Feiertage zu errechnen.
leider weiss ich nicht genau wie ich es schaffe einzelne Feiertage oder alle aus der Procedure abzufragen.
Warscheinlich sollte ich eine Structure oder ein Liste erstellen und über Pointer oder Zeiger (keine Ahnung was der Unterschied ist) darauf zugreifen.
Hier mein Code
Berechnung des Osterdatums (unwichtig)
Berechnung der Feiertage(wie bekomme ich die da raus?)
Für Euere Hilfe wäre ich sehr Dankbar,
stehe immer wieder vor diesem Problem, habs noch nicht ganz verinnerlicht(nächster evolutionärer Schritt).
Grüße Christian
Ps
bin nicht sicher ob das ein Anfängerproblem ist, wenn nicht bitte verschieben.
bin stolz wie tausen Affen !!
Hab es geschafft die Feiertage zu errechnen.

leider weiss ich nicht genau wie ich es schaffe einzelne Feiertage oder alle aus der Procedure abzufragen.

Warscheinlich sollte ich eine Structure oder ein Liste erstellen und über Pointer oder Zeiger (keine Ahnung was der Unterschied ist) darauf zugreifen.
Hier mein Code
Berechnung des Osterdatums (unwichtig)
Code: Alles auswählen
Procedure.i Ostern()
Protected.i a, b, c, d, e, f, g, h, i, k, l, m, n, p
If Jahr < 1
MessageRequester("Fehler", "Datum nicht möglich")
ProcedureReturn
Else
If Jahr > 1582
;Gregorianischer Kalender
a = Mod(Jahr, 19)
b = Jahr / 100
c = Mod(Jahr, 100)
d = b / 4
e = Mod(b, 4)
f = (b + 8) / 25
g = (b - f + 1) / 3
h = Mod((19 * a + b - d - g + 15), 30)
i = c / 4
k = Mod(c, 4)
l = Mod((32 + 2 * e + 2 * i - h - k), 7)
m = (a + 11 * h + 22 * l) / 451
n = (h + l - 7 * m + 114) / 31
p = Mod((h + l - 7 * m + 114), 31)
ProcedureReturn Date(jahr, n, p + 1,0,0,0)
Else
; Julianischer Kalender
a = Mod(Jahr, 4)
b = Mod(Jahr, 7)
c = Mod(Jahr, 19)
d = Mod((19 * c + 15), 30)
e = Mod((2 * a + 4 * b - d + 34), 7)
f = (d + e + 114) / 31
g = Mod((d + e + 114), 31)
ProcedureReturn Date(Jahr, f, g + 1,0,0,0)
EndIf
EndIf
EndProcedure
Berechnung der Feiertage(wie bekomme ich die da raus?)
Code: Alles auswählen
Procedure Feiertage()
Protected Ostern.i, Rosenmontag.i,Aschermittwoch.i, Karfreitag.i, Ostersonntag.i, Ostermontag.i, Weissersonntag.i, Christihimmelfahrt.i, i.i,
Pfingstsonntag.i, Pfingstmontag.i, Frohnleichnahm.i, Ergebnis.i, diff.i, kirchenjahr.i, Bussundbeettag.i, Advent1.i, Advent2.i, Advent3.i,
Advent4.i, Neujahr.i, Heiligedreikoenige.i, Valentinstag.i, TagderArbeit,MariaHimmelfahrt.i, TagderDeutschenEinheit.i, Reformationstag.i,
AllerHeiligen.i, Heiligabend.i, Weihnachten1.i, Weihnachten2.i, Silvester.i
Dim Feiertag.i(26)
Dim FeiertagName.s(26)
Protected monat.i, tag.i
Ostern = Ostern()
;feste feiertage
Neujahr = Date(Jahr, 1, 1,0,0,0)
Heiligedreikoenige = Date(Jahr, 1, 6,0,0,0)
Valentinstag = Date(Jahr, 2, 14,0,0,0)
TagderArbeit = Date(Jahr, 5, 1,0,0,0)
MariaHimmelfahrt = Date(Jahr, 8, 15,0,0,0)
TagderDeutschenEinheit = Date(Jahr, 10, 3,0,0,0)
Reformationstag = Date(Jahr, 10, 31,0,0,0)
AllerHeiligen = Date(Jahr, 11, 1,0,0,0)
Heiligabend = Date(Jahr, 12, 24,0,0,0)
Weihnachten1 = Date(Jahr, 12, 25,0,0,0)
Weihnachten2 = Date(Jahr, 12, 26,0,0,0)
Silvester = Date(Jahr, 12, 31,0,0,0)
;bewegliche feiertage in abhängigkeit zu ostern
Rosenmontag = AddDate(Ostern, #PB_Date_Day, -48)
Aschermittwoch = AddDate(Ostern, #PB_Date_Day, -46)
Karfreitag = AddDate(Ostern, #PB_Date_Day, -2)
Ostersonntag = AddDate(Ostern, #PB_Date_Day,0)
Ostermontag = AddDate(Ostern, #PB_Date_Day, 1)
Weissersonntag = AddDate(Ostern, #PB_Date_Day, 7)
Christihimmelfahrt = AddDate(Ostern, #PB_Date_Day, 39)
Pfingstsonntag = AddDate(Ostern, #PB_Date_Day, 49)
Pfingstmontag = AddDate(Ostern, #PB_Date_Day, 50)
Frohnleichnahm = AddDate(Ostern, #PB_Date_Day, 60)
;berechnung des kirchenjahres
Ergebnis = Mod(DayOfWeek(Date(Jahr,12,25,0,0,0) + 6),7)
diff = -Ergebnis -1
kirchenjahr = AddDate(Date(Jahr, 12, 25, 0, 0, 0), #PB_Date_Day,diff -20)
;bewegliche feiertage in abhängigkeit zum kirchenjahr
Bussundbeettag = AddDate(kirchenjahr, #PB_Date_Day, -11)
Advent1 = AddDate(kirchenjahr, #PB_Date_Day,0)
Advent2 = AddDate(kirchenjahr, #PB_Date_Day,7)
Advent3 = AddDate(kirchenjahr, #PB_Date_Day,14)
Advent4 = AddDate(kirchenjahr, #PB_Date_Day,21)
Feiertag(0) = Rosenmontag
Feiertag(1) = Aschermittwoch
Feiertag(2) = Karfreitag
Feiertag(3) = Ostersonntag
Feiertag(4) = Ostermontag
Feiertag(5) = Weissersonntag
Feiertag(6) = Christihimmelfahrt
Feiertag(7) = Pfingstsonntag
Feiertag(8) = Pfingstmontag
Feiertag(9) = Frohnleichnahm
Feiertag(10) = Bussundbeettag
Feiertag(11) = Advent1
Feiertag(12) = Advent2
Feiertag(13) = Advent3
Feiertag(14) = Advent4
Feiertag(15) = Neujahr
Feiertag(16) = Heiligedreikoenige
Feiertag(17) = Valentinstag
Feiertag(18) = TagderArbeit
Feiertag(19) = MariaHimmelfahrt
Feiertag(20) = TagderDeutschenEinheit
Feiertag(21) = Reformationstag
Feiertag(22) = AllerHeiligen
Feiertag(23) = Heiligabend
Feiertag(24) = Weihnachten1
Feiertag(25) = Weihnachten2
Feiertag(26) = Silvester
FeiertagName(0) = "Rosenmontag"
FeiertagName(1) = "Aschermittwoch"
FeiertagName(2) = "Karfreitag"
FeiertagName(3) = "Ostersonntag"
FeiertagName(4) = "Ostermontag"
FeiertagName(5) = "Weißer Sonntag"
FeiertagName(6) = "Chr. Himmelfahrt"
FeiertagName(7) = "Pfingstsonntag"
FeiertagName(8) = "Pfingstmontag"
FeiertagName(9) = "Frohnleichnahm"
FeiertagName(10) = "Buß und Bettag"
FeiertagName(11) = "erster Advent"
FeiertagName(12) = "zweiter Advent"
FeiertagName(13) = "dritter Advent"
FeiertagName(14) = "vierter Advent"
FeiertagName(15) = "Neujahr"
FeiertagName(16) = "Hl. drei Könige"
FeiertagName(17) = "Valentinstag"
FeiertagName(18) = "Tag der Arbeit"
FeiertagName(19) = "Maria Himmelfahrt"
FeiertagName(20) = "Tag d.D. Einheit"
FeiertagName(21) = "Reformationstag"
FeiertagName(22) = "aller Heiligen"
FeiertagName(23) = "Heiligabend"
FeiertagName(24) = "Weihnachtstag 1"
FeiertagName(25) = "Weihnachtstag 2"
FeiertagName(26) = "Silvester"
EndProcedure
stehe immer wieder vor diesem Problem, habs noch nicht ganz verinnerlicht(nächster evolutionärer Schritt).
Grüße Christian
Ps
bin nicht sicher ob das ein Anfängerproblem ist, wenn nicht bitte verschieben.