На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела
1. Не создавайте несколько одинаковых тем, ибо модератор может расценить их, как спам и удалить все.
2. Для решения задач по GPSS есть отдельная тема. Все задачи по GPSS опубликовывать в этой теме! Перед опубликовыванием вашей задачи просмотрите всю тему, возможно вы сразу найдете решение.
3. Давайте вашим темам ОСМЫСЛЕННЫЕ названия, а также указывайте язык программирования. Пример: [Pascal]:Работа с файлами и записями.
4. Использования тега CODE обязательно при публикации текста программы.

Темы, оформленные с явным игнорированием правил и отсутствием смысла, будут закрыты/удалены!
Вам помогли? Напишите об этом здесь (в портфолио фрилансера)

Фрилансерам:
5. Демпинг цен запрещен (даже если Вы готовы работать бесплатно). Цены обсуждаются в приватном общении. Если вы готовы рещить задачу бесплатно, просто решите ее быстрее, чем возникнет предложение сделать это за деньги.
6. Пользователям, входящим в группу Newbie, запрещается предлагать свои услуги (завуалированно в т.ч.)
7. В посте с предложением выполнить работу, обязательно указывать ссылку на свое портфолио в Отзывы, Благодарности, Портфолио Это правило работает и в том случае, если вы выполняете работу бесплатно.
8. Реклама (даже завуалированная) своих фриланских сайтов запрещена

Нарушение данных пунктов влечет до RO или БАНА (при неоднократом)
Модераторы: ttiger, mikefreelance, Rust
  
    > Нужно, написать 2.bat, который принимает 1 параметр , программа выводит новую дату.ЗАТЕМ День создания файла больше чем тот день ( чем полученный день).
      Здравствуйте, помогите,пожалуйста. Есть 1.bat в нем написана программа расчета даты (определение текущей даты, затем прибавление или вычитание заданное кол-во дней).Пример: сегодня 20.05.2017, мы запускаем файл
      1.bat 6
      результат будет
      26.05.2016
      если 1.bat -8
      результат будет
      12.05.2017
      Нужно, написать 2.bat, который принимает 1 параметр - целое число (отрицательное или положительное). При запуске 2.bat, запускается предыдущий батник (1.bat), 2.bat передает ему целое число (отрицательное или положительное),программа выводит новую дату.ЗАТЕМ День создания файла больше чем тот день ( чем полученный день).
      1.bat код ниже
      Помогите, пожалуйста!
      @echo off
      echo.
      if not "%OS%"=="Windows_NT" goto syntax
      set error=0
      if "%1"=="" goto syntax
      if not "%3"=="" goto syntax
      for /f "tokens=4" %%a in ('echo. ^| date ^| find "дата*"') do set pDate=%%a
      if "%2"=="" (
      set cDate=%pDate%
      set cDays=%1
      ) else (
      set cDate=%1
      set cDays=%2
      )

      call :ReadDateFormat

      (echo.%cDate%) | findstr /R /B /C:"[0-9]*\%sDate%[0-9]*\%sDate%[0-9]*" >NUL
      if errorlevel 1 (
      echo error: %cDate% - Неправильная дата
      echo.
      goto syntax
      )
      (echo.%cDays%) | findstr /R /B /C:"-*[0-9]*" >NUL
      if errorlevel 1 (
      echo error: %cDays% -Неправильное целое
      echo.
      goto syntax
      )
      call :ParseDate %cDate%
      if %error% NEQ 0 goto syntax
      call :JDate %GYear% %GMonth% %GDay%
      echo Ќ*з*«м**п ¤*в*: %cDate%
      if "%cDays:~0,1%"==" " (
      set /A NewJDate=%JDate% - %cDays:~1%
      echo Кол-во отнытых дней: %cDays:~1%
      ) else (
      set /A NewJDate=%JDate% + %cDays%
      echo Кол-во прибавленных дней: %cDays%
      )
      call :GDate %NewJDate%
      call:ReformatDate %GDate%
      echo Окончательная дата*: %LDate%
      goto:eof
      :ReadDateFormat
      start /W Regedit /E "%TEMP%.\_TEMP.REG" "HKEY_CURRENT_USER\control Panel\International"
      for /f "tokens=1* delims==" %%A in ('TYPE "%TEMP%.\_TEMP.REG"^|find /I "iDate"') do set iDate=%%B
      for /f "tokens=1* delims==" %%A in ('TYPE "%TEMP%.\_TEMP.REG"^|find /I "sDate"') do set sDate=%%B
      DEL "%TEMP%.\_TEMP.REG"
      set iDate=%iDate:"=%
      set sDate=%sDate:"=%
      goto:eof

      :gdate
      set /a p=%1 + 68569
      set /a p1=p*4
      set /a q=p1/146097
      set /a q1=146097*q+3
      set /a r=p-q1/4
      set /a r1=r+1
      set /a r2=4000*r1
      set /a s=r2/1461001
      set /a s1=1461*s
      set /a t=%r%-s1/4+31
      set /a t1=80*t
      set /a u=t1/2447
      set /a v=u/11
      set /a v1=q-49
      set /a v2=2447*u
      set /a gyear=100*v1+s+v
      set /a gmonth=u+2-12*v
      set /a gday=t-v2/80
      for %%a in (p q q1 q2 r r1 r2 s s1 t t1 u v v1 v2) do set %%a=
      if 1%gmonth% LSS 20 set gmonth=0%gmonth%
      if 1%gday% LSS 20 set gday=0%gday%
      set gdate=%gyear% %gmonth% %gday%
      goto:eof

      :jdate
      SET MM=%2
      SET DD=%3
      IF %MM:~0,1% EQU 0 SET MM=%MM:~1%
      IF %DD:~0,1% EQU 0 SET DD=%DD:~1%
      set /a m1=%MM%-14
      SET /A Month1=m1/12
      SET /A Year1=%1+4800
      set /a b1=%Year1%+%Month1%
      set /a b2=1461*b1
      set /a b=b2/4
      set /a c1=%MM%-2-12*%Month1%
      set /a c2=367*c1
      set /a c=c2/12
      set /a d1=%Year1%+%Month1%+100
      set /a d2=d1/100
      set /a d3=3*d2
      set /a d=d3/4
      set /a jdate=b+c-d+%DD%-32075
      For %%A in (Month1 Year1 b b1 b2 c c1 c2 d d1 d2 d3) do set %%A=
      goto:eof
      :ParseDate
      IF %iDate%==0 For /f "tokens=1-3 delims=%sDate%" %%A in ('echo.%1') DO (
      SET GYear=%%C
      SET GMonth=%%A
      SET GDay=%%B
      )
      IF %iDate%==1 For /f "tokens=1-3 delims=%sDate%" %%A in ('echo.%1') DO (
      SET GYear=%%C
      SET GMonth=%%B
      SET GDay=%%A
      )
      IF %iDate%==2 For /f "tokens=1-3 delims=%sDate%" %%A in ('echo.%1') DO (
      SET GYear=%%A
      SET GMonth=%%B
      SET GDay=%%C
      )
      IF %GDay% GTR 31 set error=1
      IF %GMonth% GTR 12 set error=1
      goto:eof
      :ReadDateFormat
      start /W Regedit /E "%TEMP%.\_TEMP.REG" "HKEY_CURRENT_USER\Control Panel\International"
      for /f "tokens=1* delims==" %%A in ('type %TEMP%.\_TEMP_REG"^| find /I "iDate"') do set iDate=%%B
      for /f "tokens=1* delims==" %%A in ('type %TEMP%.\_TEMP_REG"^| find /I "sDate"') do set iDate=%%B
      DEL "%TEMP%.\_TEMP.REG"
      SET iDate=%iDate:"=%
      SET sDate=%sDate:"=%
      goto:eof

      :ReformatDate
      If %iDate%==0 set LDate=%2%sDate%%3%sDate%%1
      If %iDate%==1 set LDate=%3%sDate%%2%sDate%%1
      If %iDate%==2 set LDate=%1%sDate%%2%sDate%%3
      goto:eof

      :syntax
      echo dateadd.bat - программа прибавления (вычитание) указанного количества дней
      echo k (от) Указанной даты. Если дата не указана, то берется текущая дата
      echo Пример запуска:
      echo dateadd 12.03.2009 42
      echo.
      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script execution time: 0,1335 ]   [ 15 queries used ]   [ Generated: 28.03.24, 18:10 GMT ]