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

Frage Entwicklung Batch & Shell

Mitglied: Axel-the-Smoker

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

14.05.2007, aktualisiert 15.05.2007, 5935 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 http://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
Internet

Was nützt HTTPS, wenn es auch von Phishing Web-Seiten genutzt wird

Information von Penny.Cilin vor 2 TagenInternet17 Kommentare

HTTPS richtig einschätzen Ob man eine Webseite via HTTPS aufruft, zeigt ein Schloss neben der Adresse im Webbrowser an. ...

Webbrowser

Bugfix für Firefox Quantum released - Installation erfolgt teilweise nicht automatisch!

Erfahrungsbericht von Volchy vor 3 TagenWebbrowser7 Kommentare

Hallo zusammen, gem. dem Artike von heise online wurde mit VersionFirefox 57.0.1 sicherheitsrelevante Bugs behoben. Entgegen der aktuellen Veröffentlichung ...

Sicherheit

Teamviewer Sessions können gekapert werden - Update tw. verfügbar

Information von sabines vor 3 TagenSicherheit6 Kommentare

In bestimmten Konstellationen können Teamviewer Sessions gekapert werden, wahrscheinlich aber ein recht unwahrscheinliches Szenario. Da der Teamviewer gerne für ...

Digitiales Fernsehen

Apple TV: Amazon Prime App ist verfügbar

Information von Frank vor 4 TagenDigitiales Fernsehen4 Kommentare

Die Amazon Prime Video App kann ab sofort auf einem Apple TV ab der 3 Generation installiert werden. Einfach ...

Heiß diskutierte Inhalte
Vmware
Installation Windows 10 VMware
Frage von Ghost108Vmware17 Kommentare

Hallo zusammen, versuche gerade mit Hilfe des vshpere clients eine virtuelle Windows 10 maschine aufzusetzen. 1. virtuelle Maschine erstellt ...

Exchange Server
SBS 2011 E-Mails können gesendet werden, aber nicht von extern empfangen
Frage von andreas1234Exchange Server14 Kommentare

Hallo Community, ich habe das Problem, dass seit knapp zwei Wochen die E-Mails von meinem SBS 2011 einwandfrei gesendet ...

Voice over IP
Telefonstörung - Ortsrufnummern kein Verbindungsaufbau
Frage von Windows10GegnerVoice over IP10 Kommentare

Hallo, sowohl bei uns als auch beim Opa ist es über VoIP nicht möglich Ortsrufnummern anzurufen. Es kommt nach ...

Windows Server
Server 2012 über Eingabeaufforderung devmgmt.msc geht nicht
gelöst Frage von achim222Windows Server9 Kommentare

Hallo, ich habe hier einen Server 2012 der im Reparaturmodus startet. Es liegt an einem falschen VirtIO Treiber für ...