<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; CMD/BAT: Получения даты двухнедельной давности]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=7700&amp;type=atom" />
	<updated>2012-10-27T11:18:30Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=7700</id>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Получения даты двухнедельной давности]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=65170#p65170" />
			<content type="html"><![CDATA[<p>forfiles</p>]]></content>
			<author>
				<name><![CDATA[smaharbA]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=2911</uri>
			</author>
			<updated>2012-10-27T11:18:30Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=65170#p65170</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Получения даты двухнедельной давности]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=65141#p65141" />
			<content type="html"><![CDATA[<p>Если с помощью скрипта, который сам создаётся из батника, гораздо кошернее получается.</p>]]></content>
			<author>
				<name><![CDATA[roma351234567890]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27553</uri>
			</author>
			<updated>2012-10-26T14:55:07Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=65141#p65141</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Получения даты двухнедельной давности]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=64765#p64765" />
			<content type="html"><![CDATA[<p>Взято с <a href="http://forum.oszone.net/post-1203277.html">http://forum.oszone.net/post-1203277.html</a></p><p>Выкинул что мне не нужно.</p><div class="codebox"><pre><code>@Echo Off
Set $OLD=25
:: Находим текущие день/месяц/год
For /F &quot;Tokens=1&quot; %%i In (&#039;WMIC OS Get LocalDateTime^,Version^|Find &quot;.&quot;&#039;) Do Set DateTime=%%i
Set $Y=%DateTime:~0,4%
If &quot;%DateTime:~4,1%&quot;==&quot;0&quot; (Set $M=%DateTime:~5,1%) Else (Set $M=%DateTime:~4,2%)
If &quot;%DateTime:~6,1%&quot;==&quot;0&quot; (Set $D=%DateTime:~7,1%) Else (Set $D=%DateTime:~6,2%)
:: Откатываем дату назад на $OLD дней
Call :GetOldDate %$OLD%
:: Выход
EXIT

:GetOldDate
:: -----------------------------------
:: Расчет даты, предшествующей текущей
:: заданное количество дней (&lt; 29)
:: -----------------------------------
 Set /A $D -= %1
 If %$D% GTR 0 GoTo GetOldDate_2
:: Месяц, год, дней в месяце
 Set /A $M=%$M%+11-((%$M%+10)/12)*12
 If %$M% EQU 12 Set /A $Y-=1
 For /F &quot;Tokens=%$M%&quot; %%i In (&quot;31 28 31 30 31 30 31 31 30 31 30 31&quot;) Do Set $X=%%i
 If %$M% NEQ 2 GoTo GetOldDate_1
:: Февраль високосного года
 Set /A $B1=%$Y%-(%$Y%/4)*4
 Set /A $B2=%$Y%-(%$Y%/100)*100
 Set /A $B3=%$Y%-(%$Y%/400)*400
 If 0 EQU %$B1% If 0 NEQ %$B2% Set /A $X+=1
 If 0 EQU %$B3% Set /A $X+=1
:: День месяца
:GetOldDate_1
 Set /A $D=%$D%+%$X%-((%$D%+%$X%-1)/%$X%)*%$X%
:: Форматирование даты
:GetOldDate_2
 Set $M=0%$M%&amp;Set $D=0%$D%
 Set $M=%$M:~-2%&amp;Set $D=%$D:~-2%
 Set DateTime=%$Y%%$M%%$D%%DateTime:~8%
GoTo :EOF</code></pre></div>]]></content>
			<author>
				<name><![CDATA[werthk]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=28825</uri>
			</author>
			<updated>2012-10-15T04:09:13Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=64765#p64765</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[CMD/BAT: Получения даты двухнедельной давности]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=64764#p64764" />
			<content type="html"><![CDATA[<p>Здравствуйте.<br />Столкнулся с необходимостью вычисления даты двухнедельной давности.<br />К сожалению пока опыта мало, код тупой, но почти едет.</p><div class="codebox"><pre><code>set Day=%date:~0,2%
set Month=%date:~3,2%
set Year=%date:~-4%
set /a Day=%Day%-14
if %Day% lss 0 (set /a Month=%Month%-1
                if %Month% equ 01 (set /a Day=%Day%+31)
                if %Month% equ 03 (set /a Day=%Day%+31)
                if %Month% equ 05 (set /a Day=%Day%+31)
                if %Month% equ 07 (set /a Day=%Day%+31)
                if %Month% equ 08 (set /a Day=%Day%+31)
                if %Month% equ 10 (set /a Day=%Day%+31)
                if %Month% equ 12 (set /a Day=%Day%+31)
 
                if %Month% equ 04 (set /a Day=%Day%+30)
                if %Month% equ 06 (set /a Day=%Day%+30)
                if %Month% equ 09 (set /a Day=%Day%+30)
                if %Month% equ 11 (set /a Day=%Day%+30)

                if %Month% equ 02 (if %Year% equ 2012 (set /a Day=%Day%+29)
                                   if %Year% equ 2016 (set /a Day=%Day%+29)
                                   if %Year% equ 2020 (set /a Day=%Day%+29)
                                   else (set /a Day=%Day%+28)
                                  )
               )</code></pre></div><p>Проблема в том что двузначные которые должны иметь вид 0X получаются вида X.<br />Подскажите как подправить, или может более простой способ решения данной задачи.<br />Заранее большое спасибо!</p>]]></content>
			<author>
				<name><![CDATA[werthk]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=28825</uri>
			</author>
			<updated>2012-10-15T03:21:46Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=64764#p64764</id>
		</entry>
</feed>
