none
identificar as semanas daquele mes RRS feed

  • Pergunta

  • olá

    existe algum comando no vb.net que me diga as semana do ano referentes a um determinado mes do ano?

    Exemplo do que preciso

    preciso que o user escolha o ano e o mês, em duas combobox distintas. Ao carregar num botão o vb.net informa que semanas tem esse mes no referido ano.

    Ex:. no ano 2007 no mes de fevereiro as semanas foram as 5, 6, 7 e 8.

    tem como fazer isso?

    A parte da combobox sei fazer, não sei e o comando para reverter a info das semanas.

    valeu


    • Editado Jonas.8 domingo, 30 de setembro de 2012 16:47
    domingo, 30 de setembro de 2012 16:46

Respostas

  • Jonas veja este método que retorna apenas o numero das semanas de acordo com o DateTime passado como parâmetro, talvez te ajude:

        Public Shared Function NumerosSemana([date] As DateTime) As System.Collections.Generic.List(Of Integer)
            Dim nSemana As New System.Collections.Generic.List(Of Integer)()
    
            Dim dfi As System.Globalization.DateTimeFormatInfo = New System.Globalization.CultureInfo("pt-BR").DateTimeFormat
            Dim cal As System.Globalization.Calendar = dfi.Calendar
    
            Dim primeiroDiaMes As New DateTime([date].Year, [date].Month, 1)
    
            Dim mes As Integer = primeiroDiaMes.Month
    
            While primeiroDiaMes.Month = mes
                Dim semana As Integer = cal.GetWeekOfYear(primeiroDiaMes, dfi.CalendarWeekRule, dfi.FirstDayOfWeek)
    
                If Not nSemana.Contains(semana) Then
                    nSemana.Add(semana)
                End If
    
                primeiroDiaMes = primeiroDiaMes.AddDays(1)
            End While
    
            Return nSemana
        End Function

    Referencia:
    http://msdn.microsoft.com/en-us/library/system.globalization.calendar.getweekofyear.aspx

    Vitor Mendes | Seu feedback é muito importante para todos!
    Visite o meu site: http://www.vitormendes.com.br/

    • Marcado como Resposta Jonas.8 domingo, 30 de setembro de 2012 23:39
    domingo, 30 de setembro de 2012 23:33

Todas as Respostas

  • Jonas veja este método que retorna apenas o numero das semanas de acordo com o DateTime passado como parâmetro, talvez te ajude:

        Public Shared Function NumerosSemana([date] As DateTime) As System.Collections.Generic.List(Of Integer)
            Dim nSemana As New System.Collections.Generic.List(Of Integer)()
    
            Dim dfi As System.Globalization.DateTimeFormatInfo = New System.Globalization.CultureInfo("pt-BR").DateTimeFormat
            Dim cal As System.Globalization.Calendar = dfi.Calendar
    
            Dim primeiroDiaMes As New DateTime([date].Year, [date].Month, 1)
    
            Dim mes As Integer = primeiroDiaMes.Month
    
            While primeiroDiaMes.Month = mes
                Dim semana As Integer = cal.GetWeekOfYear(primeiroDiaMes, dfi.CalendarWeekRule, dfi.FirstDayOfWeek)
    
                If Not nSemana.Contains(semana) Then
                    nSemana.Add(semana)
                End If
    
                primeiroDiaMes = primeiroDiaMes.AddDays(1)
            End While
    
            Return nSemana
        End Function

    Referencia:
    http://msdn.microsoft.com/en-us/library/system.globalization.calendar.getweekofyear.aspx

    Vitor Mendes | Seu feedback é muito importante para todos!
    Visite o meu site: http://www.vitormendes.com.br/

    • Marcado como Resposta Jonas.8 domingo, 30 de setembro de 2012 23:39
    domingo, 30 de setembro de 2012 23:33
  • obrigado vitor

    domingo, 30 de setembro de 2012 23:39