Hallo zusammen,
ich hab hier ein kleines Script gemacht, mit welchem sich Jahreszahlen vom Gregorianischen zum Mondkalender umrechnen lassen.
Spoiler anzeigen
#include <GUIConstants.au3>
;~ Autor: Vinschni
$Form1_1 = GUICreate("Mondkalenderrechner 1.0", 371, 171, 193, 115)
GUISetBkColor(0xA0A0A4)
$Label1 = GUICtrlCreateLabel("Jahr im Gregorianischen Kalender", 8, 8, 162, 17)
GUICtrlSetBkColor(-1, 0xA0A0A4)
$Gregorianzahlinput = GUICtrlCreateInput("", 8, 24, 169, 21)
$Label2 = GUICtrlCreateLabel("Jahr im Islamischen/Mondkalender", 8, 56, 168, 17)
GUICtrlSetBkColor(-1, 0xA0A0A4)
$Mondzahlinput= GUICtrlCreateInput("", 8, 72, 169, 21)
$Ergebnisanzeige = GUICtrlCreateEdit("", 184, 56, 169, 73, $ES_AUTOVSCROLL + $WS_VSCROLL+ $ES_READONLY)
$Umrechnen = GUICtrlCreateButton("Umrechnen", 8, 104, 169, 25, 0)
$Checkbox1 = GUICtrlCreateCheckbox("Exakte Werte ausgeben", 184, 24, 145, 25)
GUICtrlSetBkColor(-1, 0xA0A0A4)
$MenuItem1 = GUICtrlCreateMenu("&Datei")
$Beenden = GUICtrlCreateMenuItem("Beenden", $MenuItem1)
$MenuItem4 = GUICtrlCreateMenu("&Info")
$Hilfe = GUICtrlCreateMenuItem("Hilfe", $MenuItem4)
$Info= GUICtrlCreateMenuItem("Info", $MenuItem4)
GUISetState(@SW_SHOW)
While 1
$msg = GuiGetMsg()
Select
Case $msg = $Umrechnen
eingabeprufen()
Case $msg = $Beenden
Exit
Case $msg = $Hilfe
MsgBox(0, "Hilfe", "Der Mondkalenderrechner dient dazu Jahreszahlen aus dem Mondkalender(oder Islamischen Kalender) in den Gregorianischen Kalender(oder Christlichen Kalender) umzuwandeln und umgekehrt." & @CRLF & @CRLF & "Wenn sie eine Jahreszahl aus dem Mondkalender in eine des Gregorianischen Kalenders umwandeln möchten" & @CRLF &"geben sie die bekannte Jahreszahl des Mondkalenders im dazugehörigen Eingabefeld ein" & @CRLF & "und klicken dann auf <Umrechnen>. Genauso müssen sie verfahren wenn die eine Jahreszahl des Gregorianischen Kalendern in eine des Mondkalenders umrechnen wollen." & @CRLF & @CRLF & "Unter <Optionen> können sie einstellen dass die ungerundeten Näherungswerte ausgegeben werden," & @CRLF & "wie sie vom Programm errechnet wurden.")
Case $msg = $Info
MsgBox(64, "Info", "Beschreibung: Der Mondkalenderrechner dient dazu Jahreszahlen aus dem Mondkalender(oder Islamischen Kalender)" & @CRLF & " in den Gregorianischen Kalender(oder Christlichen Kalender) umzuwandeln und umgekehrt." & @CRLF & @CRLF & "Autor: Vinschni")
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
Case Else
EndSelect
WEnd
Exit
Func eingabeprufen()
If GUICtrlRead($Mondzahlinput) <> "" and GUICtrlRead($Gregorianzahlinput) <> "" Then
MsgBox(16,"Error", "Bitte geben sie nur in ein Jahreszahlenfeld eine Jahreszahl ein !")
ElseIf GUICtrlRead($Mondzahlinput) <> "" and GUICtrlRead($Gregorianzahlinput) = "" Then
JahrumrechnenMondzuGregorian()
ElseIf GUICtrlRead($Gregorianzahlinput) <> "" and GUICtrlRead($Mondzahlinput) = "" Then
JahrumrechnenGregorianzuMond()
EndIf
EndFunc
Func JahrumrechnenMondzuGregorian()
GUICtrlSetData($Ergebnisanzeige,"")
$Monddat = GUICtrlRead($Mondzahlinput)
$Gregoriandatergebnis = Number($Monddat*32/33+622)
If $Monddat = "0" Then
GUICtrlSetData($Ergebnisanzeige, $Monddat & " korrospondiert mit dem Jahr: " & $Gregoriandatergebnis & " im Gregorianischen Kalender.")
ElseIf $Gregoriandatergebnis = "622" and $Monddat <> "0" Then
MsgBox(16, "Error", "Die von ihnen eingegebene Zeichenkette ist keine Jahreszahl!")
Else
If GUICtrlRead($Checkbox1) = $GUI_CHECKED Then
ElseIf GUICtrlRead($Checkbox1) = $GUI_UNCHECKED Then
$Gregoriandatergebnis = Round($Gregoriandatergebnis,0)
EndIf
GUICtrlSetData($Ergebnisanzeige, "Das Jahr " & $Monddat & " im Mondkalender korrospondiert mit dem Jahr " & $Gregoriandatergebnis & " im Gregorianischen Kalender.")
EndIf
EndFunc
Func JahrumrechnenGregorianzuMond()
GUICtrlSetData($Ergebnisanzeige,"")
$Gregoriandat = GUICtrlRead($Gregorianzahlinput)
$Monddatergebnis= Number(33/32*($Gregoriandat-622))
If $Gregoriandat = "0" Then
GUICtrlSetData($Ergebnisanzeige, $Gregoriandat & " korrospondiert mit dem Jahr: " & $Monddatergebnis & " im Gregorianischen Kalender.")
ElseIf $Monddatergebnis = "622" and $Gregoriandat <> "0" Then
MsgBox(16, "Error", "Die von ihnen eingegebene Zeichenkette ist keine Jahreszahl!")
ElseIf $Monddatergebnis = "-641.4375 " and GUICtrlRead($Gregorianzahlinput) <> "0" Then
MsgBox(16, "Error", "Die von ihnen eingegebene Zeichenkette ist keine Jahreszahl!")
Else
If GUICtrlRead($Checkbox1) = $GUI_CHECKED Then
ElseIf GUICtrlRead($Checkbox1) = $GUI_UNCHECKED Then
$Monddatergebnis = Round($Monddatergebnis,0)
EndIf
If $Monddatergebnis < 622 Then
MsgBox(48,"Meldung", "Das von ihnen nach dem Gregorianischen Kalender eingegebene Jahr liegt vor der islamischen Zeitrechnung" & @CRLF & "und wird deshalb mit einem Minus dargestellt!")
GUICtrlSetData($Ergebnisanzeige, "Das Jahr " &$Gregoriandat & " korrospondiert mit dem Jahr " & $Monddatergebnis & " im Gregorianischen Kalender.")
EndIf
GUICtrlSetData($Ergebnisanzeige, "Das Jahr " & $Gregoriandat & " im Mondkalender korrospondiert mit dem Jahr " & $Monddatergebnis & " im Gregorianischen Kalender.")
EndIf
EndFunc
EDIT: Ich hätte noch eine Frage, ich wollte die CHECKBOX weglassen, und dafür einen Menüunterpunkt erstellen, den man checken und unchecken kann. Leider klappt es nich wenn ich ihn abfragen will. Man kann ihn auch nicht einfach checken oder unchecken, wie man es bei eine CHECKBOX kann wenn man die GUI startet. Wie mach ich das am besten?
Grüße Vinschni