cintiadel 0 Denunciar post Postado Maio 12, 2009 Se não pode passar a data chapada, passe suas variáveis, o Oenning só postou um exemplo. Abraços... só n to sabendo o q passar como ja disse...e tbm onde adicionar o mes segue o codigo, por favor me ajude a corrigir: no load: Dim dt As String dt = RetornaQuintoDiaUtil(New Date(2009, 5, 1)) lbl_msg_superior.Text = dt funções Private Shared Function RetornaQuintoDiaUtil(ByVal Data As DateTime) As String Dim primeiroDiaUtil As Int32 = RetornaPrimeiroDiaUtil(Data) Dim auxDiasUteisLocalizados As Int32 = 1 Dim auxContadorDiaVerificados As Int32 = 1 Dim quintoDiaUtil As DateTime = DateTime.Now Dim dataPrimeiroDiaUtil As New DateTime(Data.Year, Data.Month, primeiroDiaUtil) While auxDiasUteisLocalizados < 5 quintoDiaUtil = dataPrimeiroDiaUtil.AddDays(auxContadorDiaVerificados) If VerificaDiaUtil(quintoDiaUtil) Then auxDiasUteisLocalizados += 1 End If auxContadorDiaVerificados += 1 End While 'Return quintoDiaUtil.Day.ToString() Return quintoDiaUtil.Day.ToString() & "/" + quintoDiaUtil.Month.ToString() & "/" & quintoDiaUtil.Year.ToString() End Function 'RetornaQuintoDiaUtil Private Shared Function RetornaPrimeiroDiaUtil(ByVal Data As DateTime) As Integer Dim primeiroDiaMes As New DateTime(Data.Year, Data.Month, 1) While Not VerificaDiaUtil(primeiroDiaMes) primeiroDiaMes = primeiroDiaMes.AddDays(1.0F) End While Return primeiroDiaMes.Day End Function 'RetornaPrimeiroDiaUtil Private Shared Function VerificaDiaUtil(ByVal DiaMes As DateTime) As Boolean If DiaMes.DayOfWeek = DayOfWeek.Saturday Or DiaMes.DayOfWeek = DayOfWeek.Sunday Or VerificaFeriado(DiaMes) Then Return False End If Return True End Function 'VerificaDiaUtil Private Shared Function VerificaFeriado(ByVal DiaMes As DateTime) As Boolean 'Código para verificar se uma data passada como parâmetro é feriado de acordo com banco 'de dados ou WebService Dim conexao As New Data.SqlClient.SqlConnection("conexao") Dim comando As New Data.SqlClient.SqlCommand Dim drferiado As Data.SqlClient.SqlDataReader conexao.Open() comando.Connection = conexao comando.CommandText = "Select dtferiado from feriados2 where dtferiado = '" & DiaMes.ToString("yyyy-MM-dd") & "'" drferiado = comando.ExecuteReader() If drferiado.Read() Then Return True Else Return False End If drferiado.Close() conexao.Close() Return False End Function 'VerificaFeriado End Class 'Program Compartilhar este post Link para o post Compartilhar em outros sites
Oenning 0 Denunciar post Postado Maio 13, 2009 Para pegar o ano corrente você usa DateTime.Today.Year. Para o próximo mês você usa DateTime.Today.Month + 1. Compartilhar este post Link para o post Compartilhar em outros sites
cintiadel 0 Denunciar post Postado Maio 13, 2009 Para pegar o ano corrente você usa DateTime.Today.Year. Para o próximo mês você usa DateTime.Today.Month + 1. o problema é onde eu faço isso???? Compartilhar este post Link para o post Compartilhar em outros sites
cintiadel 0 Denunciar post Postado Maio 13, 2009 Para pegar o ano corrente você usa DateTime.Today.Year. Para o próximo mês você usa DateTime.Today.Month + 1. enfim consegui resolver, segue a solução:no load Dim dt As String dt = RetornaQuintoDiaUtil(New Date(2009, 5, 1)) lbl_msg_superior.Text = dt Funções: Private Shared Function RetornaQuintoDiaUtil(ByVal Data As DateTime) As String Dim primeiroDiaUtil As Int32 = RetornaPrimeiroDiaUtil(Data) Dim auxDiasUteisLocalizados As Int32 = 1 Dim auxContadorDiaVerificados As Int32 = 1 Dim mes As Int32 = Now.AddMonths(1).Month Dim quintoDiaUtil As DateTime = DateTime.Now Dim dataPrimeiroDiaUtil As New DateTime(Data.Year, mes, primeiroDiaUtil) While auxDiasUteisLocalizados < 5 quintoDiaUtil = dataPrimeiroDiaUtil.AddDays(auxContadorDiaVerificados) If VerificaDiaUtil(quintoDiaUtil) Then auxDiasUteisLocalizados += 1 End If auxContadorDiaVerificados += 1 End While Return quintoDiaUtil.ToString("dd/MM/yyyy") End Function 'RetornaQuintoDiaUtil Private Shared Function RetornaPrimeiroDiaUtil(ByVal Data As DateTime) As Integer Dim primeiroDiaMes As New DateTime(Data.Year, Now.AddMonths(1).Month, 1) While Not VerificaDiaUtil(primeiroDiaMes) primeiroDiaMes = primeiroDiaMes.AddDays(1.0F) End While Return primeiroDiaMes.Day End Function 'RetornaPrimeiroDiaUtil Private Shared Function VerificaDiaUtil(ByVal DiaMes As DateTime) As Boolean If DiaMes.DayOfWeek = DayOfWeek.Saturday Or DiaMes.DayOfWeek = DayOfWeek.Sunday Or VerificaFeriado(DiaMes) Then Return False End If Return True End Function 'VerificaDiaUtil aqui ele verifica se existe o feriado cadastrado na minha tabela: Private Shared Function VerificaFeriado(ByVal DiaMes As DateTime) As Boolean 'Código para verificar se uma data passada como parâmetro é feriado de acordo com banco 'de dados ou WebService Dim conexao As New Data.SqlClient.SqlConnection("conexao") Dim comando As New Data.SqlClient.SqlCommand Dim drferiado As Data.SqlClient.SqlDataReader conexao.Open() comando.Connection = conexao comando.CommandText = "Select dt from feriados where dt = '" & DiaMes.ToString("yyyy-MM-dd") & "'" drferiado = comando.ExecuteReader() If drferiado.Read() Then Return True Else Return False End If drferiado.Close() conexao.Close() Return False End Function 'VerificaFeriado enfim tópico resolvido agradeço ao quintelab, Oenning e ao Juliano.net pela paciencia e ajuda que me deram...valeu mesmo Compartilhar este post Link para o post Compartilhar em outros sites