Mediante fichero batch: calcular diferencia de dÍas entre dos fechas

 

Nos creamos con Notepad un fichero .bat o .cmd con el siguiente contenido:

@echo off
setlocal ENABLEEXTENSIONS
call :dias %1
set /a d=j
call :dias %2
set /a d=j-d
echo %d%&endlocal&goto :EOF

:dias
for /f "tokens=1,2,3 delims=-/." %%a in ("%1") do (
   set dd=%%a&set mm=%%b&set yy=%%c)
set /a dd=100%dd%%%100,mm=100%mm%%%100
set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2
set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633
goto :EOF

Si lo llamamos, por ejemplo, dif_fechas.cmd, la manera de invocarlo será:

dif_fechas  fecha1  fecha2

Tanto fecha1 como fecha 2, admiten los formatos:  dd.mm.aaaa  dd-mm-aaaa dd/mm/aaaa

El resultado es fecha2 - fecha1

NOTA: la rutina es exacta teniendo presente la regla de bisiestos en centenarios.

--

José Manuel Tella Llop
jmtella@compuserve.com

Multinglés/JMT        

13 - abril - 2005