|
|
|
|
|
Dicas
|
|
Visual Basic (Miscelâneas)
|
|
|
Título da Dica: Cálculo de Feriado Movel
|
|
|
|
Postada em 22/9/2006 por wncruz
Esta função calcula a Data se é feriada movel (Carnaval, Sexta-feira santa, Pascoa e Corpus Christie) Parametro (pdatPesquisa) - A data a ser verificada Retorno - True = achou / False Não Achou
Public Function E_Feriado(pdatPesquisa As Date) As Boolean Dim datData As Date Dim Ano As Integer Dim A As Integer Dim B As Integer Dim C As Integer Dim D As Integer Dim E As Integer Dim F As Integer Dim G As Integer Dim H As Integer Dim i As Integer Dim K As Integer Dim L As Integer Dim M As Integer Dim p As Integer Dim Q As Integer E_Feriado = False Ano = Year(pdatPesquisa) A = (Ano Mod 19) B = Int(Ano / 100) C = (Ano Mod 100) D = Int(B / 4) E = (B Mod 4) F = Int((B + 8) / 25) G = Int((B - F + 1) / 3) H = ((19 * A + B - D - G + 15) Mod 30) i = Int(C / 4) K = (C Mod 4) L = ((32 + 2 * E + 2 * i - H - K) Mod 7) M = Int((A + 11 * H + 22 * L) / 451) p = Int((H + L - 7 * M + 114) / 31) Q = ((H + L - 7 * M + 114) Mod 31) datData = Format(Str(Q + 1) & "/" & Str(p) & "/" & Str(Ano), "dd/mm/yyyy") If pdatPesquisa = datData Then 'É Pascoa E_Feriado = True End If If pdatPesquisa = (datData - 47) Then 'É Carnaval E_Feriado = True End If If pdatPesquisa = (datData - 60) Then 'É Corpus Christi E_Feriado = True End If If pdatPesquisa = (datData - 2) Then 'É Sexta-Feira Santa E_Feriado = True End If End Function
|
|
|
|
|