Hoxe quero amosar como realizar cálculos entre datas cómodos en Visual Basic. Net empregando a función DateDiff.
Necesita un formulario, botón, algún de etiqueta e un control DateTimePicker como se mostra na imaxe de abaixo:

e no evento click do botón será o seguinte código:
txtAños.Text = DateDiff (DateInterval.Year, DateTimePicker1.Value, Now.Date) e "anos" txtMeses.Text = DateDiff (DateInterval.Month, DateTimePicker1.Value, Now.Date) e "meses" txtSemanas.Text = DateDiff (DateInterval.Day, DateTimePicker1.Value, Now.Date) / 7 & "semanas" txtDias.Text = DateDiff (DateInterval.Day, DateTimePicker1.Value, Now.Date) & "días"
executar a aplicación, foi seleccionada nunha data pasada e prema o botón de calcular. O resultado será semellante a esta imaxe:

Este é un exemplo moi sinxelo, basta ollar para algúns códigos e imaxes e eu estou seguro que non terá dúbida, pero se ten algunha, só deixar o teu comentario.
Espero que isto axude.
Información Bitacoras.com ...
Taxa en Bitacoras.com: Hoxe quero amosar como realizar cálculos entre datas no Visual Basic Net usando a función DateDiff .. Precisa dun formulario, botón, un rótulo 's control DateTimePicker, como se mostra na fol ...
Ola ante todo grazas.
Eu teño unha preocupación.
Hoxe é 29 de abril do 2009
Eu nacín en setembro de 1980
segundo
txtAños.Text = DateDiff (DateInterval.Year, DateTimePicker1.Value, Now.Date) e "anos"
agora eu teño 29 anos
pero iso non é así, eu teño 28 para o meu aniversario recentemente, en setembro
e modificar o código
grazas de novo
Pedro, estender-lle un pouco de información:
Se Interval defínese como DateInterval.Year, o valor de retorno é simplemente calculada a partir dos anos para pezas das dúas datas indicadas. Así mesmo, o valor de retorno para DateInterval.Month é simplemente calculada a partir das partes do ano e mes dos argumentos.
Por exemplo, ao comparar 31 decembro - 1 de xaneiro do próximo ano, DateDiff retorna 1 para DateInterval.Year ou DateInterval.Month, pero só na medida pasou un día único.
Nestes casos eu recomendo, por exemplo, utiliza sempre a pista e dividir por DateInterval.Day 365 e así tería un valor máis exacto: 28,65 anos (por exemplo) e se quere só o ano en que pode utilizar a función int () que pode voltar só unha parte do número.
Un bo exemplo! Grazas pola información
Ei homes bo post que serviron-me a verdade, ata agora está axudando a cámara como eu Grax.
seu amigo post moi bo como para definir o formato DateTimePicker DD / MM / AAAA eu recibín por qa MI (Xoves - feira, 12 maio, 1999) e realmente non sei como
Ola José:
só tes que cambiar o control Formatdel propiedade, así como:
DateTimePicker1.Format = DateTimePickerFormat.Short
Sorte
A consulta é quizais demasiado doado, pero eu podería cambiar a forma de mostrar a data no datetiempicker, para min parece: Venres, 27 Novembro, 2009, eu teño simplemente: 27/11/2009.
que sería, grazas.
Sentímolo, o comentario non vira antes, que responde a miña pregunta, grazas.
Boa tarde ... Eu teño un problema ... Eu estou usando dous DateTimePicker en vb.net 2005 e cando selecciono unha data no DateTimePicker segunda debo tomar a diferenza entre dúas datas ... A función comeza no "ValueChanged" o segundo ... Se funciona, pero eu sempre restar un día do que eu debería dar ... por exemplo ... Se eu deixar a data de hoxe para o DateTimePicker primeiro (21/12/2009) e seleccionado no segundo, ao día seguinte (22/12 / 2009) me retorna un valor de 0 ... se selecciona-lo en 23 me devolve o valor de 1. A función utilizada é a seguinte:
TextBox1.Text = CStr (DateDiff (DateInterval.Day, DTP_ShipDate.Value, DTP_ETA.Value))
Alguén sabe o que pode ser o que ocorre, por favor?
Ola, como vai vostede?
Eu teño unha consulta-los, como podo obter só o día do FEHA, mira eu teño unha caixa de texto onde eu mostro o feha "2009/01/01" e eu teño un día.
Eu teño ese
Din día
día día = (tfecha.text)
Non traio nada, pero poñer
Din ano As Enteiros
ano ano = (tfecha.text)
I amosa o ano aquí, pero eu teño do día
Desculpe-me, como eu fago o que eu dataTimerPicker debuelva óso ano-mes-día "aaaa / mm / dd" para seleccionar unha data, eu teño unha consulta en mysql e datas neste formato mantén ("aaaa / mm / dd" ) .....
Se eu puidese ser o guía agradesco ... Grazas anticipadamente.
vB ps se hai función e formato de uso personalizado e CustomFormat YYY / MM / DD
Moitas grazas pola información. Foi unha gran axuda.
A boa xestión non é VB moi bo e eu estou a traballar neste evento, pero eu recibín erro 424 bateu o pouco que teño feito, espero a súa axuda
Range ("I10") = DateDiff (DateInterval.Month, TextBox18.Value, Now.Date)
Grazas.
Eliseu bo amigo, grazas pola súa función de me serviu, pero eu teño un detalle, o resultado dáme o DateDiff é unha negativa, siga o exemplo está dando, pero iguais, probar pasalo como cadea, int, cint, CStr, e nada axuda por favor.
Ben Eliseu desculpar o problema, pero boa e resolver o meu problema, pero creo que puxo os parámetros de orde son o contrario, e quero dicir a data 1 e data 2, e despois hai que Date1 Date2.
Ben corrixido, agora loitando con a comparación deste resultado.
Hey Amigo Grazas moi útil
É moi fácil lol
Un resto de tarde tratando de atopar algo
Non lanza un gran favor!