Hallo,
ich habe es mir mal zur Aufgabe gemacht vor geraumer Zeit ein kleines Programm zu tippern, womit ich die Jahresendabrechnung nachrechnen kann. Seit dem bin ich immer einen Schritt vorraus.
Alle Änderungen für das Jahr 2007 incl. der Mehrwert- /Umsatzsteuer-Erhöhung habe ich berücksichtigt. Für evtl. Abrechnungsfehler des Stromkonzerns, bin ich nicht verantwortlich! *bg*
P.S: Ich hätte es ja gern per DB-Eintrag gemacht, aber die Technik streikt.
Spoiler anzeigen
Code
#NoTrayIcon
; --- Globale Constanten, die für's Programm notwendig sind ---
Global Const $GUI_EVENT_CLOSE = -3
Global Const $GUI_DROPACCEPTED = 8
Global Const $WS_TILED = 0
Global Const $WS_OVERLAPPED = 0
Global Const $WS_MINIMIZEBOX = 0x00020000
Global Const $WS_TABSTOP = 0x00010000
Global Const $WS_SYSMENU = 0x00080000
Global Const $WS_HSCROLL = 0x00100000
Global Const $WS_VSCROLL = 0x00200000
Global Const $WS_BORDER = 0x00800000
Global Const $WS_CAPTION = 0x00C00000
Global Const $WS_MINIMIZE = 0x20000000
Global Const $WS_POPUP = 0x80000000
Global Const $WS_POPUPWINDOW = 0x80880000
Global Const $SS_LEFT = 0
Global Const $SS_CENTER = 1
Global Const $SS_RIGHT = 2
Global Const $SS_NOTIFY = 0x0100
Global Const $BS_RIGHT = 0x0200
Global Const $BS_FLAT = 0x8000
Global Const $CBS_DROPDOWN = 0x0002
Global Const $CBS_AUTOHSCROLL = 0x0040
Global Const $LBS_NOTIFY = 0x0001
Global Const $LBS_SORT = 0x0002
Global Const $ES_LEFT = 0
Global Const $ES_CENTER = 1
Global Const $ES_RIGHT = 2
Global Const $ES_AUTOVSCROLL = 64
Global Const $ES_AUTOHSCROLL = 128
Global Const $ES_WANTRETURN = 4096
Global Const $DTS_LONGDATEFORMAT = 4
Global Const $MCS_NOTODAY = 16
Global Const $ACS_TRANSPARENT = 2
Global Const $TCS_RIGHT = 0x0002
Global Const $TVS_HASBUTTONS = 0x0001
Global Const $TVS_HASLINES = 0x0002
Global Const $TVS_LINESATROOT = 0x0004
Global Const $TVS_DISABLEDRAGDROP = 0x0010
Global Const $TVS_SHOWSELALWAYS = 0x0020
Global Const $TBS_AUTOTICKS = 0x0001
Global Const $LVS_SINGLESEL = 0x0004
Global Const $LVS_SHOWSELALWAYS = 0x0008
Global Const $UDS_ALIGNRIGHT = 0x0004
Global Const $GUI_SS_DEFAULT_LIST = BitOR($LBS_SORT, $WS_BORDER, $WS_VSCROLL, $LBS_NOTIFY)
;
; --- Hauptprogramm - GUI
;
$Form1 = GUICreate("", 606, 530, -1, -1, $WS_POPUPWINDOW)
GUISetBkColor(0x483D8B)
GUICtrlCreateLabel("Stromabrechnung Version 2.0.09122006 by trallala", 16, 16, 570, 17)
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetBkColor(-1, 0x483D8B)
GUICtrlCreateLabel("1.Rechnung", 16, 48, 65, 17)
GUICtrlSetBkColor(-1, 0xFFC0C0)
GUICtrlCreateLabel("Datum", 88, 48, 80, 17, $SS_CENTER)
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetBkColor(-1, 0x5B6680)
GUICtrlCreateLabel("Zählerstand", 176, 48, 68, 17, $SS_CENTER)
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetBkColor(-1, 0x5B6680)
GUICtrlCreateLabel("1.Rechnung", 296, 48, 63, 17)
GUICtrlSetBkColor(-1, 0xFFC0C0)
GUICtrlCreateLabel("1.Ablesung", 16, 72, 65, 17)
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetBkColor(-1, 0x5B6680)
$Date1 = GUICtrlCreateDate("2006/01/08 00:00:00", 88, 72, 80, 17, $WS_TABSTOP)
GUICtrlSetBkColor(-1, 0xFFFFE0)
$Stand1 = GUICtrlCreateInput("146", 176, 72, 70, 17,BitOR($ES_CENTER,$ES_AUTOHSCROLL))
GUICtrlSetBkColor(-1, 0xFFFFE0)
GUICtrlCreateLabel("kWh-Verbrauch", 296, 72, 135, 17)
GUICtrlSetBkColor(-1, 0xC0C0C0)
$Input2 = GUICtrlCreateInput("0.1332", 440, 72, 65, 17,BitOR($ES_CENTER,$ES_AUTOHSCROLL))
GUICtrlSetBkColor(-1, 0xFFFFE0)
$Edit1 = GUICtrlCreateEdit("", 520, 72, 65, 17, BitOR($ES_RIGHT,$ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN),0)
GUICtrlSetData($Edit1, "")
GUICtrlCreateLabel("2.Ablesung", 16, 96, 65, 17)
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetBkColor(-1, 0x5B6680)
$Date2 = GUICtrlCreateDate("2006/09/25 00:00:00", 88, 96, 80, 17, $WS_TABSTOP)
GUICtrlSetBkColor(-1, 0xFFFFE0)
$Stand2 = GUICtrlCreateInput("1041", 176, 96, 70, 17,BitOR($ES_CENTER,$ES_AUTOHSCROLL))
GUICtrlSetBkColor(-1, 0xFFFFE0)
GUICtrlCreateLabel("kWh-Stromsteuer", 296, 96, 134, 17)
GUICtrlSetBkColor(-1, 0xC0C0C0)
$Input4 = GUICtrlCreateInput("0.0205", 440, 96, 65, 17,BitOR($ES_CENTER,$ES_AUTOHSCROLL))
GUICtrlSetBkColor(-1, 0xFFFFE0)
$Edit2 = GUICtrlCreateEdit("", 520, 96, 65, 17, BitOR($ES_RIGHT,$ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN),0)
GUICtrlSetData($Edit2, "")
GUICtrlCreateLabel("Tage", 88, 120, 80, 17, $SS_CENTER)
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetBkColor(-1, 0x5B6680)
GUICtrlCreateLabel("Verbrauch", 176, 120, 69, 17, $SS_CENTER)
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetBkColor(-1, 0x5B6680)
GUICtrlCreateLabel("Grundpreis/Einzelpreis", 296, 120, 134, 17)
GUICtrlSetBkColor(-1, 0xC0C0C0)
$Input5 = GUICtrlCreateInput("49.51", 440, 120, 65, 17,BitOR($ES_CENTER,$ES_AUTOHSCROLL))
GUICtrlSetBkColor(-1, 0xFFFFE0)
$Edit3 = GUICtrlCreateEdit("", 520, 120, 65, 17, BitOR($ES_RIGHT,$ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN),0)
GUICtrlSetData($Edit3, "")
$Tage1 = GUICtrlCreateEdit("", 88, 144, 80, 17, BitOR($ES_CENTER,$ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN),0)
GUICtrlSetBkColor(-1, 0xC0C0C0)
$Z01 = GUICtrlCreateEdit("", 176, 144, 70, 17, BitOR($ES_CENTER,$ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN),0)
GUICtrlSetData($Z01, "")
GUICtrlSetBkColor(-1, 0xC0C0C0)
$Input6 = GUICtrlCreateInput("19", 296, 144, 30, 17,BitOR($ES_CENTER,$ES_AUTOHSCROLL))
GUICtrlSetBkColor(-1, 0xFFFFE0)
GUICtrlCreateLabel(" % Umsatzsteuer von", 328, 144, 103, 17)
GUICtrlSetBkColor(-1, 0xC0C0C0)
$Edit6 = GUICtrlCreateEdit("", 440, 144, 65, 17, BitOR($ES_CENTER,$ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN),0)
GUICtrlSetData($Edit6, "")
$Edit7 = GUICtrlCreateEdit("", 520, 144, 65, 17, BitOR($ES_RIGHT,$ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN),0)
GUICtrlSetData($Edit7, "")
GUICtrlCreateLabel("Vorläufiges Datum mit dem", 88, 176, 160, 17, $SS_CENTER)
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetBkColor(-1, 0x5B6680)
GUICtrlCreateLabel("berechneten Verbrauch !", 88, 192, 160, 17, $SS_CENTER)
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetBkColor(-1, 0x5B6680)
GUICtrlCreateLabel("1. Rechnungssumme", 296, 184, 210, 17)
GUICtrlSetBkColor(-1, 0xFFC0C0)
$Edit8 = GUICtrlCreateEdit("", 520, 184, 65, 17, BitOR($ES_RIGHT,$ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN),0)
GUICtrlSetBkColor(-1, 0xFFC0C0)
GUICtrlSetData($Edit8, "")
GUICtrlCreateLabel("2.Rechnung", 16, 216, 65, 17)
GUICtrlSetBkColor(-1, 0xFF8080)
$Date3 = GUICtrlCreateDate(_Now(), 88, 216, 80, 17, $WS_TABSTOP)
GUICtrlSetBkColor(-1, 0xFFFFE0)
$Stand3 = GUICtrlCreateEdit("", 176, 216, 70, 17, BitOR($ES_CENTER,$ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN),0)
GUICtrlSetData($Stand3, "")
GUICtrlSetBkColor(-1, 0xC0C0C0)
GUICtrlCreateLabel("2.Rechnung", 296, 216, 63, 17)
GUICtrlSetBkColor(-1, 0xFF8080)
GUICtrlCreateLabel("Tage", 88, 240, 80, 17, $SS_CENTER)
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetBkColor(-1, 0x5B6680)
GUICtrlCreateLabel("Verbrauch", 176, 240, 69, 17, $SS_CENTER)
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetBkColor(-1, 0x5B6680)
GUICtrlCreateLabel("kWh-Verbrauch", 296, 240, 135, 17)
GUICtrlSetBkColor(-1, 0xC0C0C0)
$Input7 = GUICtrlCreateInput("0.1332", 440, 240, 65, 17,BitOR($ES_CENTER,$ES_AUTOHSCROLL))
GUICtrlSetBkColor(-1, 0xFFFFE0)
$Edit10 = GUICtrlCreateEdit("", 520, 240, 65, 17, BitOR($ES_RIGHT,$ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN),0)
GUICtrlSetData($Edit10, "")
GUICtrlSetBkColor(-1, 0xC0C0C0)
$Tage2 = GUICtrlCreateEdit("", 88, 264, 80, 17, BitOR($ES_CENTER,$ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN),0)
GUICtrlSetData($Tage2, "")
GUICtrlSetBkColor(-1, 0xC0C0C0)
$Z02 = GUICtrlCreateEdit("", 176, 264, 70, 17, BitOR($ES_CENTER,$ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN),0)
GUICtrlSetData($Z02, "")
GUICtrlSetBkColor(-1, 0xC0C0C0)
GUICtrlCreateLabel("kWh-Stromsteuer", 296, 264, 134, 17)
GUICtrlSetBkColor(-1, 0xC0C0C0)
$Input8 = GUICtrlCreateInput("0.0205", 440, 264, 65, 17,BitOR($ES_CENTER,$ES_AUTOHSCROLL))
GUICtrlSetBkColor(-1, 0xFFFFE0)
$Edit13 = GUICtrlCreateEdit("", 520, 264, 65, 17, BitOR($ES_RIGHT,$ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN),0)
GUICtrlSetData($Edit13, "")
GUICtrlCreateLabel("Grundpreis/Einzelpreis", 296, 288, 134, 17)
GUICtrlSetBkColor(-1, 0xC0C0C0)
$Input9 = GUICtrlCreateInput("49.51", 440, 288, 65, 17,BitOR($ES_CENTER,$ES_AUTOHSCROLL))
GUICtrlSetBkColor(-1, 0xFFFFE0)
$Edit14 = GUICtrlCreateEdit("", 520, 288, 65, 17, BitOR($ES_RIGHT,$ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN),0)
GUICtrlSetData($Edit14, "")
GUICtrlCreateLabel("Abschläge", 16, 312, 230, 17, $SS_CENTER)
GUICtrlSetColor(-1, 0xFFFFFF)
;GUICtrlSetBkColor(-1, 0x5B6673)
GUICtrlSetBkColor(-1, 0x5B6680)
$Input10 = GUICtrlCreateInput("19", 296, 312, 30, 17,BitOR($ES_CENTER,$ES_AUTOHSCROLL))
GUICtrlSetBkColor(-1, 0xFFFFE0)
GUICtrlCreateLabel("% Umsatzsteuer von", 328, 312, 100, 17)
GUICtrlSetBkColor(-1, 0xC0C0C0)
$Edit15 = GUICtrlCreateEdit("", 440, 312, 65, 17, BitOR($ES_CENTER,$ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN),0)
GUICtrlSetData($Edit15, "")
$Edit16 = GUICtrlCreateEdit("", 520, 312, 65, 17, BitOR($ES_RIGHT,$ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN),0)
GUICtrlCreateLabel("Januar", 16, 344, 65, 17)
GUICtrlSetBkColor(-1, 0x008080)
GUICtrlSetColor(-1, 0xFFFFFF)
$M01 = GUICtrlCreateInput("0", 88, 344, 40, 17,BitOR($ES_CENTER,$ES_AUTOHSCROLL))
GUICtrlSetBkColor(-1, 0xFFFFE0)
GUICtrlCreateLabel("Juli", 136, 344, 65, 17)
GUICtrlSetBkColor(-1, 0x008080)
GUICtrlSetColor(-1, 0xFFFFFF)
$M07 = GUICtrlCreateInput("0", 208, 344, 40, 17,BitOR($ES_CENTER,$ES_AUTOHSCROLL))
GUICtrlSetBkColor(-1, 0xFFFFE0)
GUICtrlCreateLabel("2.Rechnungssumme", 296, 344, 210, 17)
GUICtrlSetBkColor(-1, 0xFF8080)
$Edit17 = GUICtrlCreateEdit("", 520, 344, 65, 17, BitOR($ES_RIGHT,$ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN),0)
GUICtrlSetData($Edit17, "")
GUICtrlSetBkColor(-1, 0xFF8080)
GUICtrlCreateLabel("Februar", 16, 368, 65, 17)
GUICtrlSetBkColor(-1, 0x008080)
GUICtrlSetColor(-1, 0xFFFFFF)
$M02 = GUICtrlCreateInput("0", 88, 368, 40, 17,BitOR($ES_CENTER,$ES_AUTOHSCROLL))
GUICtrlSetBkColor(-1, 0xFFFFE0)
GUICtrlCreateLabel("August", 136, 368, 65, 17)
GUICtrlSetBkColor(-1, 0x008080)
GUICtrlSetColor(-1, 0xFFFFFF)
$M08 = GUICtrlCreateInput("0", 208, 368, 40, 17,BitOR($ES_CENTER,$ES_AUTOHSCROLL))
GUICtrlSetBkColor(-1, 0xFFFFE0)
GUICtrlCreateLabel("Gesamtsumme", 296, 368, 210, 17)
GUICtrlSetBkColor(-1, 0xFFCB84)
$Edit18 = GUICtrlCreateEdit("", 520, 368, 65, 17, BitOR($ES_RIGHT,$ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN),0)
GUICtrlSetBkColor(-1, 0xFFCB84)
GUICtrlCreateLabel("März", 16, 392, 65, 17)
GUICtrlSetBkColor(-1, 0x008080)
GUICtrlSetColor(-1, 0xFFFFFF)
$M03 = GUICtrlCreateInput("0", 88, 392, 40, 17,BitOR($ES_CENTER,$ES_AUTOHSCROLL))
GUICtrlSetBkColor(-1, 0xFFFFE0)
GUICtrlCreateLabel("September", 136, 392, 65, 17)
GUICtrlSetBkColor(-1, 0x008080)
GUICtrlSetColor(-1, 0xFFFFFF)
$M09 = GUICtrlCreateInput("0", 208, 392, 40, 17,BitOR($ES_CENTER,$ES_AUTOHSCROLL))
GUICtrlSetBkColor(-1, 0xFFFFE0)
GUICtrlCreateLabel("Zahlungen", 296, 392, 210, 17)
GUICtrlSetBkColor(-1, 0x008080)
GUICtrlSetColor(-1, 0xFFFFFF)
$Raten = GUICtrlCreateEdit("", 520, 392, 65, 17, BitOR($ES_RIGHT,$ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN),0)
GUICtrlSetBkColor(-1, 0x008080)
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetData($Raten, "")
GUICtrlCreateLabel("April", 16, 416, 65, 17)
GUICtrlSetBkColor(-1, 0x008080)
GUICtrlSetColor(-1, 0xFFFFFF)
$M04 = GUICtrlCreateInput("0", 88, 416, 40, 17,BitOR($ES_CENTER,$ES_AUTOHSCROLL))
GUICtrlSetBkColor(-1, 0xFFFFE0)
GUICtrlCreateLabel("Oktober", 136, 416, 65, 17)
GUICtrlSetBkColor(-1, 0x008080)
GUICtrlSetColor(-1, 0xFFFFFF)
$M10 = GUICtrlCreateInput("0", 208, 416, 40, 17,BitOR($ES_CENTER,$ES_AUTOHSCROLL))
GUICtrlSetBkColor(-1, 0xFFFFE0)
GUICtrlCreateLabel("Zahlungsrest", 296, 416, 210, 17)
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetBkColor(-1, 0x778899)
$Edit20 = GUICtrlCreateEdit("", 520, 416, 65, 17, BitOR($ES_RIGHT,$ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN),0)
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetBkColor(-1, 0x778899)
GUICtrlSetData($Edit20, "")
GUICtrlCreateLabel("Mai", 16, 440, 65, 17)
GUICtrlSetBkColor(-1, 0x008080)
GUICtrlSetColor(-1, 0xFFFFFF)
$M05 = GUICtrlCreateInput("0", 88, 440, 40, 17,BitOR($ES_CENTER,$ES_AUTOHSCROLL))
GUICtrlSetBkColor(-1, 0xFFFFE0)
GUICtrlCreateLabel("November", 136, 440, 65, 17)
GUICtrlSetBkColor(-1, 0x008080)
GUICtrlSetColor(-1, 0xFFFFFF)
$M11 = GUICtrlCreateInput("0", 208, 440, 40, 17,BitOR($ES_CENTER,$ES_AUTOHSCROLL))
GUICtrlSetBkColor(-1, 0xFFFFE0)
GUICtrlCreateLabel("Juni", 16, 464, 65, 17)
GUICtrlSetBkColor(-1, 0x008080)
GUICtrlSetColor(-1, 0xFFFFFF)
$M06 = GUICtrlCreateInput("0", 88, 464, 40, 17,BitOR($ES_CENTER,$ES_AUTOHSCROLL))
GUICtrlSetBkColor(-1, 0xFFFFE0)
GUICtrlCreateLabel("Dezember", 136, 464, 65, 17)
GUICtrlSetBkColor(-1, 0x008080)
GUICtrlSetColor(-1, 0xFFFFFF)
$M12 = GUICtrlCreateInput("0", 208, 464, 40, 17,BitOR($ES_CENTER,$ES_AUTOHSCROLL))
GUICtrlSetBkColor(-1, 0xFFFFE0)
GUICtrlCreateLabel("Ihr Restbetrag", 296, 464, 160, 17)
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetBkColor(-1, 0x000000)
$Edit21 = GUICtrlCreateEdit("", 520, 464, 65, 17, BitOR($ES_RIGHT,$ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN),0)
GUICtrlSetData($Edit21, "")
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetBkColor(-1, 0x000000)
GUICtrlCreateLabel("", 456, 464, 50, 17)
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetBkColor(-1, 0x000000)
$Berechnen = GUICtrlCreateButton("Berechnen", 296, 496, 121, 20, BitOR($BS_FLAT,$WS_BORDER))
$Beenden = GUICtrlCreateButton("Beenden", 464, 496, 121, 20, BitOR($BS_FLAT,$WS_BORDER))
GUISetState(@SW_SHOW)
; ---> GUI-Event's
While 1
$msg = GuiGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
Case $msg = $Beenden
ExitLoop
Case $msg = $Berechnen
GUICtrlSetData($Tage1, _DateDiff("D", _DateLocal2Int(GUICTRLREAD($Date1)), _DateLocal2Int(GUICTRLREAD($Date2)))+1)
GUICtrlSetData($Tage2, _DateDiff("D", _DateLocal2Int(GUICTRLREAD($Date1)), _DateLocal2Int(GUICTRLREAD($Date3)))+1)
GUICtrlSetData($Z01, GUICTRLREAD($Stand2)-GUICTRLREAD($Stand1))
GUICtrlSetData($Z02, Int(GUICTRLREAD($Z01)/GUICTRLREAD($Tage1)*GUICTRLREAD($Tage2)))
GUICtrlSetData($Stand3, GUICTRLREAD($Z02) + GUICTRLREAD($Stand1))
$Ver1 = StringFormat('%.02f', GUICTRLREAD($Z01) * GUICTRLREAD($Input2))
GUICtrlSetData($Edit1, $Ver1)
$St1 = StringFormat('%.02f', GUICTRLREAD($Z01) * GUICTRLREAD($Input4))
GUICtrlSetData($Edit2, $St1)
$Grp1 = StringFormat('%.02f', GUICTRLREAD($Input5)/365 * GUICTRLREAD($Tage1))
GUICtrlSetData($Edit3, $Grp1)
$Gums1 = StringFormat('%.02f', $Ver1 + $St1 + $Grp1)
GUICtrlSetData($Edit6, $Gums1)
$Ums1 = StringFormat('%.02f', GUICTRLREAD($Input6) / 100 * $Gums1)
GUICtrlSetData($Edit7, $Ums1)
GUICtrlSetData($Edit8, $Gums1 + $Ums1)
$Ver2 = StringFormat('%.02f', (GUICTRLREAD($Z02) - GUICTRLREAD($Z01)) * GUICTRLREAD($Input7))
GUICtrlSetData($Edit10, $Ver2)
$St2 = StringFormat('%.02f', (GUICTRLREAD($Z02) - GUICTRLREAD($Z01))* GUICTRLREAD($Input8))
GUICtrlSetData($Edit13, $St2)
$Grp2 = StringFormat('%.02f', GUICTRLREAD($Input9)/365 * (GUICTRLREAD($Tage2) - GUICTRLREAD($Tage1)))
GUICtrlSetData($Edit14, $Grp2)
$Gums2 = StringFormat('%.02f', $Ver2 + $St2 + $Grp2)
GUICtrlSetData($Edit15, $Gums2)
$Ums2 = StringFormat('%.02f', GUICTRLREAD($Input10) / 100 * $Gums2)
GUICtrlSetData($Edit16, $Ums2)
GUICtrlSetData($Edit17, $Gums2 + $Ums2)
$Gesamt = StringFormat('%.02f', GUICTRLREAD($Edit8) + GUICTRLREAD($Edit17))
GUICtrlSetData($Edit18, $Gesamt)
$a = GUICtrlRead($M01) + GUICtrlRead($M02) + GUICtrlRead($M03) + GUICtrlRead($M04)
$b = GUICtrlRead($M05) + GUICtrlRead($M06) + GUICtrlRead($M07) + GUICtrlRead($M08)
$c = GUICtrlRead($M09) + GUICtrlRead($M10) + GUICtrlRead($M11) + GUICtrlRead($M12)
$Zahlungen = StringFormat('%.02f', $a + $b + $c)
GUICtrlSetData($Raten, $Zahlungen)
$Rest1 = StringFormat('%.02f', GUICtrlRead($Raten) - GUICtrlRead($Edit18))
GUICtrlSetData($Edit20, $Rest1)
GUICtrlCreateLabel("", 456, 464, 50, 17)
If GUICtrlRead($Edit20) > 0 Then
GUICtrlCreateLabel("Gutschrift", 456, 464, 50, 17)
GUICtrlSetColor(-1, 0xC0FFC0)
GUICtrlSetBkColor(-1, 0x000000)
Else
GUICtrlCreateLabel("Lastschrift", 456, 464, 50, 17)
GUICtrlSetColor(-1, 0xFFC0C0)
GUICtrlSetBkColor(-1, 0x000000)
EndIf
GUICtrlSetData($Edit21, $Rest1)
EndSelect
WEnd
; --- FUNCTIONEN - Datum- und Zeit-Abhandlung
Func _DateLocal2Int($conv_date)
$conv_parts = StringSplit($conv_date, ".\")
If @OSLang = "0407" or @OSLang = "0807" or @OSLang = "0c07" or @OSLang = "1007" or @OSLang = "1407" Then
Return $conv_parts[3] & "/" & $conv_parts[2] & "/" & $conv_parts[1]
ElseIf @OSLang = "0409" or @OSLang = "0809" Then
Return $conv_date
Else
Return $conv_date
EndIf
EndFunc
Func _Now()
Return (_DateTimeFormat(@YEAR & "/" & @MON & "/" & @MDAY & " " & @HOUR & ":" & @MIN & ":" & @SEC, 0))
EndFunc
Func _DateDayOfWeek($iDayNum, $iShort = 0)
Local $aDayOfWeek[8]
$aDayOfWeek[1] = "Sunday"
$aDayOfWeek[2] = "Monday"
$aDayOfWeek[3] = "Tuesday"
$aDayOfWeek[4] = "Wednesday"
$aDayOfWeek[5] = "Thursday"
$aDayOfWeek[6] = "Friday"
$aDayOfWeek[7] = "Saturday"
Select
Case Not StringIsInt($iDayNum) Or Not StringIsInt($iShort)
SetError(1)
Return ""
Case $iDayNum < 1 Or $iDayNum > 7
SetError(1)
Return ""
Case Else
Select
Case $iShort = 0
Return $aDayOfWeek[$iDayNum]
Case $iShort = 1
Return StringLeft($aDayOfWeek[$iDayNum], 3)
Case Else
SetError(1)
Return ""
EndSelect
EndSelect
EndFunc
Func _DateDiff($sType, $sStartDate, $sEndDate)
Local $asStartDatePart[4]
Local $asStartTimePart[4]
Local $asEndDatePart[4]
Local $asEndTimePart[4]
Local $iTimeDiff
Local $iYearDiff
Local $iMonthDiff
Local $iStartTimeInSecs
Local $iEndTimeInSecs
Local $aDaysDiff
$sType = StringLeft($sType, 1)
If StringInStr("d,m,y,w,h,n,s", $sType) = 0 Or $sType = "" Then
SetError(1)
Return (0)
EndIf
If Not _DateIsValid($sStartDate) Then
SetError(2)
Return (0)
EndIf
If Not _DateIsValid($sEndDate) Then
SetError(3)
Return (0)
EndIf
_DateTimeSplit($sStartDate, $asStartDatePart, $asStartTimePart)
_DateTimeSplit($sEndDate, $asEndDatePart, $asEndTimePart)
$aDaysDiff = _DateToDayValue($asEndDatePart[1], $asEndDatePart[2], $asEndDatePart[3]) - _DateToDayValue($asStartDatePart[1], $asStartDatePart[2], $asStartDatePart[3])
If $asStartTimePart[0] > 1 And $asEndTimePart[0] > 1 Then
$iStartTimeInSecs = $asStartTimePart[1] * 3600 + $asStartTimePart[2] * 60 + $asStartTimePart[3]
$iEndTimeInSecs = $asEndTimePart[1] * 3600 + $asEndTimePart[2] * 60 + $asEndTimePart[3]
$iTimeDiff = $iEndTimeInSecs - $iStartTimeInSecs
If $iTimeDiff < 0 Then
$aDaysDiff = $aDaysDiff - 1
$iTimeDiff = $iTimeDiff + 24 * 60 * 60
EndIf
Else
$iTimeDiff = 0
EndIf
Select
Case $sType = "d"
Return ($aDaysDiff)
Case $sType = "m"
$iYearDiff = $asEndDatePart[1] - $asStartDatePart[1]
$iMonthDiff = $asEndDatePart[2] - $asStartDatePart[2] + $iYearDiff * 12
If $asEndDatePart[3] < $asStartDatePart[3] Then $iMonthDiff = $iMonthDiff - 1
$iStartTimeInSecs = $asStartTimePart[1] * 3600 + $asStartTimePart[2] * 60 + $asStartTimePart[3]
$iEndTimeInSecs = $asEndTimePart[1] * 3600 + $asEndTimePart[2] * 60 + $asEndTimePart[3]
$iTimeDiff = $iEndTimeInSecs - $iStartTimeInSecs
If $asEndDatePart[3] = $asStartDatePart[3] And $iTimeDiff < 0 Then $iMonthDiff = $iMonthDiff - 1
Return ($iMonthDiff)
Case $sType = "y"
$iYearDiff = $asEndDatePart[1] - $asStartDatePart[1]
If $asEndDatePart[2] < $asStartDatePart[2] Then $iYearDiff = $iYearDiff - 1
If $asEndDatePart[2] = $asStartDatePart[2] And $asEndDatePart[3] < $asStartDatePart[3] Then $iYearDiff = $iYearDiff - 1
$iStartTimeInSecs = $asStartTimePart[1] * 3600 + $asStartTimePart[2] * 60 + $asStartTimePart[3]
$iEndTimeInSecs = $asEndTimePart[1] * 3600 + $asEndTimePart[2] * 60 + $asEndTimePart[3]
$iTimeDiff = $iEndTimeInSecs - $iStartTimeInSecs
If $asEndDatePart[2] = $asStartDatePart[2] And $asEndDatePart[3] = $asStartDatePart[3] And $iTimeDiff < 0 Then $iYearDiff = $iYearDiff - 1
Return ($iYearDiff)
Case $sType = "w"
Return (Int($aDaysDiff / 7))
Case $sType = "h"
Return ($aDaysDiff * 24 + Int($iTimeDiff / 3600))
Case $sType = "n"
Return ($aDaysDiff * 24 * 60 + Int($iTimeDiff / 60))
Case $sType = "s"
Return ($aDaysDiff * 24 * 60 * 60 + $iTimeDiff)
EndSelect
EndFunc
Func _DateIsLeapYear($iYear)
If StringIsInt($iYear) Then
Select
Case Mod($iYear, 4) = 0 And Mod($iYear, 100) <> 0
Return 1
Case Mod($iYear, 400) = 0
Return 1
Case Else
Return 0
EndSelect
Else
SetError(1)
Return 0
EndIf
EndFunc
Func _DateIsValid($sDate)
Local $asDatePart[4]
Local $asTimePart[4]
Local $iNumDays
$iNumDays = "31,28,31,30,31,30,31,31,30,31,30,31"
$iNumDays = StringSplit($iNumDays, ",")
_DateTimeSplit($sDate, $asDatePart, $asTimePart)
If $asDatePart[0] <> 3 Then
Return (0)
EndIf
If _DateIsLeapYear($asDatePart[1]) Then $iNumDays[2] = 29
If $asDatePart[1] < 1000 Or $asDatePart[1] > 2999 Then Return (0)
If $asDatePart[2] < 1 Or $asDatePart[2] > 12 Then Return (0)
If $asDatePart[3] < 1 Or $asDatePart[3] > $iNumDays[$asDatePart[2]] Then Return (0)
If $asTimePart[0] < 1 Then Return (1)
If $asTimePart[0] < 2 Then Return (0)
If $asTimePart[1] < 0 Or $asTimePart[1] > 23 Then Return (0)
If $asTimePart[2] < 0 Or $asTimePart[2] > 59 Then Return (0)
If $asTimePart[3] < 0 Or $asTimePart[3] > 59 Then Return (0)
Return (1)
EndFunc
Func _DateMonthOfYear($iMonthNum, $iShort)
Local $aMonthOfYear[13]
$aMonthOfYear[1] = "Januar"
$aMonthOfYear[2] = "Februar"
$aMonthOfYear[3] = "März"
$aMonthOfYear[4] = "April"
$aMonthOfYear[5] = "Mai"
$aMonthOfYear[6] = "Juni"
$aMonthOfYear[7] = "Juli"
$aMonthOfYear[8] = "August"
$aMonthOfYear[9] = "September"
$aMonthOfYear[10] = "Oktober"
$aMonthOfYear[11] = "November"
$aMonthOfYear[12] = "Dezember"
Select
Case Not StringIsInt($iMonthNum) Or Not StringIsInt($iShort)
SetError(1)
Return ""
Case $iMonthNum < 1 Or $iMonthNum > 12
SetError(1)
Return ""
Case Else
Select
Case $iShort = 0
Return $aMonthOfYear[$iMonthNum]
Case $iShort = 1
Return StringLeft($aMonthOfYear[$iMonthNum], 3)
Case Else
SetError(1)
Return ""
EndSelect
EndSelect
EndFunc
Func _DateTimeSplit($sDate, ByRef $asDatePart, ByRef $iTimePart)
Local $sDateTime
Local $x
$sDateTime = StringSplit($sDate, " T")
If $sDateTime[0] > 0 Then $asDatePart = StringSplit($sDateTime[1], "/-.")
If $sDateTime[0] > 1 Then
$iTimePart = StringSplit($sDateTime[2], ":")
If UBound($iTimePart) < 4 Then ReDim $iTimePart[4]
Else
Dim $iTimePart[4]
EndIf
If UBound($asDatePart) < 4 Then ReDim $asDatePart[4]
For $x = 1 To 3
$asDatePart[$x] = Number($asDatePart[$x])
$iTimePart[$x] = Number($iTimePart[$x])
Next
Return (1)
EndFunc
Func _DateToDayValue($iYear, $iMonth, $iDay)
Local $i_aFactor
Local $i_bFactor
Local $i_cFactor
Local $i_eFactor
Local $i_fFactor
Local $iJulianDate
If Not _DateIsValid(StringFormat( "%04d/%02d/%02d", $iYear, $iMonth, $iDay)) Then
SetError(1)
Return ("")
EndIf
If $iMonth < 3 Then
$iMonth = $iMonth + 12
$iYear = $iYear - 1
EndIf
$i_aFactor = Int($iYear / 100)
$i_bFactor = Int($i_aFactor / 4)
$i_cFactor = 2 - $i_aFactor + $i_bFactor
$i_eFactor = Int(1461 * ($iYear + 4716) / 4)
$i_fFactor = Int(153 * ($iMonth + 1) / 5)
$iJulianDate = $i_cFactor + $iDay + $i_eFactor + $i_fFactor - 1524.5
return ($iJulianDate)
EndFunc
Func _DateToDayOfWeek($iYear, $iMonth, $iDay)
Local $i_aFactor
Local $i_yFactor
Local $i_mFactor
Local $i_dFactor
If Not _DateIsValid($iYear & "/" & $iMonth & "/" & $iDay) Then
SetError(1)
Return ("")
EndIf
$i_aFactor = Int((14 - $iMonth) / 12)
$i_yFactor = $iYear - $i_aFactor
$i_mFactor = $iMonth + (12 * $i_aFactor) - 2
$i_dFactor = Mod($iDay + $i_yFactor + Int($i_yFactor / 4) - Int($i_yFactor / 100) + Int($i_yFactor / 400) + Int((31 * $i_mFactor) / 12), 7)
return ($i_dFactor + 1)
EndFunc
Func _DateTimeFormat($sDate, $sType)
Local $asDatePart[4]
Local $asTimePart[4]
Local $sTempDate = ""
Local $sTempTime = ""
Local $sAM
Local $sPM
Local $iWday
Local $lngX
If Not _DateIsValid($sDate) Then
SetError(1)
Return ("")
EndIf
If $sType < 0 Or $sType > 5 Or Not IsInt($sType) Then
SetError(2)
Return ("")
EndIf
_DateTimeSplit($sDate, $asDatePart, $asTimePart)
Switch $sType
Case 0
$lngX = DllCall("kernel32.dll", "long", "GetLocaleInfo", "long", 0x400, "long", 0x1F, "str", "", "long", 255)
If Not @error And $lngX[0] <> 0 Then
$sTempDate = $lngX[3]
Else
$sTempDate = "M/d/yyyy"
EndIf
If $asTimePart[0] > 1 Then
$lngX = DllCall("kernel32.dll", "long", "GetLocaleInfo", "long", 0x400, "long", 0x1003, "str", "", "long", 255)
If Not @error And $lngX[0] <> 0 Then
$sTempTime = $lngX[3]
Else
$sTempTime = "h:mm:ss tt"
EndIf
EndIf
Case 1
$lngX = DllCall("kernel32.dll", "long", "GetLocaleInfo", "long", 0x400, "long", 0x20, "str", "", "long", 255)
If Not @error And $lngX[0] <> 0 Then
$sTempDate = $lngX[3]
Else
$sTempDate = "dddd, MMMM dd, yyyy"
EndIf
Case 2
$lngX = DllCall("kernel32.dll", "long", "GetLocaleInfo", "long", 0x400, "long", 0x1F, "str", "", "long", 255)
If Not @error And $lngX[0] <> 0 Then
$sTempDate = $lngX[3]
Else
$sTempDate = "M/d/yyyy"
EndIf
Case 3
If $asTimePart[0] > 1 Then
$lngX = DllCall("kernel32.dll", "long", "GetLocaleInfo", "long", 0x400, "long", 0x1003, "str", "", "long", 255)
If Not @error And $lngX[0] <> 0 Then
$sTempTime = $lngX[3]
Else
$sTempTime = "h:mm:ss tt"
EndIf
EndIf
Case 4
If $asTimePart[0] > 1 Then
$sTempTime = "hh:mm"
EndIf
Case 5
If $asTimePart[0] > 1 Then
$sTempTime = "hh:mm:ss"
EndIf
EndSwitch
If $sTempDate <> "" Then
$lngX = DllCall("kernel32.dll", "long", "GetLocaleInfo", "long", 0x400, "long", 0x1D, "str", "", "long", 255)
If Not @error And $lngX[0] <> 0 Then
$sTempTime = StringReplace($sTempTime, "/", $lngX[3])
EndIf
$iWday = _DateToDayOfWeek($asDatePart[1], $asDatePart[2], $asDatePart[3])
$asDatePart[3] = StringRight("0" & $asDatePart[3], 2)
$asDatePart[2] = StringRight("0" & $asDatePart[2], 2)
$sTempDate = StringReplace($sTempDate, "d", "@")
$sTempDate = StringReplace($sTempDate, "m", "#")
$sTempDate = StringReplace($sTempDate, "y", "&")
$sTempDate = StringReplace($sTempDate, "@@@@", _DateDayOfWeek($iWday, 0))
$sTempDate = StringReplace($sTempDate, "@@@", _DateDayOfWeek($iWday, 1))
$sTempDate = StringReplace($sTempDate, "@@", $asDatePart[3])
$sTempDate = StringReplace($sTempDate, "@", StringReplace(StringLeft($asDatePart[3], 1), "0", "") & StringRight($asDatePart[3], 1))
$sTempDate = StringReplace($sTempDate, "####", _DateMonthOfYear($asDatePart[2], 0))
$sTempDate = StringReplace($sTempDate, "###", _DateMonthOfYear($asDatePart[2], 1))
$sTempDate = StringReplace($sTempDate, "##", $asDatePart[2])
$sTempDate = StringReplace($sTempDate, "#", StringReplace(StringLeft($asDatePart[2], 1), "0", "") & StringRight($asDatePart[2], 1))
$sTempDate = StringReplace($sTempDate, "&&&&", $asDatePart[1])
$sTempDate = StringReplace($sTempDate, "&&", StringRight($asDatePart[1], 2))
EndIf
If $sTempTime <> "" Then
$lngX = DllCall("kernel32.dll", "long", "GetLocaleInfo", "long", 0x400, "long", 0x28, "str", "", "long", 255)
If Not @error And $lngX[0] <> 0 Then
$sAM = $lngX[3]
Else
$sAM = "AM"
EndIf
$lngX = DllCall("kernel32.dll", "long", "GetLocaleInfo", "long", 0x400, "long", 0x29, "str", "", "long", 255)
If Not @error And $lngX[0] <> 0 Then
$sPM = $lngX[3]
Else
$sPM = "PM"
EndIf
$lngX = DllCall("kernel32.dll", "long", "GetLocaleInfo", "long", 0x400, "long", 0x1E, "str", "", "long", 255)
If Not @error And $lngX[0] <> 0 Then
$sTempTime = StringReplace($sTempTime, ":", $lngX[3])
EndIf
If StringInStr($sTempTime, "tt") Then
If $asTimePart[1] < 12 Then
$sTempTime = StringReplace($sTempTime, "tt", $sAM)
If $asTimePart[1] = 0 Then $asTimePart[1] = 12
Else
$sTempTime = StringReplace($sTempTime, "tt", $sPM)
If $asTimePart[1] > 12 Then $asTimePart[1] = $asTimePart[1] - 12
EndIf
EndIf
$asTimePart[1] = StringRight("0" & $asTimePart[1], 2)
$asTimePart[2] = StringRight("0" & $asTimePart[2], 2)
$asTimePart[3] = StringRight("0" & $asTimePart[3], 2)
$sTempTime = StringReplace($sTempTime, "hh", StringFormat( "%02d", $asTimePart[1]))
$sTempTime = StringReplace($sTempTime, "h", StringReplace(StringLeft($asTimePart[1], 1), "0", "") & StringRight($asTimePart[1], 1))
$sTempTime = StringReplace($sTempTime, "mm", StringFormat( "%02d", $asTimePart[2]))
$sTempTime = StringReplace($sTempTime, "ss", StringFormat( "%02d", $asTimePart[3]))
$sTempDate = StringStripWS($sTempDate & " " & $sTempTime, 3)
EndIf
Return ($sTempDate)
EndFunc
Alles anzeigen
mfg
trallala