Zeit bis...

  • Hallo!

    Ich versuche gerade mir ein Programm zu erstellen, dass mir einen Countdown anzeigt, bis es 10/12/14/16 usw.. Uhr ist. Wie geht das? Ich wollte das ganze in eine Schleife setzen,
    die überprüft, welche Uhrzeit gerade ist, den Unterschied errechnen und dann 2 Label mit GuiCtrlSetState auf die verbleibenden Stunden/Minuten zu setzen.

    Wie stelle ich das an?

  • würdest Du für Deine Frage die Suche benutzen
    wäre Deine Frage in 1 Minute geklärt gewesen, ohne jemanden damit zu beschäftigen.

    Soll heißen:
    1. - für ein Problem verwende zuerst die Hilfe und deren Beispiele.
    2. - versuche über die Suchfunktion in AutoIt oder über Google eine Antwort zu finden
    3. - stelle jetzt erst eine Frage im Forum

    nichts ist nervender, als für andere zu suchen was schon lange erfunden wurde ...

    http://www.autoit.de/index.php?form=Search&searchID=758837&highlight=countdown

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • Dann wäre es angemessen, mir zumindest einen funktionierenden Link zu geben. Nebenbei, die SuFu hab ich benutzt und nach mehrmaligen Versuchen nichts gefunden.

    Edit: misterspeed war schneller xP

  • misterspeed, das hab ich nicht bedacht. Danke.

    @Sakurion, ich finde etwas dreist, wenn Du daruaf hingewiesen wirst unsere Zeit zu verschwenden, weil du selber zu faul bist
    dann auch noch zu "fordern" ich hätte Dir einen funktionierenden Link zu liefern.

    Hier der Link: http://www.autoit.de/index.php?page=Thread&threadID=27228&highlight=countdown

    es war das erste Ergebnis in der SuFu bei der Eingabe des Wortes Countdown,

    Sorry, aber dafür habe ich nur wenig Verständnis.

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • Hier wäre zum Beispiel ein Script zufinden welches eine Uhr in einer GUI anzeigt. Leicht modifiziert kann man daraus auch einen Timer machen, der eben die Differenz von Zielzeit und aktueller Zeit anzeigt.

    https://autoit.de/index.php?page…zeit#post173113

    EDIT:

    Suchbegriff war übrigens "Uhrzeit" im Forum "Hilfe und Unterstützung". Beim Woltlab Forum muss man auch darauf achten wo man sich gerade befindet. Gibst du hier im Thread etwas ins Suchfeld ein wird auch nur dieser Thread durchsucht, nicht das ganze Forum.

  • Nun, ich glaube ich habe mich am Anfang etwas unklar ausgedrückt, ich wollte eigentlich was anderes wissen, aber ist auch egal. Ich habe nicht Countdown in die SuFu eingegeben, da es ja kein richtiger Countdown ist, den ich haben will.

    Trotzdem danke an misterspeed, ich such mal in nem anderen Forum Hilfe, da einige (wie z.B. Schnuffel) sich wegen unprofessionalität sehr unfreundlich verhalten.

    Edit: Wie kann man hier sein Profil löschen?

  • Zitat

    Nun, ich glaube ich habe mich am Anfang etwas unklar ausgedrückt,


    Und weil wir dir dann ein Ergebnis liefern, welches unserer Meinung nach exakt deinen Vorstellungen entspricht, bist du beleidigt und suchst dir ein anderes Forum? Ich glaube nicht, dass du ein verständnisvolleres deutsches AutoIt Forum finden wirst...

    Zitat

    da einige (wie z.B. Schnuffel) sich wegen unprofessionalität sehr unfreundlich verhalten.


    Wenn er dich falsch verstanden hat dann kannst du das sagen und außerdem hast du ja bereits gesagt, dass du dich wahrscheinlich unklar ausgedrückt hast. Es haben nämlich schon mindestens 3 Leute gedacht, das du ein Countdown-Script wie es Schnuffel und misterspeed gepostet haben suchst.

  • no comment :D

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)


  • Edit: Wie kann man hier sein Profil löschen?

    Man kann sich auch künstlich aufregen. Schnuffel hatte nicht unrecht, dass deine Frage und ähnliche Probleme hier schon unzählige Male behandelt wurden und relativ schnell über die Suchfunktion aufzufinden sind. Vielleicht hat er dir das nicht auf die netteste Art und Weise mitgeteillt, dennoch kein Grund sofort Beleidigt das Weite zu suchen.

  • jetzt gibt es doch noch einen Kommentar:
    zu deinem Thread und meinem Verständnis dazu...

    Zitat

    Ich versuche gerade mir ein Programm zu erstellen, dass mir einen Countdown anzeigt, bis es 10/12/14/16 usw.. Uhr ist. Wie geht das?


    du schreibst zuerst, dass Du ein Programm schreibst... (wo ist das bisherige Script?)
    dann fragst Du wie das geht ... hmmm ...

    Zitat

    Ich wollte das ganze in eine Schleife setzen,
    die überprüft, welche Uhrzeit gerade ist, den Unterschied errechnen und dann 2 Label mit GuiCtrlSetState auf die verbleibenden Stunden/Minuten zu setzen.


    Du wirfst mit dem Begriff der "Schleife" um Dich, um zu suggerieren dass Du Dir echt viele Gedanken gemacht hast und ja eigentlich ein Profi bist ;)
    Erwähnst fasst nebenbei so Begriffe wie GuiCtrlSetState und Co. aber Dein Gedankengut behälst Du für Dich.

    Als ich Dir nahegelegt habe die Suche zu benutzen erwartest Du von mir einen funktionierenden Link, der Dir die Lösung präsentiert.
    Entschuldige, aber da kann ich dann richtig sauer werden.

    Zu Guter Letzt bist Du beleidigt und willst uns wieder verlassen, wobei Du es nicht lassen kannst auch noch auf mich zu schimpfen und mir die Schuld dafür zuschiebst.
    Nur weil Du Deine Lösung nicht auf so einfache Weise bekommen hast.
    Wenn Deine Einstellung zum Erlangen von Wissen nur darauf basiert, es sich von Anderen liefern zu lassen, dann bist Du ganz sicher falsch hier,
    oder ich muss meine Einstellung überdenken.

    Vielleicht bin ich ja überholt und Werte wie "seine Freizeit opfern um anderen zu helfen" sind nicht mehr up to date.
    Vielleicht haben wir uns aber auch nur auf dem falschen Fuß getroffen.

    Zitat von misterspeed

    Vielleicht hat er dir das nicht auf die netteste Art und Weise mitgeteillt,


    mag sein.
    Ich bin auch nur ein Mensch.
    Aber wer sich hier anmeldet und im ersten Post sich unklar ausdrückt und dann einen Willi macht -- da habe ich kein Mitleid.

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • Tut mir Leid, ich war eben schon ein bisschen genervt, hab wohl ein bisschen überreagiert. Vielleicht können wir das einfach vergessen.

    Neuer Versuch:

    Ich habs mit dem Countdown schon ein bisschen selbst angefangen, aber seht es euch einfach an:

    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

    [/autoit][autoit][/autoit][autoit]

    ;Countdown Fenster
    $Form1 = GUICreate("IC Remember", 202, 138, 192, 124)
    $Label1 = GUICtrlCreateLabel("1", 24, 8, 25, 52)
    GUICtrlSetFont(-1, 30, 400, 0, "MS Sans Serif") $Label2 = GUICtrlCreateLabel("h", 40, 8, 25, 52)
    GUICtrlSetFont(-1, 30, 400, 0, "MS Sans Serif") $Label3 = GUICtrlCreateLabel("59", 64, 8, 46, 52)
    GUICtrlSetFont(-1, 30, 400, 0, "MS Sans Serif") $Label4 = GUICtrlCreateLabel("min", 112, 8, 67, 52)
    GUICtrlSetFont(-1, 30, 400, 0, "MS Sans Serif") $Label5 = GUICtrlCreateLabel("Bis zum Nächsten IC", 16, 64, 177, 28)
    GUICtrlSetFont(-1, 15, 400, 0, "MS Sans Serif") $Button1 = GUICtrlCreateButton("Einstellungen", 24, 96, 155, 33)
    GUISetState(@SW_SHOW)
    ;Einstellungen
    $Form2 = GUICreate("Einstellungen", 200, 147, 205, 137)
    $Checkbox1 = GUICtrlCreateCheckbox("Erinnern", 8, 8, 65, 17)
    $Input1 = GUICtrlCreateInput("5", 72, 8, 25, 21)
    $Label6 = GUICtrlCreateLabel("Minute/n vor IC", 104, 8, 78, 17)
    $Checkbox2 = GUICtrlCreateCheckbox("Erinnern", 8, 32, 65, 17)
    $Label7 = GUICtrlCreateLabel("Minute/n vor IC", 104, 32, 78, 17)
    $Input2 = GUICtrlCreateInput("1", 72, 32, 25, 21)
    $Label8 = GUICtrlCreateLabel("Erinnerung für die Bossrunde:", 8, 56, 143, 17)
    $Checkbox3 = GUICtrlCreateCheckbox("Erinnern", 8, 80, 65, 17)
    $Input3 = GUICtrlCreateInput("10", 72, 80, 25, 21)
    $Label9 = GUICtrlCreateLabel("Minute/n nach IC", 104, 80, 87, 17)
    $Button2 = GUICtrlCreateButton("Speichern", 56, 112, 75, 25)
    While 1 $nMsg = GUIGetMsg(1) Switch $nMsg[0] Case $GUI_EVENT_CLOSE Switch $nMsg[1] Case $Form1 Exit Case Else GUISetState(@SW_SHOW,$Form1) GUISetState(@SW_HIDE,$nMsg[1]) GUISwitch($Form1) EndSwitch Case $Button1 GUISetState(@SW_SHOW,$Form2) GUISetState(@SW_HIDE,$Form1) GUISwitch($Form2) Case $Button2 GUISetState(@SW_SHOW,$Form1) GUISetState(@SW_HIDE,$Form2) GUISwitch($Form1) EndSwitch ;Wann ist der nächste gerade Stunde If @HOUR >= 0 and @MIN > 0 Then $nIC = 2 EndIf If @HOUR >= 2 and @MIN > 0 Then $nIC = 4 EndIf If @HOUR >= 4 and @Min > 0 Then $nIC = 6 EndIf If @HOUR >= 6 and @Min > 0 Then $nIC = 8 EndIf If @HOUR >= 8 and @Min > 0 Then $nIC = 10 EndIf If @HOUR >= 10 and @Min > 0 Then $nIC = 12 EndIf If @HOUR >= 12 and @Min > 0 Then $nIC = 14 EndIf If @HOUR >= 14 and @Min > 0 Then $nIC = 16 EndIf If @HOUR >= 16 and @Min > 0 Then $nIC = 18 EndIf If @HOUR >= 18 and @Min > 0 Then $nIC = 20 EndIf If @HOUR >= 20 and @Min > 0 Then $nIC = 22 EndIf If @HOUR >= 22 and @Min > 0 Then $nIC = 24 EndIf $Hour = $nIC - @HOUR $Min = 60 - @MIN GUICtrlSetState ($Label1 , $Hour) GUICtrlSetState ($Label3 , $Min) WEnd

    [/autoit]


    Habs dann mal getestet, und er zeigt mir in meinem Countdown Fenster (Form 1) immer 1 Stunde an und nichts in der Minuten Anzeige oO.
    Irgentwie kann das ganze auch nicht funktionieren, da ich die Stunden und Minuten vollkommen unabhängig voneinander abtesten lasse.
    Wie geht das besser, dass er mir den Countdown bis zur nächsten geraden Stunde anzeigt?

    Edit: Irgentwie klappt das mit dem Script einfügen nicht so richtig oO was ist da los?

    5 Mal editiert, zuletzt von Sakurion (26. Juni 2011 um 22:56)

  • Zitat

    Vielleicht können wir das einfach vergessen.

    schon vergessen ;)

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • Ich krieg das mit dem Code da einfügen nicht hin, da sind immer die ganzen Absätze raus -.-

    Edit: Mittlerweile ist nur noch die While-Schleife betroffen xD

    Einmal editiert, zuletzt von Sakurion (26. Juni 2011 um 22:57)

  • Versuchs mit einem anderen Browser, oder kontrolliere ob Javascript aktiviert/zugelassen ist.
    So wie es jetzt ist ist es mir ehrlich gesagt zu mühsam das anzuschaun.

  • mal als einfaches Beispiel ...

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <Date.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $t_hour = ''
    $t_day = ''
    $Form1 = GUICreate("IC Remember", 202, 138, 192, 124)
    $Label1 = GUICtrlCreateLabel("0", 24, 8, 25, 52)
    GUICtrlSetFont(-1, 30, 400, 0, "MS Sans Serif")
    $Label2 = GUICtrlCreateLabel(" h", 40, 8, 30, 52)
    GUICtrlSetFont(-1, 30, 400, 0, "MS Sans Serif")
    $Label3 = GUICtrlCreateLabel("0", 70, 8, 46, 52)
    GUICtrlSetFont(-1, 30, 400, 0, "MS Sans Serif")
    $Label4 = GUICtrlCreateLabel( "min", 122, 8, 67, 52)
    GUICtrlSetFont(-1, 30, 400, 0, "MS Sans Serif")
    $Label5 = GUICtrlCreateLabel("Bis zum Nächsten IC", 16, 64, 177, 28)
    GUICtrlSetFont(-1, 15, 400, 0, "MS Sans Serif")
    $Button1 = GUICtrlCreateButton("Einstellungen", 24, 96, 155, 33)
    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit]

    $Form2 = GUICreate("Einstellungen", 200, 147, 205, 137)
    $Checkbox1 = GUICtrlCreateCheckbox("Erinnern", 8, 8, 65, 17)
    $Input1 = GUICtrlCreateInput("5", 72, 8, 25, 21)
    $Label6 = GUICtrlCreateLabel("Minute/n vor IC", 104, 8, 78, 17)
    $Checkbox2 = GUICtrlCreateCheckbox("Erinnern", 8, 32, 65, 17)
    $Label7 = GUICtrlCreateLabel("Minute/n vor IC", 104, 32, 78, 17)
    $Input2 = GUICtrlCreateInput("1", 72, 32, 25, 21)
    $Label8 = GUICtrlCreateLabel("Erinnerung für die Bossrunde:", 8, 56, 143, 17)
    $Checkbox3 = GUICtrlCreateCheckbox("Erinnern", 8, 80, 65, 17)
    $Input3 = GUICtrlCreateInput("10", 72, 80, 25, 21)
    $Label9 = GUICtrlCreateLabel("Minute/n nach IC", 104, 80, 87, 17)
    $Button2 = GUICtrlCreateButton("Speichern", 56, 112, 75, 25)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    _TimerDiffShow()
    AdlibRegister('_TimerDiffShow', 1000)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg(1)
    Switch $nMsg[0]
    Case $GUI_EVENT_CLOSE
    Switch $nMsg[1]
    Case $Form1
    Exit
    Case Else
    GUISetState(@SW_SHOW, $Form1)
    GUISetState(@SW_HIDE, $nMsg[1])
    GUISwitch($Form1)
    EndSwitch
    Case $Button1
    GUISetState(@SW_SHOW, $Form2)
    GUISetState(@SW_HIDE, $Form1)
    GUISwitch($Form2)
    Case $Button2
    GUISetState(@SW_SHOW, $Form1)
    GUISetState(@SW_HIDE, $Form2)
    GUISwitch($Form1)
    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _TimerDiffShow()
    $t_day = @MDAY
    $t_hour = Mod(1+Mod(@Hour,2),2)
    If $t_hour >= 24 Then
    $t_hour = $t_hour - 24
    EndIf
    If GUICtrlRead($Label1) <> $t_hour Then GUICtrlSetData($Label1, $t_hour)
    If GUICtrlRead($Label3) <> 60 - @MIN Then GUICtrlSetData($Label3, 60 - @MIN)
    EndFunc

    [/autoit]

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • Hi

    Ohne Schnuffels Lösung nun angeschaut zu haben, hier dein Hauptfehler warum sich da nix getan hat:

    [autoit]


    $Hour = $nIC - @HOUR
    $Min = 60 - @MIN
    GUICtrlSetData ($Label1 , $Hour) ; hier hattest du setstate statt setdata verwendet
    GUICtrlSetData ($Label3 , $Min) ; hier hattest du setstate statt setdata verwendet

    [/autoit]

    Neben diesem Fehler gibt es aber noch weitere, so ist zum Beispiel eine Variable nicht deklariert wenn man gerade zufällig 00:00 hat wie es bei mir gerade der Fall war. Auch flackern deine Labels und die Zeitangabe kommt irgendwo nicht hin.
    Wenn du morgen noch Hilfe brauchen solltest und nicht selbst eine bessere Lösung gefunden hast, bzw. dich von Schnuffel hast inspirieren lassen schau ich mir das nochmal genauer an.

    EDIT: Schnuffels Lösung per adlib Register ist in jedem Falle vorzuziehen.

    Einmal editiert, zuletzt von misterspeed (27. Juni 2011 um 00:17)

  • misterspeed
    Danke, ist mir vorher nicht aufgefallen xD

    Schnuffel
    WoW, funktioniert super (hätte ich so nicht hinbekommen oO)! Jetzt muss ich nurnoch da durchblicken,
    wie das ganze funktioniert xD


    Edit: Ich bin soweit mit dem Script durch, nur irgentwie klappt die Benachrichtigungsfunktion nicht so richtig. Könntet ihr euch das nochmal anschauen?
    (Script hier und die Konfigurations-Datei hier )

    Einmal editiert, zuletzt von Sakurion (27. Juni 2011 um 12:17)