Stunden, Minuten, Sekunden Timer programmieren
Hallo Administratoren,
ich wollte mir einen Timer programmieren, der wenn die Zeit abgelaufen ein anderes Programm startet.
Das Programm nennen wir mal test.bat.
Ich habe es jetzt mit Sekunden hinbekommen,aber das sieht ziemilich "blöd" aus wenn da z.B 4000 Sekunden steht.
Deswegen wollte ich das mit Stunden, Minuten und Sekunden machen. Das Problem ist :Ich weiß nicht wie das geht.
Könnte mir jemand helfen?
Gruß Motorcross
ich wollte mir einen Timer programmieren, der wenn die Zeit abgelaufen ein anderes Programm startet.
Das Programm nennen wir mal test.bat.
Ich habe es jetzt mit Sekunden hinbekommen,aber das sieht ziemilich "blöd" aus wenn da z.B 4000 Sekunden steht.
Deswegen wollte ich das mit Stunden, Minuten und Sekunden machen. Das Problem ist :Ich weiß nicht wie das geht.
Könnte mir jemand helfen?
Gruß Motorcross
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 121826
Url: https://administrator.de/contentid/121826
Ausgedruckt am: 22.11.2024 um 14:11 Uhr
5 Kommentare
Neuester Kommentar
Hallo,
mit welcher Programmiersprache arbeitest du denn?
Im Prinzip könntest Du doch einen Parameter der Form hh:mm:ss (string) in ein Array aufplitten (Trennzeichen wäre der ':').
Daraus könntest Du leicht die Sekunden berechnen.
(SekundenTotal=Sekunden+(Minuten*60)+(Stunden*3600))
Oder soll die Berechnung innerhalb der test.bat erfolgen?
mit welcher Programmiersprache arbeitest du denn?
Im Prinzip könntest Du doch einen Parameter der Form hh:mm:ss (string) in ein Array aufplitten (Trennzeichen wäre der ':').
Daraus könntest Du leicht die Sekunden berechnen.
(SekundenTotal=Sekunden+(Minuten*60)+(Stunden*3600))
Oder soll die Berechnung innerhalb der test.bat erfolgen?
Vielleicht denke ich zu kompliziert, aber mit PING sollte das bei größeren Zeitspannen zu ungenau werden. In diesem Beispiel wird geprüft, ob sich die Systemzeit geändert hat. Das ergibt zwar am Anfang einen Fehler von max. einer Sekunde, danach sollte das ganze aber genau laufen.
@echo off &setlocal
:: Zeit in Sekunden:
set /a z=4000
set /a x=0
set /a z+=1
set ZeitEins=%time:~0,8%
:loop
set ZeitZwei=%time:~0,8%
if %ZeitEins% == %ZeitZwei% goto loop
set /a x+=1
set ZeitEins=%ZeitZwei%
set /a t=%z%-%x%
set /a h=%t%/3600
set /a Rest=%t%-%h%*3600
set /a m=%Rest%/60
set /a s=%t%-%h%*3600-%m%*60
set "h=0%h%"
set "m=0%m%"
set "s=0%s%"
set "Display=%h:~-2%:%m:~-2%:%s:~-2%"
cls
echo Countdown: %Display%
if %t% gtr 0 goto loop
:: Hier dein Code:
Du meinst woll was in dieser Form:
Aufgerufen wird das ganze dann:
@echo off
if %1 gtr 0 FOR /L %h IN (1,1,%1) DO ping -n 3600 localhost >NUL
if %2 gtr 0 FOR /L %m IN (1,1,%2) DO ping -n 60 localhost >NUL
if %3 gtr 0 ping -n %3 localhost >NUL
echo Zeit abgelaufen. Tu jetzt was
test.bat 1 30 25
für 1 Stunde 30 minuten und 25 sekunden