lunedì 10 luglio 2023

File Batch - Calcolare Durata Procedura

 Vi riporto il codice per poter calcolare il tempo trascorso in un file Batch

Metodo 1 :

--------------------------------------------------------------------

@echo off

cls

setlocal EnableDelayedExpansion

set STARTTIME=%TIME: =%
set /A OreInizio=%STARTTIME% / 360000
if %OreInizio% LSS 10 set STARTTIME=0%STARTTIME%

pause


set ENDTIME=%TIME: =%
set /A OreFine=%ENDTIME% / 360000
if %OreFine% LSS 10 set ENDTIME=0%ENDTIME%
set /A OreInizio=%STARTTIME:~0,2%
set /A MinutiInizio=%STARTTIME:~3,2%
set /A SecondiInizio=%STARTTIME:~6,2%
set /A OreFine=%ENDTIME:~0,2%
set /A MinutiFine=%ENDTIME:~3,2%
set /A SecondiFine=%ENDTIME:~6,2%

Set /A DurataInizioInSecondi=(%OreInizio% * 3600)+(%MinutiInizio%*60)+%SecondiInizio%
Set /A DurataFineInSecondi=(%OreFine% * 3600)+(%MinutiFine%*60)+%SecondiFine%
IF %OreFine% LSS %OreInizio% Set /A DurataFineInSecondi=%DurataFineInSecondi%+86400
Set /A TempoInSecondi=%DurataInizioInSecondi%-%DurataFineInSecondi%
IF %DurataInizioInSecondi% LSS %DurataFineInSecondi% Set /A TempoInSecondi=%DurataFineInSecondi%-%DurataInizioInSecondi%
Set /A Ore = %TempoInSecondi% / 3600
Set /A Minuti = (%TempoInSecondi%-(%Ore%*3600))/60
Set /A Secondi = %TempoInSecondi%-((%Ore% * 3600)+(%Minuti%*60))
IF %Ore% LSS 10 set Ore=0%Ore%
IF %Minuti% LSS 10 set Minuti=0%Minuti%
IF %Secondi% LSS 10 set Secondi=0%Secondi%
echo Durata Procedura  %Ore%:%Minuti%:%Secondi%
--------------------------------------------------------------------

Metodo 2 :

--------------------------------------------------------------------
@echo off

cls
setlocal EnableDelayedExpansion

set STARTTIME=%TIME: =%
set /A OreInizio=%STARTTIME% / 360000
if %OreInizio% LSS 10 set STARTTIME=0%STARTTIME%

pause

set ENDTIME=%TIME: =%
set /A OreFine=%ENDTIME% / 360000
if %OreFine% LSS 10 set ENDTIME=0%ENDTIME%

set /A OreInizio=%STARTTIME:~0,2%
set /A MinutiInizio=%STARTTIME:~3,2%
set /A SecondiInizio=%STARTTIME:~6,2%

set /A OreFine=%ENDTIME:~0,2%
set /A MinutiFine=%ENDTIME:~3,2%
set /A SecondiFine=%ENDTIME:~6,2%


set /A DurataSecondi=(60-%SecondiInizio%)+(%SecondiFine%-60)
set /A TogliMinuti=0
IF %SecondiFine% LSS %SecondiInizio% set /A DurataSecondi=60-%SecondiInizio%+%SecondiFine%
IF %SecondiFine% LSS %SecondiInizio% set /A TogliMinuti=-1

set /A DurataMinuti=(60-%MinutiInizio%)+(%MinutiFine%-60)+%TogliMinuti%
set /A TogliOra=0
IF %MinutiFine% LSS %MinutiInizio% set /A DurataMinuti=(60-%MinutiInizio%)+%MinutiFine%+%TogliMinuti%
IF %MinutiFine% LSS %MinutiInizio% set /A TogliOra=-1
IF %MinutiFine% EQU %MinutiInizio% set /A DurataMinuti=60+%TogliMinuti%
IF %MinutiFine% EQU %MinutiInizio% set /A TogliOra=-1

IF %DurataMinuti% EQU 60 set /A TogliOra=0
IF %DurataMinuti% EQU 60 set /A DurataMinuti=0

set /A DurataOre=%OreFine%-%OreInizio%+%TogliOra%
IF %OreFine% LSS %OreInizio% set /A DurataOre=(24-%OreInizio%)+%OreFine%+%TogliOra%

IF %DurataOre% LSS 10 set DurataOre=0%DurataOre%
IF %DurataMinuti% LSS 10 set DurataMinuti=0%DurataMinuti%
IF %DurataSecondi% LSS 10 set DurataSecondi=0%DurataSecondi%
echo Durata Procedura %DurataOre%:%DurataMinuti%:%DurataSecondi%
--------------------------------------------------------------------

Etichette: , , , , , ,

0 Commenti:

Posta un commento

Iscriviti a Commenti sul post [Atom]

<< Home page