Zeitdifferenz in sec

Anfängerfragen zum Programmieren mit PureBasic.
HoDam
Beiträge: 82
Registriert: 19.11.2004 13:57
Wohnort: Köln, Cologne

Zeitdifferenz in sec

Beitrag von HoDam »

Hallo, wie kann ich eine Zeitdifferenz berechnen.

Mit Date() hole ich den Zeitstempel.

Einmal zu Anfang, dann zum Ende der Routine.

Subtrahiere Anfang von ende und erhalten einen vergangen Zeit. Wie muss ich den jetzt formatieren, das ich eine Zeiteingabe ins z.B.= 00:00:12 erhalte


Dankeschön
PB 4 Final
Sven
Beiträge: 374
Registriert: 23.09.2004 12:01

Beitrag von Sven »

Code: Alles auswählen

FormatDate()

Syntax

Text$ = FormatDate(Maske$, Datum)
Beschreibung

Gibt das 'Datum' in einem formatierten String zurück, abhängig von der angegebenen 'Maske$'. 'Maske$' ist ein String, welcher definiert, wie das Datum formatiert werden soll. 'Maske$' akzeptiert einige reservierte Zeichen: 
  %yyyy: wird durch den Jahres-Wert ersetzt, benutzt 4 Stellen.
  %yy: wird durch den Jahres-Wert ersetzt, benutzt 2 Stellen.
  %mm: wird durch den Monats-Wert ersetzt, benutzt 2 Stellen.
  %dd: wird durch den Tages-Wert ersetzt, benutzt 2 Stellen.
  %hh: wird durch den Stunden-Wert ersetzt, benutzt 2 Stellen.
  %ii: wird durch den Minuten-Wert ersetzt, benutzt 2 Stellen.
  %ss: wird durch den Sekunden-Wert ersetzt, benutzt 2 Stellen.

Beispiel: 
  Debug FormatDate("J=%yyyy, M= %mm, T=%dd", Date()) ; zeigt das aktuelle Datum in 
                                                     ; der Form "J=2002, M=10, T=03"
    
  Debug FormatDate("%hh:%ii:%ss", Date())  ; zeigt die aktuelle Zeit mittels dem 00:00:00 Format

Benutzeravatar
Tafkadasom2k5
Beiträge: 1578
Registriert: 13.08.2005 14:31
Kontaktdaten:

Beitrag von Tafkadasom2k5 »

Hey!
Arbeite lieber mit

Code: Alles auswählen

ElapsedMilliSeconds_()
Damit bekommst du die Millisekunden zurück, die das Programm schon läuft.

Jetzt machst du das Gleiche, was du mit Date() gemacht hast, und wandelst in Sekunden um (oder in Minuten, oder whatever).

Oder dauert die Prozedur mehrere Tage?

Gr33tz
Tafkadasom2k5

Edit:
Ich bin mir nicht sicher, ob das ein Befehl mit " _ " ist (also WinAPI), oder nativ ist, und kann gerade nämlich auch nicht nachschauen.
Gebs einfach mal in die Forensuche ein, da gibt es genug Beispiele.
OpenNetworkConnection() hat geschrieben:Versucht eine Verbindung mit dem angegebenen Server aufzubauen. 'ServerName$' kann eine IP-Adresse oder ein voller Name sein (z.B.: "127.0.0.1" oder "ftp.home.net").
php-freak hat geschrieben:Ich hab die IP von google auch ned rausgefunden!
HoDam
Beiträge: 82
Registriert: 19.11.2004 13:57
Wohnort: Köln, Cologne

Beitrag von HoDam »

So genau brauche ich es nicht

hier mein Ansatz

Code: Alles auswählen

startP = Date()

;-hier kommt die Routine hin


EndP = Date()

debug StrF(EndP - startP,0)+ " sec" 
Zuletzt geändert von HoDam am 31.07.2006 19:03, insgesamt 2-mal geändert.
PB 4 Final
Jilocasin
Beiträge: 665
Registriert: 13.05.2006 16:04
Kontaktdaten:

Beitrag von Jilocasin »

@Tafkadasom2k5
Tafkadasom2k5 hat geschrieben:Damit bekommst du die Millisekunden zurück, die das Programm schon läuft.
Hö? Das wäre mir neu :lol:
Die Hilfe hat geschrieben:Gibt die aktuelle Anzahl an Millisekunden seit dem Start des Computers zurück.
Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

ich denke, das heißt

Code: Alles auswählen

ElapsedMilliseconds()
so wie Taf das geschrieben hat, wärs ne API-funktion, aber die heißt anders.

aber mit der zeitermittlung wärs mEn wirklich einfacher:

Code: Alles auswählen

Timer = ElapsedMilliseconds()
; ------
; zu messender Programmabschnitt
; ------
Timer = ElapsedMilliseconds() - Timer
sec = Timer / 1000
das genügt, wenn du die sekunden angeben willst.

wenn die routine länger als 60sec dauern kann, musst du den wert halt aufteilen.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten