Avui vull mostrar com realitzar cà lculs entre dates en visual basic. Net utilitzant la funció DateDiff.
Necessitarem un formulari, un botó, alguns label 'si un control DateTimePicker, tal com es mostra en la següent imatge:

i en l'esdeveniment clic del botó va el codi:
txtAños.Text = DateDiff (DateInterval.Year, DateTimePicker1.Value, Now.Date) & "anys" txtMeses.Text = DateDiff (DateInterval.Month, DateTimePicker1.Value, Now.Date) & "mesos" txtSemanas.Text = DateDiff (DateInterval.Day, DateTimePicker1.Value, Now.Date) / 7 & "setmanes" txtDias.Text = DateDiff (DateInterval.Day, DateTimePicker1.Value, Now.Date) & "dies"
executem l'aplicació, seleccionem una data passada i pressionem el botó calcular. El resultat serà similar al d'aquesta imatge:

Aquest és un exemple molt senzill, només cal mirar una mica el codi i les captures i estic segur que no tindràs dubtes, però si arribessis a tenir alguna, només deixa aquí el teu comentari.
Espero que els serveixi.
Informació Bitacoras.com ...
Valora en Bitacoras.com: Avui vull mostrar com realitzar càlculs entre dates en visual basic. Net utilitzant la funció DateDiff. Necessitarem un formulari, un botó, alguns label? Si un control DateTimePicker, tal com es mostra a la sigu ...
Hola primer de tot gràcies.
tinc una inquietud.
avui és 29 abril 2009
néixer el setembre 1980
segons
txtAños.Text = DateDiff (DateInterval.Year, DateTimePicker1.Value, Now.Date) & "anys"
ara tinc 29 any
però això no és així, tinc 28 perquè recent compleixo anys al setembre
com modificaria el codi
gràcies novament
Pere, et amplio una mica la informació:
Si Interval s'estableix en DateInterval.Year, el valor retornat es calcula simplement a partir de les parts de l'any de les dues dates donades. De la mateixa manera, el valor retornat per DateInterval.Month es calcula simplement a partir de les parts de l'any i del mes dels arguments.
Per exemple, en comparar 31 de desembre amb 1 de gener del any següent, DateDiff retorna 1 per DateInterval.Year o DateInterval.Month, encara que únicament hagi transcorregut com a molt un sol dia.
Per a aquests casos et recomano, per exemple, fer servir sempre l'interval DateInterval.Day i dividir per 365 i així tindries una dada més exacte: 28.65 anys (per exemple) i si només vols l'any pots utilitzar la funció int () que et retornarà només la part sencera del nombre.
Bon exemple! Gràcies per la informació
Hey examen que bon post la veritat em va servir molt segueix així ajudant a la mara com jo, grax.
amic molt bo el teu post com fas per posar el format del datetimepicker en DD / MM / AAAA per qa MI em surt (dijous, 12 maig Del 1999) I de veritat no es com
Hola josé:
només has de canviar la propietat Formatdel control, així:
DateTimePicker1.Format = DateTimePickerFormat.Short
Sort
Una consulta, potser és molt fàcil, però no he pogut canviar la forma de mostrar la data en el datetiempicker, me la mostra així: divendres, novembre 27, 2009, la necessito simple: 27/11/2009.
això seria, gràcies.
Disculpa, no havia vist el comentari anterior, el qual respon la meva consulta, gràcies.
Bona tarda ... tinc un problema ... estic utilitzant dos datetimepicker dins vb.net 2005 i quan selecciono una data en el segon DateTimePicker em deu de treure la diferència entre les dues dates ... La funció la vaig posar en l'esdeveniment "ValueChanged" del segon ... Si l'executa però sempre em resta un dia del que em deuria donar ... per exemple ... Si li deixo la data del dia al primer datetimepicker (21/12/2009) i selecciono en el segon el dia següent (22/12 / 2009) em torna un valor de 0 ... si li li selecciono el dia 23 em torna el valor d'1. La funció que utilitzo és la següent:
textbox1.Text = CSTR (DateDiff (DateInterval.Day, DTP_ShipDate.Value, DTP_ETA.Value))
Algú sap que pot ser el que passi si us plau??
hola, com estan?
els tinc una consulta, com puc obtenir només el dia de la fefaent; mirin tinc un TextBox on em mostra la fefaent "2009.01.01" i necessito només el dia.
tinc això
dim dia es integer
dia = day (tfecha.text)
no em porta res, però poso
dim any es integer
any = year (tfecha.text)
aca em mostra l'any però jo necessito el dia
Disculpin com faig perquè el dataTimerPicker em debuelva any-mes-dia o sigui "yyyy / mm / dd" en escollir una data, el necessito per a una consulta en Mysql i les dates les guarda en aquest format ("yyyy / mm / dd" ) .....
Si em podrien orientar els hi agradesco ... Gràcies anticipades.
ps si és en vB existeix la funció format i utilitzes custom, i en customformat yyy / MM / dd
Moltes gràcies per la informació. Se'n va anar de gran ajuda.
Bones no maneig molt bé VB i estic elaborant aquest esdeveniment però no em surt error 424 pego el poc que he fet, espero la seva ajuda
Range ("I10") = DateDiff (dateinterval.Month, TextBox18.Value, Now.Date)
Gràcies.
Bé Amic Eliseo, gràcies per la teva funció em va servir, però tinc un detall, el resultat que em dóna el DateDiff, és un negatiu, seguiment l'exemple que aquestes donant però igual, intent passar-ho com string, int, cint, CSTR, i res alguna ajuda siusplau.
Bé Eliseo disculpa la molèstia però bé ja solucioni el meu problema, però crec que l'ordre que posaves els paràmetres són a revez, i em refereixo a la data 1 i data 2, hauria de ser Data2 i després Fecha1.
Bé corregit, ara lluitant amb comparació d'aquest resultat.
Hey Amic Moltes gràcies molt Útil
És molt senzill jajaja
Tarda una resta de temps intentant donar amb una cosa semblant
Em Fes fet un gran favor!