Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Uhrzeit differenz in der XP Kommandozeile berechnen

Mitglied: Axel-the-Smoker

Axel-the-Smoker (Level 1) - Jetzt verbinden

14.05.2007, aktualisiert 15.05.2007, 5980 Aufrufe, 7 Kommentare

hallo,

ich habe in 2 Dateien 2 verschiedene uhrzeiten, die sich gelegentlich ändern, wie kann ich die differenz der beiden zeiten herausfinden und an eine 3. zeit addieren?

beispiel:

time.txt enthält 10:00:00
zeit1=10:00:00
time2.txt enthält 11:03:33
zeit2=11:03:33

differenz wären hier 01:03:33


timenow.txt enthält 20:00:00
zeit3=20:00:00
neue zeit3=zeit3+differenz
zeit3=21:03:33

kann es jemand nachvollziehen? ich würde das problem gern in der XP kommandozeile lösen.
könnte man den Beitrag https://www.administrator.de/Zeit_differenz_ermitteln_und_ausgeben_per_B ... zu meinem problem umeditieren?


mfg
Axel
Mitglied: Biber
14.05.2007 um 22:34 Uhr
Moin Axel-the.Smoker,

willkommen im Forum.

Nachvollziehen kann ich Dein Ansinnen schon, aber ich kann noch nicht so genau erkennen, wo die Schwierigkeiten liegen.

Die Mimik ist, da Batch keine Zeit-Rechnung unterstützt, doch schon vorgegeben.
Du musst den Stunden-Minuten-Sekunden-String "umrechnen" in Sekunden, dann kannst mit absoluten Werten [Sekunden seit Mitternacht oder auch Sekunden seit Silvester] Differenzen oder Summen bilden.

Vielleicht macht es eine Quick & Dirty-Variation des Themas von damals, dass Du ja schon gefunden hast, klar:
01.
::---ShowTime.bat Biber 2007 Sinnfreier Batch zur Demo Zeitdaueranzeige im Batch 
02.
@echo off & setlocal 
03.
Set zeit1=10:00:00 
04.
Set zeit2=11:03:33 
05.
:: den lassen wir für später...Set zeit3=20:00:00 
06.
for /f "tokens=1-3 delims=:," %%i in ("%zeit1%") do set /a start=%%i*3600+60*(1%%j %% 100)+1%%k-100 
07.
REM Variable %Start% hat jetzt einen in Sekunden umgerechneten %time%-Wert. 
08.
 
09.
for /f "tokens=1-3 delims=:," %%i in ("%zeit2%") do set /a stop=%%i*3600+60*(1%%j %% 100)+1%%k-100 
10.
REM Auch Variable %Stop% hat jetzt einen in Sekunden umgerechneten %time%-Wert. 
11.
 
12.
Set /a DauerinStd=(stop-start) / 3600 
13.
Set /a DauerInMin=(stop-start-(DauerinStd*3600) ) / 60 
14.
Set /a UndRestInSecs= (stop-start) -(DauerinStd*3600)- DauerInMin*60  
15.
@Echo [Unformatiert] Gedauert hat es %dauerinStd%:%dauerInMin%:%UndRestInSecs% 
16.
REM Oder formatiert: 
17.
Set /a FmtSecs=UndRestInSecs+100 
18.
Set /a FmtMins=DauerInMin+100 
19.
Set /a FmtStd=DauerInStd+100 
20.
@Echo [Formatiert] Gedauert hat es %FmtStd:~-2%:%FmtMins:~-2%:%FmtSecs:~-2%
Am CMD-Prompt:
01.
>e:\schnipsel\Showtime.bat 
02.
[Unformatiert] Gedauert hat es 1:3:33 
03.
[Formatiert] Gedauert hat es 01:03:33
Ich denke, das Vorkaspern der Addition von Sekundenwerten wäre jetzt auch nicht viel ergiebiger als die Differenzermittlung.

Wo liegt denn die Schwierigkeit (ich bin kein so guter Erklärer)?

Gruss
Biber
Bitte warten ..
Mitglied: Axel-the-Smoker
14.05.2007 um 23:51 Uhr
vielen dank für die erste hilfe, ich habe mal weiterentwickelt und angepasst:

01.
set zeit1=10:00:00 
02.
set zeit2=11:03:33 
03.
set zeit3=20:00:00 
04.
 
05.
for /f "tokens=1-3 delims=:," %%i in ("%zeit1%") do set /a start=%%i*3600+60*(1%%j %%  
06.
 
07.
100)+1%%k-100 
08.
 
09.
REM Variable %Start% hat jetzt einen in Sekunden umgerechneten %time%-Wert. 
10.
 
11.
for /f "tokens=1-3 delims=:," %%i in ("%zeit2%") do set /a stop=%%i*3600+60*(1%%j %%  
12.
 
13.
100)+1%%k-100 
14.
 
15.
REM Auch Variable %Stop% hat jetzt einen in Sekunden umgerechneten %time%-Wert. 
16.
 
17.
for /f "tokens=1-3 delims=:," %%i in ("%zeit3%") do set /a timenow=%%i*3600+60*(1%%j  
18.
 
19.
%% 100)+1%%k-100 
20.
 
21.
REM Auch Variable %timenow% hat jetzt einen in Sekunden umgerechneten %time%-Wert. 
22.
 
23.
Set /a TimeNowinStd=(timenow+stop-start) / 3600 
24.
Set /a TimeNowInMin=((timenow+stop-start)-(TimeNowinStd*3600))/60 
25.
Set TimeNowInMin 
26.
Set /a UndRestInSecs= (timenow+stop-start) -(TimeNowinStd*3600)- TimeNowInMin*60  
27.
Set UndRestInSecs 
28.
@Echo [Unformatiert] Uhrzeit: %TimeNowinStd%:%TimeNowInMin%:%UndRestInSecs% 
29.
REM Oder formatiert: 
30.
Set /a FmtSecs=UndRestInSecs+100 
31.
Set /a FmtMins=TimeNowInMin+100 
32.
Set /a FmtStd=TimeNowInStd+100 
33.
@Echo [Formatiert] Uhrzeit: %FmtStd:~-2%:%FmtMins:~-2%:%FmtSecs:~-2%
es funktioniert fast, nur wenn man über den tageswechsel kommt gibts noch probleme... hat jemand ne idee? habe noch eine variable date die man hochzählen müsste..

01.
set date1=01.01.2007

viele grüße Axel
Bitte warten ..
Mitglied: Biber
15.05.2007 um 09:18 Uhr
Moin Axel,
jedoch funktioniert es noch nicht 100% ...
Ist ja auch nicht von M$, sondern nur von mir...
.. und nur mit manchen uhrzeiten, ...
Dann gib doch bitte ein paar Beispiele für nicht funktionierende.. ich möchte nicht alle Kombinationen durchprobieren.
....wo könnte der fehler noch liegen?
Zu hohe Luftfeuchtigkeit? Seitenwind? Zu feiner Sand?

Grüße
Biber
Bitte warten ..
Mitglied: bastla
15.05.2007 um 10:05 Uhr
Hallo Axel-the-Smoker!

Da sich's mit (temporärem) VB-Script etwas leichter rechnet (und formatiert), vielleicht auch noch folgende Variante:
01.
@echo off & setlocal 
02.
set "ZeitBer=%temp%\ZeitBer.vbs" 
03.
set zeit1=10:00:00 
04.
set zeit2=11:03:33 
05.
echo Sec=DateDiff("s",WScript.Arguments(0),WScript.Arguments(1)):Sec=Sec-(Sec^<0)*86400:WScript.Echo FormatDateTime(Sec/86400,3)>"%ZeitBer%" 
06.
for /f "delims=" %%i in ('cscript //nologo "%ZeitBer%" %zeit1% %zeit2%') do set "diff1=%%i" 
07.
for /f "delims=" %%i in ('cscript //nologo "%ZeitBer%" %zeit2% %zeit1%') do set "diff2=%%i" 
08.
for /f "tokens=1-3 delims=:" %%i in ('cscript //nologo "%ZeitBer%" %zeit1% %zeit2%') do set /a diffStd=%%i & set /a diffMin=%%j & set /a diffSek=%%k 
09.
del "%ZeitBer%" 
10.
set diff
Die Übergabe der Zeitwerte erfolgt nach dem Schema "von" - "bis", oder anders formuliert: Der zuerst übergebene Wert wird vom zweiten Wert abgezogen (siehe Beispiele oben).

Grüße
bastla

P.S.: Ich bin eher toler- als militant, und antworte daher auch Rauchern ...
Bitte warten ..
Mitglied: Axel-the-Smoker
15.05.2007 um 14:34 Uhr
Ist ja auch nicht von M$, sondern nur von
mir...
> ....wo könnte der fehler noch
liegen?
Zu hohe Luftfeuchtigkeit? Seitenwind? Zu
feiner Sand?

ich verlange doch keine funktionsgaratie aber ich glaube es liegt am getriebesand, der blaue ist nicht so gut wie der rote!
aber ernsthaft: das mit den "fast 100%" hat sich gegeben, eine von mir geänderte variable hatte nen rechtschreibfehler. ich habe den obigen beitrag schon korrigiert! nur das tagübergeben steht noch an.... ich werde mal probieren vielleicht habt ihr ja eine idee

hier ein schema

01.
 
02.
date1=01.01.2007 
03.
 
04.
tag,monat,jahr aus date1 deklarieren 
05.
 
06.
if stunde>23 then 
07.
   stunde=stunde-24 
08.
   tag=tag+1 
09.
 
10.
   if tag>30 bzw. >31 {das wird schwierig, vorallem beim feb} 
11.
      tag=tag-30 bzw. -31 
12.
      monat=monat+1 
13.
 
14.
      if monat>12 
15.
         monat=monat-12   
16.
         jahr=jahr+1 
17.
 
18.
      end 
19.
   end 
20.
end


mfg
Axel

PS: @bastla auch vielen dank an Deine umsetzung, vielleicht kann ich daraus meine formeln noch weiter optimieren, und der Nick ist noch aus alten zeiten, bin nichtraucher *smile*
Bitte warten ..
Mitglied: Biber
15.05.2007 um 18:30 Uhr
@Axel-the-ex-Smoker

hier ein schema..
In die Tonne damit.
Mach es nicht so kompliziert.
ich habe es oben schon geschrieben (oder zumindest gedacht):

Für Quick-und-Dirty, also Zeitberechnungen von-bis im Minuten/Stundenbereich
---> mit Sekunden seit Mitternacht als Basis recnnen.

Für mehr Robustheit: umrechnen auf Sekunden seit Silvester. Oder seit 1.1.1970.
Oder Einführung des Vatertags.

Spricht doch nichts dagegen, wenn da größere Sekundenzahlen addiert/subtrahiert werden.

Gruß
Biber
Bitte warten ..
Mitglied: Axel-the-Smoker
15.05.2007 um 22:37 Uhr
ich habe es oben schon geschrieben (oder
zumindest gedacht):


?? wo? quick and dirty schon? auf jeden fall bleibt für mich die frage wie ich den zeitlichen übertrag aufs datum bekomme

mfg
Axel
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
Excel Uhrzeit berechnen
Frage von Adnan88Microsoft Office4 Kommentare

Hallo, ich habe hier mal einen Schichtplan für meine Mitarbeiter : Will es quasi mit X ausfüllen wann wer ...

Batch & Shell

Zeiten in .txt datei auslesen und Differenz berechnen

gelöst Frage von meex87Batch & Shell14 Kommentare

Hallo, ich habe folgendes Problem: Eine Pumpe protokolliert seine ON/OFF Zeiten in einer .txt Datei. Sieht so aus: Der ...

Linux Tools

Linux - Zeit-Differenz berechnen zwischen 2 Zeilen

gelöst Frage von peterhaLinux Tools3 Kommentare

Hallo zusammen, kurze Einleitung: Ich habe die App Geofancy aufs Telefon getan. (Nicht zu verwechseln mit Geofency) Geofancy macht ...

PHP

Bewertungssystem wie berechnen?

gelöst Frage von icegetPHP4 Kommentare

Hallo liebe Community, ich habe folgendes Problem: Die Benutzer auf einer Website (angemeldet mit ihrer email) dürfen Rezepte bewerten. ...

Neue Wissensbeiträge
Windows 10

USB Maus und Tastatur versagen Dienst unter Windows 10

Erfahrungsbericht von hardykopff vor 2 TagenWindows 105 Kommentare

Da steht man ziemlich dumm da, wenn der PC sich wegen fehlender USB Tastatur und Maus nicht bedienen lässt. ...

Administrator.de Feedback
Update der Seite: Alles zentriert
Information von Frank vor 2 TagenAdministrator.de Feedback18 Kommentare

Hallo User, die größte Änderung von Release 5.8 ist das Zentrieren der Webseite (auf großen Bildschirmen) und ein "Welcome"-Teaser ...

Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 2 TagenHumor (lol)4 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 3 TagenGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Heiß diskutierte Inhalte
Router & Routing
Router auf Orginal Firmware zurück flashen mit Tftpd
Frage von ILeonardRouter & Routing21 Kommentare

Hallo, Ich habe zwei Router, einmal TP-Link 841n v11 und TP-Link 940N v5. Ich wollte fragen, ob jemand mir ...

Router & Routing
WRT keine Verbindung zum Web Interface
gelöst Frage von ILeonardRouter & Routing18 Kommentare

Hallo, Ich habe einen TP-Link WR841n mit wrt geflasht, das Problem ist ich kann mich mit 192.168.1.1 nicht verbinden. ...

TK-Netze & Geräte
Telefonie zweier Fritzboxen mit je eigenem DSL Anschluss verbinden
Frage von hannsgmaulwurfTK-Netze & Geräte10 Kommentare

Hallo zusammen, ich habe hier einen Haushalt mit zwei Anschlüssen. Einmal ISDN, einmal DSL. An jedem Anschluss hängt eine ...

Windows Server
Standortvernetzung zu einem Strato VServer (Windows)
Frage von matzefratze81Windows Server10 Kommentare

Moin, ich komme aus einem Enterprise-Umfeld und habe den Fehler gemacht, dass ich mich auf ein kleines Unternehmen eingelassen ...