none
Localizar maior Data dentro de um Dictionary RRS feed

  • Pergunta

  • Estou precisando localizar a maior data dentro de um Dictionary para então adicionar 1 mês.

    Dentro do meu dictionary eu tenho as seguintes datas 01/01/2016, 01/02/2016, 01/03/2016, 01/04/2016.

    Localizar maior Data 

    ------Maior Data = 01/04/2016

    ------Nova Data = Maior Data + 1 Mês

    Neste caso, a Nova Data seria igual a 01/05/2016

    É possivel fazer isso?

    quinta-feira, 9 de março de 2017 18:28

Respostas

  • Thiago,

    Tenta assim:

    Sub main()
    
      Dim dic As New Dictionary
    
      dic.Add "01/01/2016", 1
      dic.Add "01/02/2016", 1
      dic.Add "01/03/2016", 1
      dic.Add "01/04/2016", 1
    
     MsgBox DateAdd("m", 1, MaxKeyFromDic(dic))
      
    End Sub
    
    
    Function MaxKeyFromDic(dic As Dictionary) As Variant
      
      Dim maxValue As Variant
      maxValue = 0
      
      For Each k In dic
        If k > maxValue Then maxValue = k
      Next
      
      MaxKeyFromDic = maxValue
      
    End Function


    Natan

    • Marcado como Resposta Thiago Krebs quinta-feira, 9 de março de 2017 21:11
    • Não Marcado como Resposta Thiago Krebs quinta-feira, 9 de março de 2017 21:12
    • Marcado como Resposta Thiago Krebs sexta-feira, 10 de março de 2017 17:08
    quinta-feira, 9 de março de 2017 19:48

Todas as Respostas

  • Thiago,

    Tenta assim:

    Sub main()
    
      Dim dic As New Dictionary
    
      dic.Add "01/01/2016", 1
      dic.Add "01/02/2016", 1
      dic.Add "01/03/2016", 1
      dic.Add "01/04/2016", 1
    
     MsgBox DateAdd("m", 1, MaxKeyFromDic(dic))
      
    End Sub
    
    
    Function MaxKeyFromDic(dic As Dictionary) As Variant
      
      Dim maxValue As Variant
      maxValue = 0
      
      For Each k In dic
        If k > maxValue Then maxValue = k
      Next
      
      MaxKeyFromDic = maxValue
      
    End Function


    Natan

    • Marcado como Resposta Thiago Krebs quinta-feira, 9 de março de 2017 21:11
    • Não Marcado como Resposta Thiago Krebs quinta-feira, 9 de março de 2017 21:12
    • Marcado como Resposta Thiago Krebs sexta-feira, 10 de março de 2017 17:08
    quinta-feira, 9 de março de 2017 19:48
  • Thiago,

    Tenta assim:

    Sub main()
    
      Dim dic As New Dictionary
    
      dic.Add "01/01/2016", 1
      dic.Add "01/02/2016", 1
      dic.Add "01/03/2016", 1
      dic.Add "01/04/2016", 1
    
     MsgBox DateAdd("m", 1, MaxKeyFromDic(dic))
      
    End Sub
    
    
    Function MaxKeyFromDic(dic As Dictionary) As Variant
      
      Dim maxValue As Variant
      maxValue = 0
      
      For Each k In dic
        If k > maxValue Then maxValue = k
      Next
      
      MaxKeyFromDic = maxValue
      
    End Function


    Natan

    Depoi de eu fazer algumas mudanças para funcionar no meu código funcionou. Obrigado
    sexta-feira, 10 de março de 2017 17:09