Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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, 6499 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 ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Switche und Hubs
LAG zwischen Cisco SG300 und Dlink DGS1100 herstellen - wie? (15)

Frage von White-Rabbit2 zum Thema Switche und Hubs ...

Windows Tools
Kleines Tool zwischen Ticketsystem und DMS (4)

Frage von Peterz zum Thema Windows Tools ...

Debian
Keine Verbindung zwischen zwei Debian Maschinen (1)

Frage von Philippe27 zum Thema Debian ...

LAN, WAN, Wireless
Vlan zwischen zwei Netzwerken mit jeweils eigenen Internetanschluß (6)

Frage von grosseralex zum Thema LAN, WAN, Wireless ...

Heiß diskutierte Inhalte
Viren und Trojaner
gelöst Wie werde ich den Mist "fanli90" wieder los? (17)

Frage von Taumel zum Thema Viren und Trojaner ...

Switche und Hubs
LAG zwischen Cisco SG300 und Dlink DGS1100 herstellen - wie? (15)

Frage von White-Rabbit2 zum Thema Switche und Hubs ...

Hardware
Lenovo Yoga 500 über angeschlossene USB Tastatur booten (13)

Frage von thomasreischer zum Thema Hardware ...

CPU, RAM, Mainboards
Hardware Fragen (12)

Frage von xaver-2 zum Thema CPU, RAM, Mainboards ...