switch services round expresiones concatenar reporting-services vbscript

reporting services - services - Cómo calcular el último día hábil del mes en VBScript



round reporting services (4)

¿Cómo calculo el último día hábil del mes en VBScript? Es para un informe de Reporting Services.

Gracias


Aquí hay un buen artículo de CodeProject: Trabajar con fechas comerciales (feriados / fines de semana de negocios, etc.) .

Este proyecto tiene como objetivo aliviar los problemas para determinar fechas de negocios válidas. Incluye algunas funciones que he creado para determinar si la fecha es festiva o de fin de semana, y también para recuperar el día hábil siguiente o el último. También hay una función para encontrar el último día de un mes determinado.

Function LastBusinessDay(sDate) Dim iDay, iDaysToAdd, iDate iDaysToAdd = 0 iDate = sDate x = 1 Do while iDaysToAdd >= 0 If Weekday(iDate) = 1 or Weekday(iDate) = 7 or _ isHoliday(iDate) <> 0 then iDay = Weekday(iDate) Select Case cint(iDay) Case 1 ''Sunday iDate = DateAdd("d", -1, iDate) Case 7 ''Saturday iDate = DateAdd("d", -1, iDate) Case else ''this is a valid day if isHoliday(iDate) > 0 then iDate = dateadd("d", -(isHoliday(iDate)), iDate) else iDaysToAdd = iDaysToAdd - 1 end if End Select end if Loop LastBusinessDay = iDate End Function

PD: Encontrarás las funciones LastDayOfMonth y isHoliday en el artículo.


Qué tal si:

intMonth=11 ''Use zero to return last day of previous month '' LastDayOfMonth= dateserial(2008,intMonth+1,0) ''Saturday '' If WeekDay(LastDayOfMonth,1)=7 Then LastDayOfMonth=LastDayOfMonth-1 ''Sunday '' If WeekDay(LastDayOfMonth,1)=1 Then LastDayOfMonth=LastDayOfMonth-2 Msgbox LastDayOfMonth & " " & Weekdayname(Weekday(LastDayOfMonth,1),1)


Si se refiere al último día de la semana del mes (MF), intente:

Dim d d = DateAdd("m", 1, Now) d = Month(d) & "/1/" & Year(d) d = DateAdd("d", -1, d) If Weekday(d) = 7 Then d = DateAdd("d", -1, d) ElseIf Weekday(d) = 1 Then d = DateAdd("d", -2, d) End If MsgBox d


Aquí hay una solución para cualquiera que esté buscando obtener el último día hábil del mes anterior.

Dim lastbusinessdayofprevmonth Sub GetLastDay() Dim curdate curdate = Date() Dim firstdayofcurmonth firstdayofcurmonth = Month(curdate) & "/1/" & Year(curdate) Dim lastdayofprevmonth lastdayofprevmonth = DateAdd("d", -1, firstdayofcurmonth) Dim day day = weekday(lastdayofprevmonth) if(day = 1) then lastbusinessdayofprevmonth = DateAdd("d", -2, lastdayofprevmonth) elseif (day = 7) then lastbusinessdayofprevmonth = DateAdd("d", -1, lastdayofprevmonth) else lastbusinessdayofprevmonth = lastdayofprevmonth end if end sub