Beregninger mellem datoer (DateTimePicker - DateDiff)

I dag vil jeg vise, hvordan man udføre beregninger mellem datoer komfortable i Visual Basic. Net bruge funktionen DateDiff.

Brug for en formular, knap, nogle etikettens og en DateTimePicker kontrol som vist på billedet nedenfor:

og i knap klik omstændigheder vil følgende kode:

 txtAños.Text = DateDiff (DateInterval.Year, DateTimePicker1.Value, Now.Date) & "år"
 txtMeses.Text = DateDiff (DateInterval.Month, DateTimePicker1.Value, Now.Date) & "måneder"
 txtSemanas.Text = DateDiff (DateInterval.Day, DateTimePicker1.Value, Now.Date) / 7 & "uge"
 txtDias.Text = DateDiff (DateInterval.Day, DateTimePicker1.Value, Now.Date) & "dage"

køre programmet, valgte vi en fortid dato, og tryk på Beregn-knappen. Resultatet vil svare til dette billede:

Dette er et meget simpelt eksempel, bare se på noget kode og screenshots, og jeg er sikker på du ikke er i tvivl, men hvis du skulle have noget, bare lade din kommentar.

Håber det hjælper.

18 Responses to "beregninger mellem datoer (DateTimePicker - DateDiff)"

  1. Bitacoras.com siger:

    Information Bitacoras.com ...

    Rate i Bitacoras.com: I dag ønsker jeg at vise, hvordan man udføre beregninger mellem datoer i Visual Basic nettet ved hjælp af funktionen DateDiff.. Brug for en formular, knap, nogle label? S DateTimePicker kontrol, som vist i føl ...

  2. Peter siger:

    Hej først og fremmest tak.

    Jeg har en bekymring.

    I dag er April 29, 2009
    Jeg blev født i september 1980

    efter
    txtAños.Text = DateDiff (DateInterval.Year, DateTimePicker1.Value, Now.Date) & "år"

    nu har jeg 29 år

    men det er ikke så, jeg har 28 til min fødselsdag for nylig i september

    og ændre koden

    Tak igen

    • Elisa siger:

      Peter, jeg strækker dig lidt information:

      Hvis Interval er sat til DateInterval.Year, er returværdien blot beregnes fra år dele af de to givne datoer. Tilsvarende er den returnerede værdi for DateInterval.Month blot beregnes fra parterne i år og måned af argumenterne.

      For eksempel, når man sammenligner 31 december - 1 januar næste år DateDiff returnerer 1 for DateInterval.Year eller DateInterval.Month, men kun så meget har passeret en enkelt dag.

      I disse tilfælde vil jeg anbefale, for eksempel altid bruge området og dividere med 365 DateInterval.Day, og så ville have en mere nøjagtig figur: 28,65 år (for eksempel), og hvis du bare vil have det år, du kan bruge int () funktion, der vil vende tilbage kun en del af nummer.

  3. Alex siger:

    Et godt eksempel! Tak for info

  4. Jimmy siger:

    Hey Godt indlæg mænd, der tjente mig sandheden så langt som hjælper kameraet som jeg grax.

  5. Ignacio jose siger:

    dit indlæg meget god ven, som du indstille DateTimePicker formatet DD / MM / ÅÅÅÅ jeg får af QA MI (Torsdag, 12 maj, 1999) og ikke rigtig ved, hvordan

    • Elisa siger:

      Hej Joseph:

      du bare nødt til at ændre ejerskabet Formatdel kontrol samt:

      DateTimePicker1.Format = DateTimePickerFormat.Short

      Luck

  6. John F. siger:

    En høring er måske for let, men jeg kunne ændre den måde, at vise datoen i datetiempicker, for mig ligner: Fredag, 27 November, 2009, jeg har brug for bare: 27/11/2009.

    det ville være, tak.

  7. John F. siger:

    Beklager, havde den kommentar ikke er set før, som besvarer mit spørgsmål, tak.

  8. mcinpapr siger:

    God eftermiddag ... Jeg har et problem ... Jeg bruger to DateTimePicker i vb.net 2005, og når jeg vælger en dato i andet DateTimePicker skal jeg tage forskellen mellem to datoer ... Funktionen er startet på "ValueChanged" den anden ... Hvis du kører det, men jeg har altid trække en dag, end jeg skulle give ... for eksempel ... Hvis jeg forlader dags dato til den første DateTimePicker (21/12/2009) og valgt i den anden den næste dag (22/12 / 2009) returnerer mig en værdi på 0 ... hvis du vælger ham på 23 afkast mig værdien af ​​1. Den anvendte funktion er som følger:

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

    Alle ved, hvad der kan være hvad sker der så?

  9. Lilimarlet siger:

    hej, hvordan går det?
    Jeg har en forespørgsel dem, som jeg kan få lige den dag, FEHA, ser jeg har en tekstboks, hvor jeg viser feha "2009/01/01" og jeg har brug for en dag.

    Jeg har denne

    dim dage som heltal
    dag = dag (tfecha.text)

    Jeg bringer ikke noget, men satte

    Dim år As Integer
    år = år (tfecha.text)

    I viser her, men jeg har brug for den dag,

  10. Carlos H siger:

    Undskyld mig, da jeg gør dataTimerPicker jeg debuelva år-måned-dag knogle "yyyy / mm / dd" for at vælge en dato, jeg har brug for en forespørgsel i MySQL, og datoerne i dette format holder dem ("yyyy / mm / dd" ) .....

    Hvis jeg kunne være agradesco vejledning ... På forhånd tak.

    • gagugu siger:

      vB ps hvis der er funktion og anvendelse brugerdefineret format, og CustomFormat yyy / MM / dd

  11. Jennifer siger:

    Mange tak for oplysningerne. Det var en stor hjælp.

  12. Hanner Oviedo siger:

    God ledelse er ikke meget godt VB og jeg arbejder denne begivenhed, men jeg får fejl 424 ramte den lille jeg har gjort, håber jeg for din hjælp

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

    Tak.

  13. DjMiki siger:

    God ven Elisa, tak for din funktion tjent mig, men jeg har en detalje, resultatet giver mig DateDiff er en negativ følge det eksempel, du giver, men lige forsøge at videregive det som string, int, Cint, CSTR, og intet lidt hjælp tak.

  14. DjMiki siger:

    Nå Elisa undskylder den ulejlighed, men god og løse mit problem, men jeg tror, ​​du har afgivet ordren parametre er den anden vej rundt, og jeg mener dato 1 og dato 2, og derefter være Dato1 date2.
    Nå rettet, nu kæmper med sammenligning af dette resultat.

  15. Elkin V siger:

    Hej ven Tak Meget nyttige
    Det er meget nemt lol

    En rest af tid senere forsøge at finde noget

    Skal jeg kaste en stor tjeneste!

Kommentar