Ветеран
Сообщения: 2728
Благодарности: 1697
|
Профиль
|
Отправить PM
| Цитировать
Serguei Kouzmine,
Цитата Serguei Kouzmine:
можно посоревноваться ... »
|
Я не игрок, я болельщик, выкрик с зрительной трибуны:
Чистый CMD
Код:
@Echo Off
cls
Set "DeltaDay=362"
Call :FromDate %DeltaDay% %Date% "yyyymmdd"
Echo %Date% %DeltaDay% %yyyymmdd%
pause
GoTo :Eof
:FromDate
rem Пересчет даты на заданное кол-во дней
rem В первом аргументе +- дни
rem Во втором аргументе дата в формате dd.mm.yyyy
rem В третем аргументе имя переменной в кавычках где получим новую дату в формате yyyymmdd
rem Заимствовано http://forum.oszone.net/thread-186889.html
rem вызов Call :FromNow %DeltaDay% %Date% "yyyymmdd"
rem результат в перемменной %yyyymmdd%
SetLocal
Set "DT=%~2"
Set yyyy=%DT:~-4%& set /a mm=100%DT:~3,2%%%100& set /a dd=100%DT:~,2%%%100
Set /A JD=%~1+dd-32075+1461*(yyyy+4800+(mm-14)/12)/4+367*(mm-2-(mm-14)/12*12)/12-3*((yyyy+4900+(mm-14)/12)/100)/4
Set /A L=JD+68569,N=4*L/146097,L=L-(146097*N+3)/4,I=4000*(L+1)/1461001
Set /A L=L-1461*I/4+31,J=80*L/2447,K=L-2447*J/80,L=J/11
Set /A J=J+2-12*L,I=100*(N-49)+I+L
Set /A yyyy=I,mm=100+J,dd=100+K
EndLocal& Set "%~3=%yyyy%%mm:~-2%%dd:~-2%"
GoTo :Eof
CMD+JS
Код:
@set @E=1; /*
@Echo Off
cls
Set /A N=362
cscript //NoLogo /E:jscript "%~dpnx0" 362
Set /A NewDate=%ErrorLevel%
Echo Сегодня %Date% плюс %N% = %NewDate%
pause
Exit /B
*/
var oArg = WScript.Arguments;
var Dt=new Date(); //Текущая дата
var DtMinus=new Date(Dt.getTime()+oArg(0)*24*60*60*1000); //Дата, отстоящая от текущей на указ кол-во дней
var Yea=DtMinus.getFullYear(),
Mon=DtMinus.getMonth()+1,
Dat=DtMinus.getDate();
var StrMinus=""+Yea;
if (Mon>9) StrMinus+= Mon; else StrMinus+="0"+Mon;
if (Dat>9) StrMinus+= Dat; else StrMinus+="0"+Dat;
WScript.Quit(StrMinus);
Вообще-то надо было получить дату в виде YYYYMM, где YYYYMM - это прошлый месяц. Так что всё это из разряда: "Старый Мазай разболтался в сарае"
|
-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.
Отправлено: 14:08, 03-01-2023
| #10
|