Calculele dintre datele (DateTimePicker - DateDiff)

Astăzi, doresc să arate cum de a efectua calcule între datele confortabile în Visual Basic Net folosind funcţia DateDiff..

Aveti nevoie de un formular, buton, unele de etichetă şi un control DateTimePicker aşa cum se arată în imaginea de mai jos:

şi în cazul faceţi clic pe butonul va fi codul de mai jos:

 txtAños.Text = DateDiff (DateInterval.Year, DateTimePicker1.Value, Now.Date) si "ani"
 txtMeses.Text = DateDiff (DateInterval.Month, DateTimePicker1.Value, Now.Date) si "luni"
 txtSemanas.Text = DateDiff (DateInterval.Day, DateTimePicker1.Value, Now.Date) / 7 si "săptămâni"
 txtDias.Text = DateDiff (DateInterval.Day, DateTimePicker1.Value, Now.Date) şi "zile"

rula aplicaţia, am selectat o dată trecut şi apăsaţi pe butonul Calculate. Rezultatul va fi similar cu această imagine:

Acesta este un exemplu foarte simplu, uita-te doar la un anumit cod şi capturile de ecran şi eu sunt sigur că nu vei avea îndoieli, dar dacă aţi fost de a avea orice, lasa un comentariu.

Sper că acest lucru ajută.

18 Responses to "calcule între date (DateTimePicker - DateDiff)"

  1. Bitacoras.com spune:

    Bitacoras.com informaţii ...

    Rata de Bitacoras.com în: Astăzi aş vrea să arate cum de a efectua calcule între datele din Visual Basic Net folosind funcţia DateDiff.. Aveti nevoie de un formular, buton, unele eticheta DateTimePicker de control S,? Cum se arată în ur ...

  2. Petru spune:

    Buna ziua în primul rând vă mulţumesc.

    Am un motiv de îngrijorare.

    Astazi este 29 aprilie 2009
    M-am născut în septembrie 1980

    conform
    txtAños.Text = DateDiff (DateInterval.Year, DateTimePicker1.Value, Now.Date) si "ani"

    acum am 29 de ani

    dar că nu este aşa, am 28 pentru ziua mea de naştere recent, în septembrie

    şi modifica codul

    multumesc din nou

    • Elisei spune:

      Peter, am extinde un pic de informaţii:

      Dacă intervalul este setat la DateInterval.Year, valoarea returnata este pur şi simplu calculează de la părţile an de cele două date de date. În mod similar, valoarea de returnare pentru DateInterval.Month este pur şi simplu calculează de la partidele de anul şi luna a argumentelor.

      De exemplu, atunci când se compară 12/treizeci şi unu-01/un anul viitor, DateDiff returnează 1 pentru DateInterval.Year sau DateInterval.Month, ci doar ca a trecut mult o singură zi.

      În aceste cazuri am recomanda, de exemplu, folosiţi întotdeauna gama şi decalajul de DateInterval.Day 365 şi astfel ar avea o cifră mai precisă: 28.65 ani (de exemplu) şi, dacă doriţi doar ani se poate utiliza int () funcţie care va reveni doar o parte din numărul.

  3. Alex spune:

    Un exemplu bun! Multumesc pentru info

  4. jimmy spune:

    Hei, oameni buni, post-, care a servit-mi adevărul până în prezent este de a ajuta aparatul de fotografiat ca am grax.

  5. Ignacio jose spune:

    Prietenul tau mesaj foarte bun ca tine pentru a seta formatul DateTimePicker ZZ / LL / AAAA pot obţine de QA MI (Joi doisprezece/5/1999), şi chiar nu ştiu cum

    • Elisei spune:

      Buna ziua joseph:

      trebuie doar să schimbe de control Formatdel de proprietate, precum şi:

      DateTimePicker1.Format = DateTimePickerFormat.Short

      Noroc

  6. John F. spune:

    O consultare este, probabil, prea uşor, dar am putea schimba modul de afişare a datei în datetiempicker, pentru a-mi arata ca: Vineri, douăzeci şi şapte noiembrie 2009, am nevoie pur şi simplu: 27/11/2009.

    care ar fi, mulţumesc.

  7. John F. spune:

    Ne pare rău, comentariul nu a văzut înainte, care răspunde la întrebarea mea, mulţumesc.

  8. mcinpapr spune:

    Buna ziua ... am o problema ... eu sunt, folosind două vb.net DateTimePicker în 2005 şi atunci când selectaţi o dată în DateTimePicker două ar trebui să iau diferenţa dintre două date ... Funcţia este la început "ValueChanged" de-al doilea ... Dacă-l executaţi, dar am scade mereu o zi decât am ar trebui să dea ... de exemplu ... Daca plec de la data de astăzi DateTimePicker prima (21/12/2009) şi selectat în a doua zi (22/12 / 2009) returnează-mi o valoare de 0 ... dacă-l aleg de la 23 de mi se întoarce valoarea de 1. Funcţia folosită este după cum urmează:

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

    Oricine ştie ce ar putea fi ceea ce se întâmplă vă rog?

  9. Lilimarlet spune:

    Buna ziua, ce mai faci?
    Am o interogare ei, cum pot obţine doar în ziua de FEHA, uite am o caseta de text în cazul în care voi arăta feha "01/01/2009" şi am nevoie de o zi.

    Am acest

    zi dim ca întreg
    Zi = (tfecha.text)

    Eu nu aduc nimic, dar a pus

    Dim ani ca integer
    an = an (tfecha.text)

    I arată ani aici, dar am nevoie de zile

  10. H carlos spune:

    Scuza-ma ca fac dataTimerPicker I debuelva an-lună-zi os "aaaa / ll / zz" pentru a selecta o dată, am nevoie de o interogare in MySQL şi datele în acest format le pastreaza ("aaaa / ll / zz" ) .....

    Dacă aş putea fi ghidul agradesco ... Multumesc anticipat.

    • gagugu spune:

      vB ps dacă există şi funcţia de format particularizat de utilizare, şi CustomFormat yyy / MM / dd

  11. Jennifer spune:

    Vă mulţumesc foarte mult pentru informaţii. A fost de mare ajutor.

  12. Hanner Oviedo spune:

    Bun management nu este foarte bun VB şi eu lucrez la acest eveniment, dar primesc eroare 424 lovit puţin am făcut, sper că de ajutorul tau

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

    Mulţumesc.

  13. DjMiki spune:

    Elisei bun prieten, multumesc pentru funcţia dumneavoastră mi-a servit, dar am un detaliu, rezultatul îmi dă DateDiff este negativ, urmaţi exemplul pe care o dă, dar egal, încercaţi să-l treacă în şir, int, cint, CStr, şi nimic nu ajutor va rog.

  14. DjMiki spune:

    Ei bine, Elisei scuza probleme, dar de bună şi de a rezolva problema mea, dar cred că aţi plasat parametrii de ordine sunt invers, şi mă refer la data de 1 şi data de 2, iar apoi ar trebui să fie date1 Date2.
    Ei bine corectat, acum luptă cu compararea de acest rezultat.

  15. Elkin V spune:

    Hei prieten vă mulţumesc foarte utile
    Este foarte uşor de lol

    O rămăşiţă de timp mai târziu încercând să găsească ceva

    Am aruncat o mare favoare!

Comentariu