Zeitvergleich

  • Guten Abend Zusammen,


    wie kann ich 2 Zeiten miteinander vergleichen?

    Ich habe eine Var mit der Zeit aus einer TXT im format 11.03.2010 20:05

    und eine Var mit der Aktuellen Zeit $time = @MDAY&"."[url=''http://www.autoit.de/'mailto:&@MON&'']&@MON&"."&@YEAR[/url]&" "[url=''http://www.autoit.de/'mailto:&@Hour&'']&@Hour&":"&@MIN[/url].

    Jetzt will ich beide Zeit vergleichen mit einer If funkton.

    Wenn die Zeit aus der TXT größer ist, soll zu spät erscheinen und wenn sie kleiner ist soll "noch in der Zeit" erscheinen. Zusätzlich will wenn die Differenz kleiner 45 min ist " Beeilung" angezeigt bekommen.


    Hat wer eine Idee?

    Einmal editiert, zuletzt von billemg (10. April 2010 um 23:59)

  • schau Dir mal die Funktion _DateDiff an.

    Damit solltest Du Dein Problem lösen können.
    Musst halt Deinen String für die Funktion entsprechend formatieren...

    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. ;)

  • Danke für den Tipp.

    Aber wie bekomme ich die Zeit in das richtige Format umgewandelt?

  • Beispiel:

    Spoiler anzeigen
    [autoit]

    Global $Time = "11.03.2010 20:05"
    $Time = StringMid($Time, 7, 4) & '/' & StringMid($Time, 4, 2) & '/' & StringLeft($Time, 2) & ' ' & StringRight($Time, 5) & ':00'
    MsgBox(0,"Neues Zeitformat", $Time)

    [/autoit]
  • splitte deinen txt-string doch auf in ein array und vergleiche dann das entsprechende element mit dem entsprechenden zeitmacro. so in etwa:

    [autoit]

    $txtstring = "11.03.2010 20:05"
    $txtstring = StringSplit ( $txtstring, ". :")
    ;$txtstring[1] = 11
    ;$txtstring[2] = 03
    ;$txtstring[3] = 2010
    ;$txtstring[4] = 20
    ;$txtstring[5] = 05

    [/autoit]
  • Jetzt muss ich meinen Vorschlag auch noch loswerden. :D

    Spoiler anzeigen
    [autoit]

    #include <Date.au3>

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

    $aDate = StringSplit("11.03.2010 20:05", " ", 2)
    $aYYYYMMDD = StringSplit($aDate[0], ".", 2)
    $Date = $aYYYYMMDD[2] & "/" & $aYYYYMMDD[1] & "/" & $aYYYYMMDD[0] & " " & $aDate[1] & ":00"

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

    MsgBox(0, "Datum im Format YYYY/MM/DD", $Date)
    MsgBox(0, "Differenz in Tagen", _DateDiff("D", $Date, _NowCalc()))

    [/autoit]
  • na dann ich auch noch ...

    [autoit]

    #Include <Date.au3>
    Local $string = "11.04.2010 20:05"
    $a = StringSplit($string,". :")
    $date_formatted = StringFormat("%s/%s/%s %s:%s:00",$a[3],$a[2],$a[1],$a[4],$a[5])
    MsgBox(0, 'Differenz', "Die Differenz beträgt: " & _DateDiff("n", $date_formatted, _NowCalcDate()&" "&_NowTime()) & " Minuten")

    [/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. ;)