<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; VBS: Вычисление даты с учетом по дням недели]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=8375</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=8375&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «VBS: Вычисление даты с учетом по дням недели».]]></description>
		<lastBuildDate>Mon, 10 Jun 2013 18:20:24 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: VBS: Вычисление даты с учетом по дням недели]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=72896#p72896</link>
			<description><![CDATA[<div class="quotebox"><cite>Rom5 пишет:</cite><blockquote><div class="quotebox"><cite>xsanekk пишет:</cite><blockquote><p>У меня вопрос к Rom5 как в скрипте убрать время? а то формат лишнее часы секунды и миллисекунды</p></blockquote></div><p>Можно, например, простейшим усечением строки до первых 10ти символов:</p></blockquote></div><p>Использовать «Date()» вместо «Now()» <img src="//forum.script-coding.com/img/smilies/wink.png" width="15" height="15" />.</p><div class="quotebox"><cite>Rom5 пишет:</cite><blockquote><p>А можно и форматированием через &quot;FormatDateTime(dateOrTime, format)&quot;:</p></blockquote></div><p>У меня несколько по другому:<br /></p><div class="quotebox"><blockquote><p>The <em>NamedFormat</em> argument has the following settings:</p><p>vbGeneralDate&nbsp; &nbsp; 0&nbsp; &nbsp; Display a date and/or time. If there is a date part, display it as a short date. If there is a time part, display it as a long time. If present, both parts are displayed.<br />vbLongDate&nbsp; &nbsp; 1&nbsp; &nbsp; Display a date using the long date format specified in your computer&#039;s regional settings.<br />vbShortDate&nbsp; &nbsp; 2&nbsp; &nbsp; Display a date using the short date format specified in your computer&#039;s regional settings.<br />vbLongTime&nbsp; &nbsp; 3&nbsp; &nbsp; Display a time using the time format specified in your computer&#039;s regional settings.<br />vbShortTime&nbsp; &nbsp; 4&nbsp; &nbsp; Display a time using the 24-hour format (hh:mm).</p></blockquote></div>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Mon, 10 Jun 2013 18:20:24 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=72896#p72896</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: Вычисление даты с учетом по дням недели]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=72888#p72888</link>
			<description><![CDATA[<p>Можно, например, простейшим усечением строки до первых 10ти символов:<br /></p><div class="codebox"><pre><code>msgbox Left(now(),10),, &quot;Left(now(),10)&quot;</code></pre></div><p>А можно и форматированием через &quot;FormatDateTime(dateOrTime, format)&quot;:</p><div class="codebox"><pre><code>msgbox FormatDateTime(now(), 1),, &quot;FormatDateTime(now(), 1)&quot;
msgbox FormatDateTime(now(), 2),, &quot;FormatDateTime(now(), 2)&quot;</code></pre></div><p>&#039; The format parameter can take a value from 0 - 4, each value signifying a different type of formatting: </p><p>&#039; 0 (used for dates) - display a date in the format mm/dd/yy (default)<br />&#039; 1 (used for dates) - display a date in the format day, month and month day, year<br />&#039; 2 (used for dates) - display a date in the format mm/dd/yy (default (same as 0))<br />&#039; 3 (used for time) - display time in the format hh:mm:ss: PM/AM (12 hour format)<br />&#039; 4 (used for time) - display time in the format hh:mm (24 hour format)</p>]]></description>
			<author><![CDATA[null@example.com (Rom5)]]></author>
			<pubDate>Mon, 10 Jun 2013 14:49:58 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=72888#p72888</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: Вычисление даты с учетом по дням недели]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=72882#p72882</link>
			<description><![CDATA[<p>Спасибо Rom5 и alexii все работает!!!</p><p>У меня вопрос к Rom5 как в скрипте убрать время? а то формат лишнее часы секунды и миллисекунды</p>]]></description>
			<author><![CDATA[null@example.com (xsanekk)]]></author>
			<pubDate>Mon, 10 Jun 2013 13:14:27 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=72882#p72882</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: Вычисление даты с учетом по дням недели]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=72810#p72810</link>
			<description><![CDATA[<p><strong>alexii</strong><br />номера дней недели - избыточная информация и читабельности не прибавляет. <br /></p><div class="codebox"><pre><code>
DateAdd(&quot;d&quot;, _
    Array(-2, -3, -1, -1, -1, -1, -1)(Weekday(dtDate) - 1), _
    dtDate)
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Rumata)]]></author>
			<pubDate>Thu, 06 Jun 2013 15:30:44 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=72810#p72810</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: Вычисление даты с учетом по дням недели]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=72808#p72808</link>
			<description><![CDATA[<p>Однострочная функция («dtDate» — значение даты) <img src="//forum.script-coding.com/img/smilies/wink.png" width="15" height="15" />:<br /></p><div class="codebox"><pre><code>DateAdd(&quot;d&quot;, Array(Array(vbSunday, -2), Array(vbMonday, -3), Array(vbTuesday, -1), Array(vbWednesday, -1), Array(vbThursday, -1), Array(vbFriday, -1), Array(vbSaturday, -1))(Weekday(dtDate) - 1)(1), dtDate)</code></pre></div><div class="quotebox"><cite>Rom5 пишет:</cite><blockquote><p>ps. о, продублировал чутьли не буква в букву)</p></blockquote></div><p>Значит, движемся в одном направлении <img src="//forum.script-coding.com/img/smilies/wink.png" width="15" height="15" />.</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Thu, 06 Jun 2013 14:50:05 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=72808#p72808</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: Вычисление даты с учетом по дням недели]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=72803#p72803</link>
			<description><![CDATA[<div class="codebox"><pre><code>
&#039; dtNow = Now()
dtNow = now() + 4 &#039;для теста перепрыгнем на неск.дней вперд&#039;

weekDayNow = WeekDay(dtNow) &#039;номер дня недели сейчас: 1 - Вс, 2- Пн, ... 7 - Сб&#039;

Select Case weekDayNow
    Case 1 &#039; Вс&#039;
        diffDay = -2
    Case 2 &#039; Пн&#039;
        diffDay = -3
    Case Else
        diffDay = -1
End Select

&#039; MsgBox weekDayNow,, &quot;weekDayNow&quot;

dtPrev = DateAdd(&quot;w&quot;, diffDay, dtNow)

MsgBox &quot;Определен день - &quot; &amp; (dtPrev) &amp; vbCrLf &amp;_
    &quot;День недели полученной даты: &quot; &amp; WeekdayName( WeekDay(dtPrev) )  &amp; vbCrLf  &amp; vbCrLf &amp;_
    &quot;Стартовая дата - &quot; &amp; (dtNow) &amp; vbCrLf &amp;_
    &quot;День недели стартовой даты: &quot; &amp; WeekdayName( WeekDay(dtNow) )   &amp; vbCrLf &amp;_
    &quot;Разница: &quot; &amp; CStr(diffDay),,&quot;&quot;
</code></pre></div><p>ps. о, продублировал чутьли не буква в букву)</p>]]></description>
			<author><![CDATA[null@example.com (Rom5)]]></author>
			<pubDate>Thu, 06 Jun 2013 14:09:06 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=72803#p72803</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: Вычисление даты с учетом по дням недели]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=72802#p72802</link>
			<description><![CDATA[<p>Попробуйте так:<br /></p><div class="codebox"><pre><code>Option Explicit

Dim i
Dim dtPrevWorkDate

For i = #04/01/2013# To #05/01/2013#
    dtPrevWorkDate = GetPrevWorkDate(i)
    WScript.Echo i, WeekdayName(Weekday(i)), vbTab, &quot;---&gt;&quot;, dtPrevWorkDate, WeekdayName(Weekday(dtPrevWorkDate))
Next

WScript.Quit 0

Function GetPrevWorkDate(dtDate)
    Dim intDiff
    
    Select Case Weekday(dtDate)
        Case vbMonday
            intDiff = -3
        Case vbTuesday, vbWednesday, vbThursday, vbFriday, vbSaturday
            intDiff = -1
        Case vbSunday
            intDiff = -2
    End Select
    
    GetPrevWorkDate = DateAdd(&quot;d&quot;, intDiff, dtDate)
End Function</code></pre></div><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header"><strong>+</strong>&nbsp;Результат</div><div class="fancy_spoiler"><div class="codebox"><pre><code>01.04.2013 понедельник      ---&gt; 29.03.2013 пятница
02.04.2013 вторник      ---&gt; 01.04.2013 понедельник
03.04.2013 среда      ---&gt; 02.04.2013 вторник
04.04.2013 четверг      ---&gt; 03.04.2013 среда
05.04.2013 пятница      ---&gt; 04.04.2013 четверг
06.04.2013 суббота      ---&gt; 05.04.2013 пятница
07.04.2013 воскресенье      ---&gt; 05.04.2013 пятница
08.04.2013 понедельник      ---&gt; 05.04.2013 пятница
09.04.2013 вторник      ---&gt; 08.04.2013 понедельник
10.04.2013 среда      ---&gt; 09.04.2013 вторник
11.04.2013 четверг      ---&gt; 10.04.2013 среда
12.04.2013 пятница      ---&gt; 11.04.2013 четверг
13.04.2013 суббота      ---&gt; 12.04.2013 пятница
14.04.2013 воскресенье      ---&gt; 12.04.2013 пятница
15.04.2013 понедельник      ---&gt; 12.04.2013 пятница
16.04.2013 вторник      ---&gt; 15.04.2013 понедельник
17.04.2013 среда      ---&gt; 16.04.2013 вторник
18.04.2013 четверг      ---&gt; 17.04.2013 среда
19.04.2013 пятница      ---&gt; 18.04.2013 четверг
20.04.2013 суббота      ---&gt; 19.04.2013 пятница
21.04.2013 воскресенье      ---&gt; 19.04.2013 пятница
22.04.2013 понедельник      ---&gt; 19.04.2013 пятница
23.04.2013 вторник      ---&gt; 22.04.2013 понедельник
24.04.2013 среда      ---&gt; 23.04.2013 вторник
25.04.2013 четверг      ---&gt; 24.04.2013 среда
26.04.2013 пятница      ---&gt; 25.04.2013 четверг
27.04.2013 суббота      ---&gt; 26.04.2013 пятница
28.04.2013 воскресенье      ---&gt; 26.04.2013 пятница
29.04.2013 понедельник      ---&gt; 26.04.2013 пятница
30.04.2013 вторник      ---&gt; 29.04.2013 понедельник
01.05.2013 среда      ---&gt; 30.04.2013 вторник
</code></pre></div></div></div>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Thu, 06 Jun 2013 14:03:41 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=72802#p72802</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: Вычисление даты с учетом по дням недели]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=72800#p72800</link>
			<description><![CDATA[<p>я иак понимаю надо копать в сторону DateDiff?</p>]]></description>
			<author><![CDATA[null@example.com (xsanekk)]]></author>
			<pubDate>Thu, 06 Jun 2013 13:51:09 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=72800#p72800</guid>
		</item>
		<item>
			<title><![CDATA[VBS: Вычисление даты с учетом по дням недели]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=72799#p72799</link>
			<description><![CDATA[<p>Добрый день!</p><p>Подскажите пожалуйста, требуется вычислить день недели, и отнять от него один день, условие что день не должен попадать на выходные то есть субботу или воскресенье... </p><p>Например, если сегодня понедельник то дата должна быть пятницей, если вторник то отнимаем день и получается понедельник...</p><div class="codebox"><pre><code>

Dim perem, DateADD, DateEnd            &#039; Ввели переменную
   DD=Day(Now())      &#039; Now() - это стандартная функция VBScript даты
    If DD &lt; 10 Then
       DD = &quot;0&quot; &amp; DD   &#039; Проверка текущей даты и добавление слева нуля
    End If
   MM=Month(Now())
    If MM &lt; 10 Then
       MM=&quot;0&quot; &amp; MM    &#039; Добавление нуля перед числом, если оно меньше 10
    End If
   GG=Year(Now())
            perem1 = DD &amp; &quot;.&quot; &amp; MM &amp; &quot;.&quot; &amp; GG
            DateEnd = GG &amp; &quot;-&quot; &amp; MM &amp; &quot;-&quot; &amp; DD
            DateAdd = GG &amp; &quot;-&quot; &amp; MM &amp; &quot;-&quot; &amp; DD

</code></pre></div><p>как раз DateAdd это есть тот день который надо вычислять...</p>]]></description>
			<author><![CDATA[null@example.com (xsanekk)]]></author>
			<pubDate>Thu, 06 Jun 2013 13:45:10 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=72799#p72799</guid>
		</item>
	</channel>
</rss>
