<?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=7851</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=7851&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «VBS: Определение последнего рабочего дня в месяце».]]></description>
		<lastBuildDate>Fri, 07 Dec 2012 03:34:59 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: VBS: Определение последнего рабочего дня в месяце]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=66761#p66761</link>
			<description><![CDATA[<p>Праздничных дней, приходящихся на конец месяца в 2013 году нет.<br />Вот источник <span class="postimg"><img src="http://eduscan.net/help/images/calendar2013.png" alt="http://eduscan.net/help/images/calendar2013.png" /></span></p>]]></description>
			<author><![CDATA[null@example.com (Евген)]]></author>
			<pubDate>Fri, 07 Dec 2012 03:34:59 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=66761#p66761</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: Определение последнего рабочего дня в месяце]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=66751#p66751</link>
			<description><![CDATA[<p>Функция с использованием словаря исключений. в 2013 году таких исключений <span class="bbu">пока </span>не запланировано.</p><div class="codebox"><pre><code>
Function LastWDay(dDate)
&#039;------------------------------------------------------------
&#039; возвращает последний рабочий день месяца для указанной даты
&#039;------------------------------------------------------------
    &#039; xDays - словарь нестандартных дней 
    &#039; записываем в него праздники (1) или &quot;черные&quot; суб/вск (0)
    Dim xDays : set xDays = CreateObject(&quot;Scripting.Dictionary&quot;)
    xDays(#2012-04-30#)=1
    xDays(#2012-04-28#)=0
    xDays(#2012-12-31#)=1
    xDays(#2012-12-29#)=0


    &#039; получаем последний день месяца
    LastWDay=DateAdd(&quot;m&quot;,1,dDate)-day(dDate)

    do while true          
       if xDays.Exists(LastWDay) then 
          &#039; Проверим по словарю:
          &#039; если это рабочий день, то , выходим
          if xDays(LastWDay)=0 then Exit Do
          &#039; праздник? ищем дальше
          LastWDay=LastWDay-1            
       elseif WeekDay(LastWDay,2)&gt;5 then
          &#039; если попадаем на выходные, то шаг назад
          LastWDay=LastWDay-1 
       else
           Exit Do
       end if
    loop 
End Function

</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (yuriy2000)]]></author>
			<pubDate>Thu, 06 Dec 2012 19:06:14 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=66751#p66751</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: Определение последнего рабочего дня в месяце]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=66745#p66745</link>
			<description><![CDATA[<p>Сперва нужно правильно сформулировать задачу,&nbsp; а то&nbsp; может получится как в этом описании <a href="http://www.businessballs.com/treeswing.htm"> &quot;покрышка на веревке&quot;</a>:</p><p>А&nbsp; что если в конце месяца будут праздничные дни или суббота/воскресенье будут рабочими?</p><br /><p>функция, приведенная ниже, вернет последний рабочий &quot;понедельник-пятницу&quot; в этом месяце.<br /></p><div class="codebox"><pre><code>
function LastWDay(dDate)
       &#039; получаем последний день месяца
       LastWDay=DateAdd(&quot;m&quot;,1,dDate)-day(dDate)
       &#039; если попадаем на субботу/воскресенье, то пару шагов назад
       if WeekDay(LastWDay,2)&gt;5 then LastWDay=LastWDay-(WeekDay(LastWDay,2)-5)

end function
</code></pre></div><p>если нужен реально последний рабочий день - то нужно добавить проверку по словарю...</p>]]></description>
			<author><![CDATA[null@example.com (yuriy2000)]]></author>
			<pubDate>Thu, 06 Dec 2012 14:46:22 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=66745#p66745</guid>
		</item>
		<item>
			<title><![CDATA[VBS: Определение последнего рабочего дня в месяце]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=66696#p66696</link>
			<description><![CDATA[<p>Сегодня поставили задачу, отправлять базу в последний рабочий день месяца, начал рыться в календарях и органайзерах - нет такого события и определения, для того, чтобы запланировать напоминалку, поэтому решил нацарапать сам скриптец для оного определения. Воткнул в шедулер и забыл <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /><br />Получилось вот что... (может кому пригодиться)<br /></p><div class="codebox"><pre><code>currDay=Date()
currMonth=Month(currDay)
currYear=Year(currDay)

If currMonth=12 Then
    currMonth=1
    currYear=currYear+1
Else
    currMonth=currMonth+1
End If

LastDay=DateAdd(&quot;d&quot;,-1,DateSerial(currYear,currMonth,1))
currMonth=Month(LastDay)
currYear=Year(LastDay)

For i=Day(LastDay) To 1 Step -1
    oneDay=Weekday(DateSerial(currYear,currMonth,i),2)
        If oneDay&gt;=1 and oneDay&lt;=5 Then
            If DateSerial(currYear,currMonth,i)=currDay Then
                Msgbox &quot;Сегодня последний рабочий день месяца !!!&quot; &amp; VbCr &amp; &quot;Нужно отправить базу по очереди !!!&quot;
            End If
            Exit For
        End If
Next</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Евген)]]></author>
			<pubDate>Thu, 06 Dec 2012 04:23:25 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=66696#p66696</guid>
		</item>
	</channel>
</rss>
