Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

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

Zeitdauer bzw. Zeitabstand zwischen zwei Datums ausrechnen

Frage Entwicklung Batch & Shell

Mitglied: BobaFett64

BobaFett64 (Level 1) - Jetzt verbinden

04.04.2008, aktualisiert 15.04.2008, 6542 Aufrufe, 4 Kommentare

Hallo!

Ich möchte gerne im batch die Zeitdauer bzw. den Zeitabstand zwischen zwei Datums ausrechnen. Also zum Beispiel folgender Fall:

set startdate=01.01.08
set starttime=10:42
set enddate=02.01.08
set endtime=11:50

Jetzt möchte ich ausrechnen, wieviel Zeit in Stunden zwischen der Startzeit am 01.01.08 10:42 Uhr bis zum 02.01.08 11:50 Uhr vergangen ist.

Wie kann ich dieses Problem am besten in batch lösen?

Vielen Dank schonmal für eure Hilfe!!

MfG,
BobaFett64
Mitglied: Ravers
04.04.2008 um 13:11 Uhr
Ich bin zwar kein Batch-Profi, aber das wird seehr schwierig, eigentlich unmöglich.

Es muß z.B. ein Kalender dabei sein.

Beispiel 26.02 - 03.03. um 16 Uhr.

Woher soll die Batch wissen wieviel Tage der Februar im Jahr XX hat?
Ist evtl. noch ein Feiertag dazwischen (soll er mitgerechnet werden oder nicht?)

und viele Problem mehr ;)

Nimm lieber einen anderen Ansatz (Excel z.b.) !

Mfg
Bitte warten ..
Mitglied: Biber
04.04.2008 um 13:22 Uhr
Moin bobafett64,

Rechnen mit Datumswerte ist mit native Batch eine undankbare Geschichte, da die CMD.exe keinen Datentyp "Datum" kennt.
Du kannst es allerdings mit dem (kurzen) Umweg über eine Zeile VBS hinbekommen.
01.
:: -----irgendwo in Deinem Batch.bat 
02.
@echo off & setlocal 
03.
... 
04.
set startdate=01.01.08 
05.
set starttime=10:42 
06.
set enddate=02.01.08 
07.
set endtime=11:50 
08.
... 
09.
Set "dd=%temp%\dd.vbs" 
10.
echo wscript.echo datediff("h", "%startdate% %starttime%", "%enddate% %endtime%") >"%dd%" 
11.
For /f %%i in ('cscript //nologo "%dd%" ') do set "AnzStd=%%i" 
12.
echo Es hat %AnzStd% Stunden gedauert... 
13.
 
Am CMD-Prompt schnell testen kannst du es so:
01.
>echo wscript.echo datediff("h", "01.01.08 10:42", "02.01.08 11:50") >x.vbs 
02.
 
03.
>cscript //nologo x.vbs 
04.
25
Gruß
Biber
P.S. Und sag bitte in diesem Zweigarm des Forum nie wieder "zwischen zwei Datums"...
Bitte warten ..
Mitglied: BobaFett64
15.04.2008 um 14:19 Uhr
Danke für das Skript!

Jetzt bekomme ich die Zeitdifferenz in Stunden.
Ich bräuchte aber bitte auch noch die Minuten.

Gruß,
BobaFett64
Bitte warten ..
Mitglied: Biber
15.04.2008 um 18:34 Uhr
Moin BobaFett,

hmm, ich dachte, ich hätte irgendwo gelesen:
Jetzt möchte ich ausrechnen, wieviel Zeit in Stunden zwischen der Startzeit ...

Aber egal, Änderungsdemo am CMD-Prompt [Eingaben beginnen mit ">"]:
01.
>echo wscript.echo DateDiff("n", "01.01.08 10:42", "02.01.08 11:50") >x.vbs 
02.
## Zeit in Minuten total: 
03.
>cscript //nologo x.vbs 
04.
1508 
05.
## Zeit in vollen Stunden: 
06.
> set /a 1508 / 60 
07.
25 
08.
## Zeit der Restminuten: 
09.
>set /a 1508 % 60 
10.
8
Grüße
Biber
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
gelöst Provision ausrechnen Excel 2010 (14)

Frage von Mascha.MG zum Thema Microsoft Office ...

Datenbanken
gelöst SQL-Abfrage - DISTINCT - letztes Datum (3)

Frage von emeriks zum Thema Datenbanken ...

Datenbanken
gelöst SQL datum kleiner today (8)

Frage von StarMann zum Thema Datenbanken ...

Batch & Shell
gelöst Ordner Umbenennen +heutiges Datum (12)

Frage von ahsenden zum Thema Batch & Shell ...

Neue Wissensbeiträge
Humor (lol)

Wo ist der Fehler auf dem Bild?

(9)

Information von the-buccaneer zum Thema Humor (lol) ...

Windows Update

Offenbar erneutes MS-Update mit Fehlerschleife (2012 R2)

Information von VGem-e zum Thema Windows Update ...

Windows Installation

Unorthodoxer Weg, um an einen Offline-Installer für Adobe Flash zu kommen

(14)

Tipp von beidermachtvongreyscull zum Thema Windows Installation ...

Heiß diskutierte Inhalte
Exchange Server
gelöst Proxy Server Settings Cloud + EWS (17)

Frage von SomebodyToLove zum Thema Exchange Server ...

Windows Server
PDF Editor für den Einsatz auf Terminal Servern (16)

Frage von kwame501 zum Thema Windows Server ...

Windows Installation
Unorthodoxer Weg, um an einen Offline-Installer für Adobe Flash zu kommen (14)

Tipp von beidermachtvongreyscull zum Thema Windows Installation ...

Virtualisierung
Unterschied zwischen VDI und Terminal Server Lösungen (13)

Frage von tukawi06 zum Thema Virtualisierung ...