DIAS ÊTEIS

 Tópico anterior Próximo tópico Novo tópico

DIAS ÊTEIS

VB / VBA

 Compartilhe  Compartilhe  Compartilhe
#495303 - 06/10/2020 11:37:28

PROGRAMADORVB6
LISBOA
Cadast. em:Janeiro/2004


Olha amigo , você não disse em que linguagem quer  este exemplo está em VB.net
  Module modFeriados

    'Dias Feriados
    Public Function DiaFeriado(ByVal Data As Date) As String
        Dim Dia As Integer = Data.Day
        Dim Mes As Integer = Data.Month
        Dim Ano As Integer = Data.Year

        'Festas moveis
        If Data.Date = Carnaval(Ano).Date Then Return 'Entrudo/Carnaval'
        If Data.Date = SextaFeiraSanta(Ano).Date Then Return 'Sexta-Feira Santa'
        If Data.Date = Pascoa(Ano).Date Then Return 'Páscoa'
        If Data.Date = CorpoDeDeus(Ano).Date Then Return 'Corpo de Deus'

        'Feriados e dias Santos Fixos
        If Dia = 1 And Mes = 1 Then Return 'Ano Novo'
        If Dia = 25 And Mes = 4 Then Return 'Dia da Liberdade'
        If Dia = 1 And Mes = 5 Then Return 'Dia do Trabalhador'
        If Dia = 10 And Mes = 6 Then Return 'Dia de Portugal'
        If Dia = 15 And Mes = 8 Then Return 'Assunção de Maria'
        If Dia = 5 And Mes = 10 Then Return 'Implantação da República'
        If Dia = 1 And Mes = 11 Then Return 'Todos os Santos'
        If Dia = 1 And Mes = 12 Then Return 'Restauração da Independência'
        If Dia = 8 And Mes = 12 Then Return 'Imaculada Conceição'
        If Dia = 25 And Mes = 12 Then Return 'Natal'

        'Feriados Locais
        'If Dia = 1 And Mes = 7 Then Return 'R' ''Feriado Regional(Madeira)'
        'If Dia = 21 And Mes = 8 Then Return 'M' ''Feriado Municipal(Funchal)'
        'etc...

        Return 'Dia Util'
    End Function

    'Festas Moveis
    Public Function Carnaval(ByVal Ano As Integer) As Date
        Dim D As Date = Pascoa(Ano)
        Return DateSerial(Ano, D.Month, D.Day - 47)
    End Function

    Public Function SextaFeiraSanta(ByVal Ano As Integer) As Date
        Dim D As Date = Pascoa(Ano)
        Return DateSerial(Ano, D.Month, D.Day - 2)
    End Function

    Public Function Pascoa(ByVal Ano As Integer) As Date

        Dim A As Integer = Ano Mod 19
        Dim B As Integer = Int(Ano / 100)
        Dim C As Integer = Ano Mod 100
        Dim D As Integer = Int(B / 4)
        Dim E As Integer = B Mod 4
        Dim F As Integer = Int((B + 8) / 25)
        Dim G As Integer = Int((B - F + 1) / 3)
        Dim H As Integer = (19 * A + B - D - G + 15) Mod 30
        Dim I As Integer = Int(C / 4)
        Dim J As Integer = C Mod 4
        Dim L As Integer = (32 + 2 * E + 2 * I - H - J) Mod 7
        Dim M As Integer = Int((A + 11 + H + 22 * L) / 451)

        Dim Mes As Integer = Int((H + L - 7 * M + 114) / 31)
        Dim Dia As Integer = 1 + ((H + L - 7 * M + 114) Mod 31)

        Return DateSerial(Ano, Mes, Dia)
    End Function

    Public Function CorpoDeDeus(ByVal Ano As Integer) As Date
        Dim D As Date = Pascoa(Ano)
        Return DateSerial(Ano, D.Month, D.Day + 60)
    End Function

End Module


______________________________________________________________________________

Que minha coragem seja maior que meu medo e que minha fora seja to grande quanto minha f.


#495328 - 07/10/2020 11:41:00

LUCS
BALNEARIO CAMBORIU
Cadast. em:Novembro/2018


Citação:
:
Olha amigo , você não disse em que linguagem quer  este exemplo está em VB.net


Bom dia!
Vou tentar passar para vb6, como não tenho dominio de programação, vamos ver...
Muito obrigado pela ajuda!
Atenciosamente,






#495329 - 07/10/2020 11:49:21

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Citação:
:
:
Olha amigo , você não disse em que linguagem quer  este exemplo está em VB.net


Bom dia!
Vou tentar passar para vb6, como não tenho dominio de programação, vamos ver...
Muito obrigado pela ajuda!
Atenciosamente,



Se eu fosse você iria pela via do SQL...

_______________________________________________________________________
Virei Orculo!
The end is nigh, be ready for the nukes!


#495348 - 08/10/2020 11:15:59

PROGRAMADORVB6
LISBOA
Cadast. em:Janeiro/2004


Para accionar a função :

   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        MsgBox(DiaFeriado('25-12-2020'))
    End Sub


______________________________________________________________________________

Que minha coragem seja maior que meu medo e que minha fora seja to grande quanto minha f.


#495349 - 08/10/2020 11:18:32

PROGRAMADORVB6
LISBOA
Cadast. em:Janeiro/2004


Nota : são duas aspas e não '

______________________________________________________________________________

Que minha coragem seja maior que meu medo e que minha fora seja to grande quanto minha f.


#495380 - 10/10/2020 17:30:25

LUCS
BALNEARIO CAMBORIU
Cadast. em:Novembro/2018


Citação:
:
Para accionar a função :

   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        MsgBox(DiaFeriado('25-12-2020'))
    End Sub



   Boa tarde!
Esta parte eu não entendi!

Atenciosamente,



#495381 - 10/10/2020 17:55:56

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Citação:
:
:
Para accionar a função :

   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        MsgBox(DiaFeriado('25-12-2020'))
    End Sub



   Boa tarde!
Esta parte eu não entendi!

Atenciosamente,

Isso que ele postou, é parte do que você quer, ele retorna se uma determinada data é feriado ou não. Como está, não serve para o que você precisa, mas é uma parte

_______________________________________________________________________
Virei Orculo!
The end is nigh, be ready for the nukes!


#495384 - 12/10/2020 09:55:28

LUCS
BALNEARIO CAMBORIU
Cadast. em:Novembro/2018



Isso que ele postou, é parte do que você quer, ele retorna se uma determinada data é feriado ou não. Como está, não serve para o que você precisa, mas é uma parte[/quote]

Entendi, então vai me ajudar para itendificar quando a data cair em dia de feriado!






 Tópico anterior Próximo tópico Novo tópico


Para responder este tópico o login é requerido
Se você já possui uma conta de usuário por favor faça seu login
Se você não possui uma conta de usuário use a opção Criar usuário