Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Сложить время . Прибавить полминуты к текущему (http://forum.oszone.net/showthread.php?t=300252)

csp 25-05-2015 11:30 2511083

Сложить время . Прибавить полминуты к текущему
 
Создаю задачу, получаю текущее время. погуглил как делаются сложения, например

PHP код:

set /a a=1
set 
/a b=2
set 
/a c=a+b
echo %c

но если подставить set /a a=%time% то уже не работает. Подскажите как прибавить 00:00:30 секунд к текущему времени

т.е set test=%time% потом прибавить 30 секунд чтобы %test% отличался от %time%

greg zakharov 25-05-2015 12:08 2511107

Код:

@powershell /nologo /noprofile /command "&{[DateTime]::Now.AddSeconds(30).ToString('HH:mm:ss')}"

Iska 25-05-2015 13:43 2511133

Цитата:

Цитата csp
Подскажите как прибавить 00:00:30 секунд к текущему времени »

Чисто на пакетных файлах — очень нудно.

greg zakharov 25-05-2015 14:52 2511155

Цитата:

Цитата Iska
Чисто на пакетных файлах — очень нудно.

А что трудного в том, чтобы конвертировать время в секунды, прибавить к ним тридцать, а после выполнить обратное преобразование? Если сходу, то это должно выглядеть как-то так:
Код:

@echo off
  setlocal
    set "now=%time:~0,8%"
    set /a "sec=%now:~0,2% * 3600"
    set /a "sec+=%now:~3,2% * 60"
    set /a "sec+=%now:~6,2%+30"
   
    set /a "hh=sec/3600", "mm=(sec-hh*3600)/60", "ss=sec-hh*3600-mm*60"
    if %hh% lss 10 set "hh=0%hh%"
    if %mm% lss 10 set "mm=0%mm%"
    if %ss% lss 10 set "ss=0%ss%"
    echo %hh%:%mm%:%ss%
  endlocal
exit /b


gora 25-05-2015 15:04 2511159

Цитата:

Цитата csp
как прибавить 00:00:30 секунд к текущему времени »

Код:

@Echo Off
For /f "delims=+-" %%i In ('WMIC OS Get LocalDateTime^|Find "."') Do Set DT=%%i

Set /a tmsec= 3600 * (1%DT:~8,2%-100) + 60 * (1%DT:~10,2%-100) + 1%DT:~12,2%-100
Echo %DT:~8,2%.%DT:~10,2%.%DT:~12,2%
:: Добавляем 30 с
Set /a tmsec= tmsec + 30
Set /a h = tmsec / 3600 %% 24, m = tmsec %% 3600 / 60, s = tmsec %% 3600 %% 60
Set h=0%h%& Set m=0%m%& Set s=0%s%
Set h=%h:~-2%& Set m=%m:~-2%& Set s=%s:~-2%
Echo %h%.%m%.%s%
Pause



Время: 11:43.

Время: 11:43.
© OSzone.net 2001-