Cálculos entre datas (DateTimePicker - DateDiff)

Hoje eu quero mostrar como executar cálculos entre datas confortáveis ​​em Visual Basic. Net usando a função DateDiff.

Precisa de um formulário, botão, algum de rótulo e um controle DateTimePicker como mostrado na imagem abaixo:

e no evento click do botão será o seguinte código:

 txtAños.Text = DateDiff (DateInterval.Year, DateTimePicker1.Value, Now.Date) & "anos"
 txtMeses.Text = DateDiff (DateInterval.Month, DateTimePicker1.Value, Now.Date) & "meses"
 txtSemanas.Text = DateDiff (DateInterval.Day, DateTimePicker1.Value, Now.Date) / 7 & "semanas"
 txtDias.Text = DateDiff (DateInterval.Day, DateTimePicker1.Value, Now.Date) & "dias"

executar o aplicativo, foi selecionada uma data passada e pressione o botão de calcular. O resultado será semelhante a esta imagem:

Este é um exemplo muito simples, basta olhar para alguns códigos e imagens e eu tenho certeza que você não terá dúvidas, mas se você tem alguma, é só deixar o seu comentário.

Espero que isso ajude.

18 Responses to "cálculos entre datas (DateTimePicker - DateDiff)"

  1. Informações Bitacoras.com ...

    Taxa em Bitacoras.com: Hoje eu quero mostrar como executar cálculos entre datas no Visual Basic Net usando a função DateDiff.. Precisa de um formulário, botão, algum rótulo? S e um controle DateTimePicker, como mostrado na fol ...

  2. Pedro diz:

    Olá antes de mais nada obrigado.

    Eu tenho uma preocupação.

    Hoje é 29 de abril, 2009
    Eu nasci em setembro de 1980

    segundo
    txtAños.Text = DateDiff (DateInterval.Year, DateTimePicker1.Value, Now.Date) & "anos"

    agora eu tenho 29 anos

    mas isso não é assim, eu tenho 28 para o meu aniversário recentemente, em setembro

    e modificar o código

    obrigado novamente

    • Eliseu diz:

      Pedro, estender-lhe um pouco de informação:

      Se Interval é definido como DateInterval.Year, o valor de retorno é simplesmente calculada a partir dos anos para peças das duas datas indicadas. Da mesma forma, o valor de retorno para DateInterval.Month é simplesmente calculada a partir das partes do ano e mês dos argumentos.

      Por exemplo, quando se compara dezembro 31 - janeiro 1 no próximo ano, DateDiff retorna 1 para DateInterval.Year ou DateInterval.Month, mas apenas como muito se passou um único dia.

      Nesses casos eu recomendo, por exemplo, use sempre a faixa e dividir por DateInterval.Day 365 e assim teria um valor mais exacto: 28,65 anos (por exemplo) e se você quiser apenas o ano em que você pode usar a função int () que irá retornar apenas parte de o número.

  3. Alex diz:

    Um bom exemplo! Obrigado pela informação

  4. jimmy diz:

    Ei homens bom post que serviram-me a verdade, até agora está ajudando a câmera como eu Grax.

  5. ignacio jose diz:

    seu amigo post muito bom como você para definir o formato DateTimePicker DD / MM / AAAA eu recebo por qa MI (quinta - feira, 12 maio, 1999) e realmente não sei como

    • Eliseu diz:

      Olá José:

      você só tem que mudar o Formatdel controle acionário da seguinte forma:

      DateTimePicker1.Format = DateTimePickerFormat.Short

      Sorte

  6. John F. diz:

    A consulta é talvez demasiado fácil, mas eu poderia mudar a maneira de exibir a data no datetiempicker, para mim parece: sexta-feira, 27 novembro, 2009, a simples necessidade: 27/11/2009.

    que seria, obrigado.

  7. John F. diz:

    Desculpe, o comentário não tinha visto antes, que responde a minha pergunta, obrigado.

  8. mcinpapr diz:

    Boa tarde ... Eu tenho um problema ... Eu estou usando dois DateTimePicker em vb.net 2005 e quando eu seleciono uma data no DateTimePicker segunda devo tomar a diferença entre duas datas ... A função é iniciada no "ValueChanged" o segundo ... Se você executá-lo, mas eu sempre subtrair um dia do que eu deveria dar ... por exemplo ... Se eu deixar a data de hoje para o DateTimePicker primeiro (21/12/2009) e selecionado no segundo, no dia seguinte (22/12 / 2009) me retorna um valor de 0 ... se você selecioná-lo em 23 me retorna o valor de 1. A função que eu uso é o seguinte:

    TextBox1.Text = CStr (DateDiff (DateInterval.Day, DTP_ShipDate.Value, DTP_ETA.Value))

    Alguém sabe o que pode ser o que acontece, por favor?

  9. Lilimarlet diz:

    Olá, como vai você?
    Eu tenho uma consulta-los, como eu posso obter apenas o dia do FEHA, olha eu tenho uma caixa de texto onde eu mostro o feha "2009/01/01" e eu preciso de um dia.

    Eu tenho esse

    Dim dia inteiro
    dia dia = (tfecha.text)

    Eu não trago nada, mas colocar

    Dim ano As Integer
    ano ano = (tfecha.text)

    I mostra o ano aqui, mas eu preciso do dia

  10. Carlos h diz:

    Desculpe-me, como eu faço o que eu dataTimerPicker debuelva osso ano-mês-dia "aaaa / mm / dd" para selecionar uma data, eu preciso de uma consulta no mysql e datas neste formato mantém ("aaaa / mm / dd" ) .....

    Se eu pudesse ser o guia agradesco ... Obrigado antecipadamente.

  11. Jennifer diz:

    Muito obrigado pela informação. Foi uma grande ajuda.

  12. Hanner Oviedo diz:

    A boa gestão não é VB muito bom e eu estou trabalhando neste evento, mas eu recebo erro 424 bateu o pouco que tenho feito, espero sua ajuda

    Range ("I10") = DateDiff (DateInterval.Month, TextBox18.Value, Now.Date)

    Obrigado.

  13. DjMiki diz:

    Eliseu bom amigo, obrigado pela sua função de me serviu, mas eu tenho um detalhe, o resultado dá-me o DateDiff é uma negativa, siga o exemplo você está dando, mas iguais, tentar passá-lo como string, int, cint, CStr, e nada alguma ajuda por favor.

  14. DjMiki diz:

    Bem Eliseu desculpar o problema, mas boa e resolver o meu problema, mas acho que você colocou os parâmetros de ordem são o contrário, e eu quero dizer a data 1 e data 2, e depois deve ser Date1 Date2.
    Bem corrigido, agora lutando com a comparação deste resultado.

  15. Elkin V diz:

    Hey Amigo Obrigado Muito Útil
    É muito fácil lol

    Um resto de tarde tentando encontrar algo

    Faça-me um grande eco por favor!

Comentar