Saved Bookmarks
| 1. |
Solve : Cmd or Program to do ls -lrt | tail -1 as done in Unix? |
|
Answer» Quote from: smartjosh on March 27, 2009, 04:45:04 AM 2. You want to subtract 1 from e.g. 26 to GET 25? Or get the previous day's date? smartjosh, here is the bat way to calculate date difference, source is from wiki, and i haven't tested it throughly, so may STILL contain bugs. if you did have access to vbscript, it's easier to do it with vbscript. Code: [Select]::source: http://en.wikipedia.org/wiki/Julian_day @echo off & setlocal if "%~1"=="" echo USAGE: %0 [interval] & goto:eof for /f "skip=1 tokens=2-4 delims=(./-)" %%a in ('echo.^|date') do ( for /f "tokens=1-3 delims=./- " %%A in ('echo %date:~-10%') do ( set %%a=%%A& set %%b=%%B& set %%c=%%C )) echo TODAY :%yy%%mm%%dd% set/a mm=1%mm%-100,dd=1%dd%-100 ::JD set/a a=(14-mm)/12, y=yy+4800-a, m=mm+12*a-3 set/a jd=dd+ (153*m+2)/5 + 365*y + y/4 - y/100 + y/400 - 32045 ::date interval set/a jd+=%~1 ::gd set/a s1=jd+68569, n=4*s1/146097, s2=s1-(146097*n+3)/4, i=4000*(s2+1)/1461001 set/a s3=s2-1461*i/4+31, q=80*s3/2447, s4=q/11, e=s3-2447*q/80 set/a yy=100*(n-49)+i+s4, mm=q+2-12*s4, dd=e, gd=yy*10000+mm*100+dd echo %1 :%gd% test output Code: [Select]C:\>jd 10 Today :20090330 10 :20090409 C:\>jd -1 Today :20090330 -1 :20090329 C:\>jd -1000 Today :20090330 -1000 :20060704 |
|