Nun kommt ein Phänomen. Bei der Eingabe von 6,7,8 oder 9 gibt es eine Fehlermeldung. Warum ?? Wo liegt der Fehler ??
Abgespecktes Prog:
Code: Alles auswählen
Enumeration
#window
#start_button_mit
#kalewo
#kalewotext
EndEnumeration
Procedure.b GetKW(PJahr.w,PMonat.b,PTag.b) ; Ermittlung der Kalenderwoche
WT4J.b = DayOfWeek(Date(PJahr.w,1,4,0,0,0))
If WT4J.b = 0 : WT4J.b = 7 : EndIf
MoKW1.b = 4-WT4J.b
WTGD.b = DayOfWeek(Date(PJahr.w,PMonat.b,PTag.b,0,0,0))
If WTGD.b = 0 : WTGD.b = 7 : EndIf
MoGD.w = DayOfYear(Date(PJahr.w,PMonat.b,PTag.b,0,0,0))-WTGD.b
KW.b = Int((MoGD.w-MoKW1.b)/7)+1
If PMonat.b = 12
Week1Q.w = DayOfYear(Date(PJahr.w,PMonat.b,PTag.b,0,0,0))
WT4JNY.b = DayOfWeek(Date(PJahr.w+1,1,4,0,0,0))
If WT4JNY.b = 0 : WT4JNY.b = 7 : EndIf
LastYDay.w = DayOfYear(Date(PJahr.w,12,31,0,0,0))
If LastYDay.w - Week1Q.w < WT4JNY.b -4
KW.b = 1
EndIf
EndIf
If PMonat.b = 1 And PTag.b < 4
If WT4J.b < WTGD.b
KW.b = GetKW(PJahr.w-1,12,31)
EndIf
EndIf
ProcedureReturn KW.b
EndProcedure
Procedure Hauptfenster(kw)
OpenWindow(#window,500,200,457,100,"Kalenderwochen Problem", #WS_OVERLAPPEDWINDOW|#PB_Window_ScreenCentered )
ButtonGadget(#start_button_mit,130,60,186,20,"Kalenderwoche Prüfen")
TextGadget (#kalewo,30, 12, 100,20,"Kalenderwoche:")
StringGadget(#kalewotext, 120, 10, 20, 19, ""+kw)
TextGadget(#PB_Any,160,12,250,20,"Kalenderwoche kann manuell geändert werden!")
ProcedureReturn
EndProcedure
Procedure generate_anz(kw)
kalwo$ = GetGadgetText(#kalewotext)
If kalwo$ < "1" Or kalwo$ >"53"; es gibt Jahre mit 53 Kalenderwochen!
MessageRequester("Fehler", "Kalenderwoche falsch eingegeben!", #PB_MessageRequester_Ok)
SetGadgetText(#kalewotext,""+kw)
Else
MessageRequester("Meldung", "Kalenderwoche OK!", #PB_MessageRequester_Ok)
SetGadgetText(#kalewotext,""+kw)
EndIf
EndProcedure
date.l = Date()
kw=GetKW(Year(date),Month(date),Day(date))
Hauptfenster(kw)
Repeat
Select WindowEvent()
Case #PB_Event_CloseWindow
Exit = 1
Case #PB_Event_Gadget
Select EventGadget()
Case #start_button_mit
generate_anz(kw)
EndSelect
EndSelect
Until Exit