ayuda con obtencion dia anterior me sale mal el año

Iniciado por mgonzalo, 12 Diciembre 2008, 13:29 PM

0 Miembros y 1 Visitante están viendo este tema.

mgonzalo

Vereis quiero generar un fichero diario p.e pcing-11.12.08.txt y despues comparar con el generado el dia anterior p.e pcing-10.12.08.txt
Pero al componer las fechas compongo perfectamente la de hoy 11.12.08 pero no la de ayer 10.12.08 ya que obtengo 10.12.00

¿me podeis ayudar? ¿porque obtengo 00 en vez de 08?

el fichero .bat es:
---------------------------------------------------------------------------------
@echo off
rem sacar fecha de hoy
setlocal ENABLEEXTENSIONS
call :dias
echo %var2%
call :dias1 %var2%
set /a j-=1
call :inc %j%
echo %dd%.%mm%.%'%0%yy%
l:
dir /s /o > p:\pcing-%var2%.txt
echo buscando diferencias 1
echo buscando diferencias 2
echo buscando diferencias 3
echo buscando diferencias 4
echo buscando diferencias 5
echo buscando diferencias 6
echo buscando diferencias 7
echo buscando diferencias 8
echo buscando diferencias 9
echo buscando diferencias 10
echo buscando diferencias 11
echo buscando diferencias 12
echo buscando diferencias 13
echo buscando diferencias 14
fc p:\pcing-%var2%.txt p:\pcing-%dd%.%mm%.%'%0%yy%.txt > p:\lispcing-dif.txt
echo acabo ya
endlocal
goto :EOF

:dias
set var=%date%
set var1=%var:~4%
set var2=%var1:/=.%
goto :EOF

:dias1
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

:inc
set /a a=%1+2472632,b=4*a+3,b/=146097,c=-b*146097,c/=4,c+=a
set /a d=4*c+3,d/=1461,e=-1461*d,e/=4,e+=c,m=5*e+2,m/=153,dd=153*m+2,dd/=5
set /a dd=-dd+e+1,mm=-m/10,mm*=12,mm+=m+3,yy=b*100+d-4800+m/10
(if %mm% LSS 10 set mm=0%mm%)&(if %dd% LSS 10 set dd=0%dd%)
goto :EOF
--------------------------------------------------------------------------
El que quiere hacer algo encuentra un medio. El que no quiere hacer nada encuentra siempre un excusa.