Mit Zeit rechnen im Format hh:mm:ss,sec

Post a reply


In an effort to prevent automatic submissions, we require that you complete the following challenge.
Smilies
:D :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :| :mrgreen: :geek: :ugeek: :arrow: :angel: :clap: :crazy: :eh: :lolno: :problem: :shh: :shifty: :sick: :silent: :think: :thumbup: :thumbdown: :salute: :wave: :wtf: :yawn: :facepalm: :bravo: :dance: :beard: :morebeard: :xmas: :HeHe: :trollface: :cookie: :rainbow: :monkeysee: :monkeysay: :happybday: :headwall: :offtopic: :superhappy: :terms: :beer:
View more smilies

BBCode is ON
[img] is OFF
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Mit Zeit rechnen im Format hh:mm:ss,sec

Re: Mit Zeit rechnen im Format hh:mm:ss,sec

Post by festigrat » 23 Apr 2018, 04:00

Moin,

danke für die Antwort. Stimmt, die Zeit war natürlich in einem falschen Format. Diese Zeit wird ja später aus einer Liste ausgelesen und dann stimmt sie ja auf jeden Fall. Ich werde mir die Skripte genau anschauen und hoffentlich verstehe ich sie dann bald. Vielen Dank für die Unterstützung!

Re: Mit Zeit rechnen im Format hh:mm:ss,sec

Post by just me » 21 Apr 2018, 03:35

Moin,

Du kannst auch die AHK Kommandos für Datum und Zeit nutzen. Ich hatte damit allerdings ein Problem, bis mir aufgefallen ist, dass das 23:45:67,890 in dem von Dir gewählten Beispiel ungültig ist.

Code: Select all

Start := "12:34:48,889"
Ende  := "23:45:59,890"

Minuend := ConvertToMilliseconds(Ende)
Subtrahend := ConvertToMilliseconds(Start)
Differenz := Minuend - Subtrahend
MsgBox % ConvertToHHMMSSMS(Differenz)

ConvertToMilliseconds(HHMMSSMS)
{
   Sekunden := A_YYYY . "0101" . StrReplace(SubStr(HHMMSSMS, 1, 8), ":")
   Sekunden -= A_YYYY, S
   Return (Sekunden * 1000) + SubStr(HHMMSSMS, 10)
}

ConvertToHHMMSSMS(Millisekunden)
{
   Zeitstempel := A_YYYY ; nur der Deutlichkeit halber, AHK rechnet auch mit leeren Variablen
   Zeitstempel += % (Millisekunden // 1000), S
   FormatTime, HHMMSS, %Zeitstempel%, HH:mm:ss
   Return (HHMMSS . Format(",{:03}", Mod(Millisekunden, 1000)))
}
Voraussetzungen, damit das funktioniert:
  • Start und Ende müssen gültige Zeitangaben enthalten.
  • Ende muss 'später' sein als Start.
  • Start und Ende müssen im selben Tag liegen.

Re: Mit Zeit rechnen im Format hh:mm:ss,sec

Post by festigrat » 20 Apr 2018, 15:28

Hallo Ragnar,

wow, ich bin beeindruckt. Das Skript hat auf Anhieb geklappt! Ich versuche es nun zu verstehen. Ich bin mit dieser Art, dass die Variable oder in diesem Fall die Zeit in einer Klammer steht, noch nicht sehr vertraut. Ich hoffe mal, dass ich es irgendwann raffe. Ich hatte viel mit FormatTime experimentiert, aber es hat hinten und vorne nicht geklappt.
Jedenfalls war dies der letzte Baustein zu meinem ganzen Skript. Nun kann ich es fertigstellen.
Vielen Dank für die Unterstützung! :-)

Re: Mit Zeit rechnen im Format hh:mm:ss,sec

Post by Ragnar » 20 Apr 2018, 04:17

Hat länger gedauert als erwartet :facepalm:, aber hier:

Code: Select all

Minuend := ConvertToMilliseconds("23:45:67,890")
Subtrahend := ConvertToMilliseconds("12:34:56,889")
Differenz := Minuend - Subtrahend
MsgBox % ConvertToHHMMSSMS(Differenz)

ConvertToMilliseconds(HHMMSSMS)
{
    HH := SubStr(HHMMSSMS, 1, 2) * 1000 * 3600
    MM := SubStr(HHMMSSMS, 4, 2) * 1000 * 60
    SS := SubStr(HHMMSSMS, 7, 2) * 1000
    MS := SubStr(HHMMSSMS, 10)
    return HH + MM + SS + MS
}

ConvertToHHMMSSMS(Milliseconds)
{
    HH := Milliseconds // 3600000
    remain := Mod(Milliseconds, 3600000)
    MM := remain // 60000
    remain := Mod(remain, 60000)
    SS := remain // 1000
    remain := Mod(remain, 1000)
    MS := Mod(remain, 1000)
    return Format("{:02}:{:02}:{:02},{:03}", HH, MM, SS, MS)
}

Re: Mit Zeit rechnen im Format hh:mm:ss,sec

Post by festigrat » 19 Apr 2018, 11:53

Sorry, das war nicht meine Absicht. Leider kann ich meine Frage hier nicht löschen. Soll ich die Frage nochmal im richtigen Forum stellen?

Re: Mit Zeit rechnen im Format hh:mm:ss,sec

Post by just me » 19 Apr 2018, 11:43

Weil das eine eindeutige Bitte um Unterstützung ist, das Hilfeforum.

Re: Mit Zeit rechnen im Format hh:mm:ss,sec

Post by festigrat » 19 Apr 2018, 11:23

Moin, habe ich gerade zeitgleich mit Deiner Bitte gemacht. Ich musste mich erst einmal damit auseinandersetzen und die Lösungsansätze ausprobieren. In welchem Forum wäre ich denn richtig?

Re: Mit Zeit rechnen im Format hh:mm:ss,sec

Post by just me » 19 Apr 2018, 11:18

Moin,

es wäre nett, wenn Du Rückmeldungen zu Deinen offenen Beiträgen gibst, wenn Du sowieso dabei bist, einen neuen Beitrag einzustellen. Die Supporter wissen dann, ob es sich noch lohnt, sich weiter Gedanken zu machen.

Außerdem bist Du im falschen Forum gelandet.

Mit Zeit rechnen im Format hh:mm:ss,sec

Post by festigrat » 19 Apr 2018, 08:43

Hallo Leute,

ich kriege einfach folgende einfache Aufgabe leider nicht hin und würde mich sehr über Hilfe freuen. Ich will Zeit subtrahieren und zwar im Format hh:mm:ss,msec (Das Komma steht absichtlich vor msec)

Ich würde dann beispielsweise in einerInputBox 12:34:56,789 eingeben und diese soll dann von 23:45:67,890 abgezogen werden.

Hat jemand eine Idee?

Liebe Grüße.

Top