Zeit - Formatierung

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

gero
Posts: 173
Joined: 02 Oct 2013, 05:36

Zeit - Formatierung

30 Apr 2023, 06:59

Ich mal wieder an die Wissenden.
Ich habe eine Zeitformat z.B.: 04:02:50 und brauche die Sekunden.
Ich habe es so gemacht wie unten, vermute aber, dass AHK da etwas Internes hat.
Ist das hier doof oder gibts da was Besseres ?

Danke schon mal vorab für's lesen

gruss
gero

Code: Select all

DURATION:="04:02:50"
MsgBox,4096,Info,% give_sec(DURATION) . " sec"

give_sec(x){
StringSplit,t,x,:
sec:= t1*3600 + t2*60 + t3
return sec
}
Last edited by gero on 30 Apr 2023, 10:00, edited 1 time in total.
garry
Posts: 3795
Joined: 22 Dec 2013, 12:50

Re: Zeit - Formatierung

30 Apr 2023, 09:21

habe auch mal genauso gemacht ( hier lediglich strsplit )

Code: Select all

x:="04:02:50",t:=StrSplit(x,":")
sec:= t[1]*3600 + t[2]*60 + t[3]
msgbox,SEC=%sec%
gero
Posts: 173
Joined: 02 Oct 2013, 05:36

Re: Zeit - Formatierung

30 Apr 2023, 09:43

Ich schliesse daraus, dass es keine AHK-interne, fertige Formatierung gibt ... ?

gruss
gero
garry
Posts: 3795
Joined: 22 Dec 2013, 12:50

Re: Zeit - Formatierung

30 Apr 2023, 09:51

... nein , vielleicht doch , ich kann es nicht behaupten ... oder auch eine andere Lösung
Rohwedder
Posts: 7774
Joined: 04 Jun 2014, 08:33
Location: Germany

Re: Zeit - Formatierung

04 May 2023, 07:18

Hallo,
z.B:

Code: Select all

DURATION:="04:02:50"
MsgBox,4096,Info,% give_sec(DURATION) . " sec"

give_sec(x){
Static s = 21111111
x := s StrReplace(x, ":")
x -= s 000000, s
Return, x
}
gero
Posts: 173
Joined: 02 Oct 2013, 05:36

Re: Zeit - Formatierung

04 May 2023, 08:04

Ich sag's ja immer wieder > viele Wege ... und man trifft sich in Rom.
Danke Rohwedder > das kommt imho einer AHK-Interna schon sehr nahe.
Hättest du Zeit und Lust den Code bissl zu erläutern ... insbesondere die Zeile: "Static s = 21111111" ... wo kommt das her ?

Herzlicher Gruss
gero
Rohwedder
Posts: 7774
Joined: 04 Jun 2014, 08:33
Location: Germany

Re: Zeit - Formatierung

04 May 2023, 08:49

Wollte es scherzhalber möglichst kryptisch machen. Meine ursprüngliche Version war:

Code: Select all

DURATION:="04:02:50"
MsgBox,4096,Info,% give_sec(DURATION) . " sec"

give_sec(x){
StringSplit, s,% 19.E7//9 ,.
x := s1 StrReplace(x, ":")
x -= s1 s2, s
Return, x
}
aber dies war mir dann doch zu gemein. Daher die veröffentliche Version.
Scherz beiseite, 21111111 ist der YYYYMMDD Zeitstempel für das Datum 11.11.2111
https://ahkde.github.io/docs/v1/lib/FormatTime.htm.
Dazu addiere ich Stunden, Minuten und Sekunden deiner Zeitspanne (ohne die störenden Doppelpunkte),
und bekomme 2111111040250.
Davon ziehe ich mit der Kurzform von EnvSub den Anfang denselben Tages ab
d.h. 21111111000000, und bekomme die Zeitdifferenz in Sekunden.
https://ahkde.github.io/docs/v1/lib/EnvSub.htm
(Statt 21111111 hätte ich natürlich auch den heutigen Tag 20230504 nehmen können).
gero
Posts: 173
Joined: 02 Oct 2013, 05:36

Re: Zeit - Formatierung

04 May 2023, 09:20

Danke für die schnelle Erläuterung und den (sicher schnellsten und minimalistischsten) Code für das Problem.
Saltos, Purzelbäume + Nebelkerzen ... :D :D :D
Hält Einzug in meine Sammlung.

Nochmals dickes Danke
gero

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: No registered users and 49 guests