Du bist nicht angemeldet.

Kontrollzentrum

Adsense

Spenden

Jeder Euro hilft uns, euch zu helfen.

Bei Überweisungen bitte per PN die Daten erfragen.

Downloads

Lieber Besucher, herzlich willkommen bei: AutoIt.de - Das deutsche AutoIt-Forum. Falls dies dein erster Besuch auf dieser Seite ist, lies bitte die Hilfe durch. Dort wird dir die Bedienung dieser Seite näher erläutert. Darüber hinaus solltest du dich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutze das Registrierungsformular, um dich zu registrieren oder informiere dich ausführlich über den Registrierungsvorgang. Falls du dich bereits zu einem früheren Zeitpunkt registriert hast, kannst du dich hier anmelden.

  • »TheLuBu« ist der Autor dieses Themas

Registrierungsdatum: 12. Mai 2009

Wohnort: Mönchengladbach

Beruf: Student / Azubi

  • Private Nachricht senden

1

Dienstag, 27. Dezember 2011, 10:04

Milisekunden in Uhrzeit umwandeln

Ich habe eine Funktion gebraucht, die Millisekunden in ein lesbareres Format umwandelt, herrausgekommen ist diese Funktion.
Vielleicht kann sie ja jemand gebrauchen

  Spoiler Spoiler

AutoIt-Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
; #FUNCTION#
;===============================================================================
;
; Name...........: _MStoTimeformat
; Description ...: Wandelt Millisekunden in das Format HH:MM:SS um
; Syntax.........: _MStoTimeformat($MStTf_MS)
; Parameters ....: $MStTf_MS - Zeit in Millisekunden (z.B vom TimerDiff() zurückgegeben
; Return values .: Success - Gibt die Millisekunden im Format HH:MM:SS zurück
;                  Failure - Returns 0 and Sets @Error:
;                  |1 - $MStTf_MS ist keine Zahl
; Author ........: TheLuBu (LuBu@veytal.com)
; Modified.......:
; Remarks .......:
; Related .......:
; Link ..........;
;
;==========================================================================================
Func _MStoTimeformat($MStTf_MS)
    If not IsNumber($MStTf_MS) Then Return SetError(1,0,0)
    Local $MStTf_vorzeichen = "", $MStTf_Endzeit, $MStTf_Stunden, $MStTf_Minuten, $MStTf_Sekunden, $MStTf_sret
    If $MStTf_MS < 0 Then
        $MStTf_MS = Abs($MStTf_MS)
        $MStTf_vorzeichen = "-"
    EndIf
    $MStTf_Endzeit = $MStTf_MS / 1000
    $MStTf_Stunden = $MStTf_Endzeit / 3600
    $MStTf_Stunden = Int($MStTf_Stunden)
    $MStTf_Minuten = (($MStTf_Endzeit / 60) - ($MStTf_Stunden * 60))
    $MStTf_Minuten = Int($MStTf_Minuten)
    $MStTf_Sekunden = ($MStTf_Endzeit - ($MStTf_Minuten * 60) - ($MStTf_Stunden * 3600))
    $MStTf_Sekunden = Int($MStTf_Sekunden)
    If $MStTf_Stunden < 10 Then $MStTf_Stunden = "0" & $MStTf_Stunden
    If $MStTf_Minuten < 10 Then $MStTf_Minuten = "0" & $MStTf_Minuten
    If $MStTf_Sekunden < 10 Then $MStTf_Sekunden = "0" & $MStTf_Sekunden
    $MStTf_sret = $MStTf_vorzeichen & $MStTf_Stunden & ":" & $MStTf_Minuten & ":" & $MStTf_Sekunden
    Return $MStTf_sret
EndFunc   ;==>MStoTimeformat
MfG TheLuBu
_________________________________________________________________

Meine Scripte

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »TheLuBu« (27. Dezember 2011, 10:10)


Registrierungsdatum: 8. Mai 2011

Wohnort: Bayern

Beruf: CNC-Fräser

  • Private Nachricht senden

2

Dienstag, 27. Dezember 2011, 12:22

Gibt's dafür net _TicksToTime ?

Registrierungsdatum: 19. Mai 2006

  • Private Nachricht senden

3

Dienstag, 27. Dezember 2011, 13:31

Ticks != Millisekunden.
Tick = Takt eines Prozessors

Registrierungsdatum: 8. Mai 2011

Wohnort: Bayern

Beruf: CNC-Fräser

  • Private Nachricht senden

4

Dienstag, 27. Dezember 2011, 14:05

Ticks != Millisekunden.
Tick = Takt eines Prozessors


Was willst du uns damit sagen?

Das Beispiel der Hilfe von _TicksToTime() verwendet TimerDiff() um die Funktionsweise zu demonstrieren und wenn ich mal TheLuBu zitieren darf:

Zitat

; Parameters ....: $MStTf_MS - Zeit in Millisekunden (z.B vom TimerDiff() zurückgegeben)

Registrierungsdatum: 19. Mai 2006

  • Private Nachricht senden

5

Dienstag, 27. Dezember 2011, 14:12

Entschuldige - du hast Recht.
Die Bezeichnung war für mich missverständlich da im Normalfall durchaus die Anzahl der vergangenen Prozessortakte verwendet werden um die Zeiten in Rechnern zu messen.
Diese müssen noch in ein uns vertrautes Zahlenformat gewandelt werden.
Diese Aufgabe erfüllt dann eine entsprechende Ticks2Time Funktion (wird über die Taktrate berechnet).
Der Autor der Funktion _TicksToTime() wandelt aber gar keine Ticks sondern, wie ich durch dich nun weiß, Millisekunden.

Da hätte ich vorher nachschauen sollen - sorry

Registrierungsdatum: 8. Mai 2011

Wohnort: Bayern

Beruf: CNC-Fräser

  • Private Nachricht senden

6

Dienstag, 27. Dezember 2011, 14:16

Entschuldige - du hast Recht.
Die Bezeichnung war für mich missverständlich da im Normalfall durchaus die Anzahl der vergangenen Prozessortakte verwendet werden um die Zeiten in Rechnern zu messen.
Diese müssen noch in ein uns vertrautes Zahlenformat gewandelt werden.
Diese Aufgabe erfüllt dann eine entsprechende Ticks2Time Funktion (wird über die Taktrate berechnet).
Der Autor der Funktion _TicksToTime() wandelt aber gar keine Ticks sondern, wie ich durch dich nun weiß, Millisekunden.

Da hätte ich vorher nachschauen sollen - sorry


Kein Problem, musste selber nochmal nachschauen. ;)
Hatte aber _TicksToTime() selber schon verwendet, um TimerDiff() in "normales" Zeitformat umzuwandeln.

Gruß

Edit: Nichts desto trotz gefällt mir die Funktion von TheLuBu, da diese das Zeitformat direkt in hh:mm:ss zurückgibt und nicht erst durch Stringformat() in dieses Format gebracht werden muß

Marsi

Snickers hat Nüsse

Registrierungsdatum: 14. Februar 2010

  • Private Nachricht senden

7

Dienstag, 27. Dezember 2011, 14:27

Moin,
So eine Funktion habe ich irgendwann auch schonmal gebastelt.
Der Ausgabestring sollte identisch sein.

  Spoiler Spoiler

AutoIt-Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Func _Zeit($iMs)
    $iMs = Int($iMs)
    Local $iSec, $iMin, $iStd, $sVor
    If $iMs < 0 Then
        $iMs = Abs($iMs)
        $sVor = '-'
    EndIf
    $iSec = $iMs / 1000
    $iMin = $iSec / 60
    $iStd = $iMin / 60
    $iMin -= Int($iStd) * 60
    $iSec -= Int($iMin) * 60
    Return $sVor & StringRight('0' & Int($iStd), 2) & ':' & StringRight('0' & Int($iMin), 2) & ':' & StringRight('0' & Int($iSec), 2)
EndFunc

lg
M

Ganz viel Inhalt


Meine Skripte können nix, aber ich preise sie dennoch als Wunderwerke an !

  • »TheLuBu« ist der Autor dieses Themas

Registrierungsdatum: 12. Mai 2009

Wohnort: Mönchengladbach

Beruf: Student / Azubi

  • Private Nachricht senden

8

Dienstag, 27. Dezember 2011, 14:31

Desshalb habe ich die FUnktion nicht gefunden.
Ich bin auch von Ticks = Prozessortakt ausgegangen.
Naja gut, wieder eine Zeitfunktion mehr für mein "portfolio" ;D
MfG TheLuBu
_________________________________________________________________

Meine Scripte


Thema bewerten