Войти

Показать полную графическую версию : [решено] Пересчитать дату в дни...


InVariable
16-02-2012, 22:01
Как посчитать день от Рождества Христова? Или от 1900 года? Нужен bat-файл или консольная программа (win).

Foreigner
16-02-2012, 23:00
InVariable, на powershell все просто:

(new-timespan "01.01.0001" $(get-date)).days

В батнике (на больших сроках ошибка, увы):

:: Вычисление разницы в днях между
:: текущей датой и датой на выбор
@echo off
setlocal

:again
set d=%date:~0,2%
set m=%date:~3,2%
set y=%date:~6,4%

if %d:~0,1%==0 set d=%d:~1%
if %m:~0,1%==0 set m=%m:~1%

set /a feb=y%%4
if %feb%==0 (set feb=29) else (set feb=28)

set /a m-=1
if %m%==0 (set yd=0 && goto:skip)

:tok
set /a tok+=1
for /f "tokens=%tok%" %%i in ("31 %feb% 31 30 31 30 31 31 30 31 30 31") do (
set /a yd+=%%i
if not %tok%==%m% goto:tok
)

:skip
set /a res=y*365+y/4+29-feb+yd+d
set tok=
set yd=

if not defined res1 (
set res1=%res%
set /p date="Enter date: "
goto:again
)

set /a res-=res1
if not %res%==0 (
if %res:~0,1%==- (
echo %res:~1% days from %date%
) else (
echo %res% days to %date%
)
) else (
echo today is %date%
)

InVariable
17-02-2012, 09:19
Спасибо! Всё получилось!




© OSzone.net 2001-2012