Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
bat. Помогите с решением... Вычисление даты - 6 дней, если попадает на предыдущий месяц
|
|||
|---|---|---|---|
|
#18+
Всем привет. Столкнулся с такой проблемой, что не могу понять, как вычислить дату... Использовал скрипт указанный ниже Код: powershell 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2018, 09:48 |
|
||
|
bat. Помогите с решением... Вычисление даты - 6 дней, если попадает на предыдущий месяц
|
|||
|---|---|---|---|
|
#18+
AsterixM, другой год? 30 февраля? 31 июня? В батнике муторно писать логику. Если запутался, нарисуй на бумаге схему всех вариантов, без "оптимизаций". В помощь SHIFT предопределённые переменные среды на каждый yyyy, mm, dd внешний ехе/питон/пхп/vscript/jscript (в винде) с потоковым входм / выходом (либо читающее/пишущее в переменные среды), т.к. в ЯП легко пишется с библиотечными ф-циями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2018, 11:33 |
|
||
|
bat. Помогите с решением... Вычисление даты - 6 дней, если попадает на предыдущий месяц
|
|||
|---|---|---|---|
|
#18+
Вычисление даты - 6 дней, если попадает на предыдущий месяц 1) Получить текущий день D 2) Получить текущий месяц M и год Y 3) Получить предыдущий месяц: если M=1, то M=12, Y=Y-1, иначе M=M-1 4) Добавить к дню D количество дней в предыдущем месяце N 5) Вычесть 6 6) Сравнить результат с N 7а) Если больше - отнять, и добавить текущий месяц и год 7б) Иначе - добавить предыдущий месяц и год ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2018, 12:06 |
|
||
|
bat. Помогите с решением... Вычисление даты - 6 дней, если попадает на предыдущий месяц
|
|||
|---|---|---|---|
|
#18+
exp98AsterixM, другой год? 30 февраля? 31 июня? В батнике муторно писать логику. Если запутался, нарисуй на бумаге схему всех вариантов, без "оптимизаций". Согласен...муторно, да и времени особо искать выхода нет. Почему я пришел к этому варианту... В планировщике Windows, настроена задача, которая вызывает exe c входными параметрами(exe уже есть), prog.exe ..... /Param1=StartDate /Param2=FinishDate, где FinishDate - это текущая дата минус 1 день (вчерашний день) StartDate - это FinishDate минус 6 день Понимаю, что в самом проекта exe , можно использовать библиотеку для работы с датами (проще, но не нужно) Нужно просто передавать эти даты и всё... Я не нашел другого варианта, как использовать bat, а в батнике вызывать start .....\prog.exe /Param1=StartDate /Param2=FinishDate, соответственно подготовив сначала для этого переменные FinishDate, StartDate Есть ли другие альтернативы, чтобы можно было бы обойтись без bat, но при этом передавать вычисляемые даты в планировщике? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2018, 12:52 |
|
||
|
bat. Помогите с решением... Вычисление даты - 6 дней, если попадает на предыдущий месяц
|
|||
|---|---|---|---|
|
#18+
AsterixM, за другие возможности не скажу, мне это редко надо, а у себя точно так же вешаю на задание 3-тьестепенную информационную мелочёвку. файл.cmd вызывает другой файл.cmd и/или файл.vbs и т.п. И что мешает прикрутить вызов нормального скрипта? разве что пароли ... Например в одном случае шлю еmail из файл.vbs Для VScript'а/CScript вообще только виндовс и нужен. В командной строке CScript //nologo "wscheck.vbs" -t=1 <bbb >tt Или вот выдрал пример своей логики, только для примера и то не для любых веков/1000-й и только для месяцев Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. для дней в принципе аналогично, c тем усложнением, что вместо 12 будет переменное число 28/29/30/31 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2018, 13:10 |
|
||
|
bat. Помогите с решением... Вычисление даты - 6 дней, если попадает на предыдущий месяц
|
|||
|---|---|---|---|
|
#18+
Нашел интересную ссылку.... кстати, вариант использования VBS в bat https://stackoverflow.com/questions/355425/date-arithmetic-in-cmd-scripting ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2018, 13:13 |
|
||
|
bat. Помогите с решением... Вычисление даты - 6 дней, если попадает на предыдущий месяц
|
|||
|---|---|---|---|
|
#18+
exp98AsterixM, за другие возможности не скажу, мне это редко надо, а у себя точно так же вешаю на задание 3-тьестепенную информационную мелочёвку. файл.cmd вызывает другой файл.cmd и/или файл.vbs и т.п. И что мешает прикрутить вызов нормального скрипта? разве что пароли ... Спасибо... Действительно вариант, единственно я так понимаю, скрипты должны рядом с bat валятся, хотя это не проблема ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2018, 13:17 |
|
||
|
bat. Помогите с решением... Вычисление даты - 6 дней, если попадает на предыдущий месяц
|
|||
|---|---|---|---|
|
#18+
AsterixMЯ не нашел другого варианта, как использовать batПерепиши ВЕСЬ БАТНИК на VBS. Планировщику пофиг, кого запускать и кому параметры передавать. А на VBS прибавлять-отнимать дни от даты - элементарно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2018, 13:25 |
|
||
|
bat. Помогите с решением... Вычисление даты - 6 дней, если попадает на предыдущий месяц
|
|||
|---|---|---|---|
|
#18+
AkinaAsterixMЯ не нашел другого варианта, как использовать batПерепиши ВЕСЬ БАТНИК на VBS. Планировщику пофиг, кого запускать и кому параметры передавать. А на VBS прибавлять-отнимать дни от даты - элементарно... Было уже такое, минус в том, что он в потоке создает ещё wbscript.exe, и было замечено, что он не высвобождает себя, поэтому пришлось отказаться от этой идеи. Примечание: в vbs скрипте создавал объект COM и работал с ним...но отказался от этого подхода. А в найденом примере он также использует vbs, но только для вычисления даты и всё, без использования COM.... Мне этого наверное достаточно будет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2018, 13:33 |
|
||
|
bat. Помогите с решением... Вычисление даты - 6 дней, если попадает на предыдущий месяц
|
|||
|---|---|---|---|
|
#18+
AsterixM , у тебя заявленная задача - запустить EXE с параметрами... какие там СОМ и зависший wbscript? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2018, 13:41 |
|
||
|
bat. Помогите с решением... Вычисление даты - 6 дней, если попадает на предыдущий месяц
|
|||
|---|---|---|---|
|
#18+
Akina, ну зачем ругаться ? :) Признаюсь! Виноват, что ушел немного от обозначенной мною темы. Сейчас попробую исправить свой bat, и отпишусь о результатах ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2018, 13:51 |
|
||
|
bat. Помогите с решением... Вычисление даты - 6 дней, если попадает на предыдущий месяц
|
|||
|---|---|---|---|
|
#18+
Раз пошла такая пьянка , то угадаю эту мелодию за 3 строки на С http://www.cplusplus.com/reference/ctime/mktime/ http://www.cplusplus.com/reference/ctime/localtime/ :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2018, 22:51 |
|
||
|
bat. Помогите с решением... Вычисление даты - 6 дней, если попадает на предыдущий месяц
|
|||
|---|---|---|---|
|
#18+
cmd @echo off SETLOCAL ENABLEEXTENSIONS if "%1"=="" ( start notepad %~f0 & exit /b ) if "%1"=="0" ( start notepad %~f0 & exit /b ) set SP= if not "%2"=="" (del ~DEFINEDx >nul 2>nul & set SP=%~2) rem %2: '-' или '/' set /A PM=%1 if %PM% GTR 0 ( set /A Delta=1 ) else ( set /A Delta=-1 ) set /A YYYY=%DATE:~0,4% set /A MM=1%DATE:~5,2%-100 rem MM: __010203040506070809101112 set MD28=__312831303130313130313031 set MD29=__312931303130313130313031 rem 0 0 0 0 0 1 1 1 1 1 2 2 2 rem 0 2 4 6 8 0 2 4 6 8 0 2 4 rem ====================================================== set SMDD= set /A Z = %YYYY% %% 4 if %Z%==0 ( set SMDD=%MD29% ) else ( set SMDD=%MD28% ) set /A P=2*%MM% set /A MaxDD=0 call :X %%SMDD%:~%P%,2%% rem ! echo ====================================================== set Q= set /A N=1 set /A DD=1%DATE:~8,2%-100 :Loop set /A DD=%DD%+%Delta% if %DD% GTR %MaxDD% ( call :Y set /A DD=1 ) if %DD% LSS 1 ( call :Y ) set /A TD=100+%DD% set /A TM=100+%MM% if "%Q%"=="X" echo N=%N% %YYYY%-%TM:~1,2%-%TD:~1,2% if "%2"=="" echo %YYYY%-%TM:~1,2%-%TD:~1,2% if "%3"=="" ( echo %YYYY%%SP%%TM:~1,2%%SP%%TD:~1,2%>>~DEFINEDx ) else ( echo %YYYY%%SP%%TM:~1,2%%SP%%TD:~1,2%) set /A N=%N%+1 set /A PM=%PM%-%Delta% set Q= if %PM% NEQ 0 goto :Loop exit /b rem ========================================================== :X set /A MaxDD=%1 set /A DD=%1 rem set Q=X exit /b rem ========================================================== :Y set /A MM=%MM%+%Delta% if %MM% GTR 12 ( set /A YYYY=%YYYY%+%Delta% & set /A MM=1) if %MM% LSS 1 ( set /A YYYY=%YYYY%+%Delta% & set /A MM=12) set /A Z=%YYYY% %% 4 if %Z%==0 ( set SMDD=%MD29% ) else ( set SMDD=%MD28% ) set /A P=2*%MM% call :X %%SMDD%:~%P%,2%% exit /b ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2018, 12:06 |
|
||
|
bat. Помогите с решением... Вычисление даты - 6 дней, если попадает на предыдущий месяц
|
|||
|---|---|---|---|
|
#18+
На powershell который преинсталлирован начиная с windows 7 / Server 2008 R2 Код: powershell 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2018, 16:11 |
|
||
|
bat. Помогите с решением... Вычисление даты - 6 дней, если попадает на предыдущий месяц
|
|||
|---|---|---|---|
|
#18+
автор@echo off rem Вычисление дня недели: 0-воскресенье, 1-понедельник, ... rem days [+|-] day set /A YYYY=%DATE:~0,4% set /A MM=%DATE:~5,2% set /A DD=%DATE:~8,2% set /A A = (14 - %MM%) / 12 set /A B = %YYYY% - %A% set /A C = %MM% + (12 * %A%) - 2 set /A days = %1 + %DD% + %B% + (%B% / 4) - (%B% / 100) + (%B% / 400) + ((31 * %C%) / 12) rem echo days=%days% set /A week = %days% %% 7 echo week=%week% ночь, просидел./так давно, довольно, тяжола Формула/, для в понятья с остатки.., и случайно в BIOS, узрел ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2018, 17:56 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=39597390&tid=1340164]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
164ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 281ms |
| total: | 545ms |

| 0 / 0 |
