Beräkningar mellan datum (DateTimePicker - DateDiff)

Idag vill jag visa hur man utför beräkningar mellan datum bekväma i Visual Basic. Net med DateDiff funktionen.

Behöver du en form, knapp, några etikettens och DateTimePicker kontroll som visas i bilden nedan:

och knappen klick händelse kommer följande kod:

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

köra programmet, valde vi ett förflutet datum och tryck på beräkna knappen. Resultatet kommer att likna denna bild:

Detta är ett mycket enkelt exempel, titta bara på några nummer och skärmdumpar och jag är säker på att du inte kommer att ha tvivel, men om du skulle få några, bara lämna din kommentar.

Hoppas att detta hjälper.

18 Responses to "beräkningar mellan datum (DateTimePicker - DateDiff)"

  1. Bitacoras.com säger:

    Informationen Bitacoras.com ...

    Takt Bitacoras.com: Idag vill jag visa hur man utför beräkningar mellan datum i Visual Basic Net med DateDiff funktionen.. Behöver du en form, knapp, lite etikett? S DateTimePicker kontroll, som visas i föl ...

  2. Peter säger:

    Hej först och främst tacka er.

    Jag har ett problem.

    Idag är April 29, 2009
    Jag föddes i september 1980

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

    nu har jag 29 år

    men det är inte så, jag har 28 på min födelsedag nyligen i September

    och ändra koden

    Tack igen

    • Elisha säger:

      Peter, förlänga jag dig lite information:

      Om intervall är satt till DateInterval.Year är returvärdet enkelt beräknas från och med år delar de givna två datum. På samma sätt är returvärdet för DateInterval.Month enkelt beräknas från parterna i år och månad för argumenten.

      Till exempel, när man jämför 31 december-1 Januari nästa år, återvänder DateDiff 1 för DateInterval.Year eller DateInterval.Month, men endast så mycket har gått en enda dag.

      I de fall jag rekommenderar till exempel alltid använda området och dividera med 365 DateInterval.Day och skulle ha en mer exakt siffra: 28,65 år (till exempel) och om du bara vill det år du kan använda int () funktion som returnerar endast en del av numret.

  3. Alex säger:

    Ett bra exempel! Tack för info

  4. jimmy säger:

    Hej bra efter män som tjänade mig sanningen så långt är att hjälpa kameran som jag grax.

  5. Ignacio jose säger:

    ditt inlägg mycket god vän som du kan ställa in DateTimePicker formatet DD / MM / ÅÅÅÅ Jag klarar mig qa MI (Torsdag 12 maj 1999) och verkligen inte vet hur

    • Elisha säger:

      Hej Josef:

      du bara ändra kontrollen ägare Formatdel också:

      DateTimePicker1.Format = DateTimePickerFormat.Short

      Lycka

  6. John F. säger:

    Ett samråd är kanske alltför lätt, men jag skulle kunna ändra sättet att visa datum i datetiempicker för mig ser ut: Fredag ​​27 November, 2009, behöver jag helt enkelt: 27/11/2009.

    det skulle vara, tack.

  7. John F. säger:

    Tyvärr hade kommentaren inte sett förut, som svarar på min fråga, tack.

  8. mcinpapr säger:

    God eftermiddag ... Jag har ett problem ... Jag använder två DateTimePicker under vb.net 2005 och när jag väljer ett datum i den andra DateTimePicker ska jag ta skillnaden mellan två datum ... Funktionen startas på "ValueChanged" andra ... Om du kör det, men jag har alltid dra en dag än vad jag skulle ge ... till exempel ... Om jag lämnar dagens datum till den första DateTimePicker (21/12/2009) och valt i den andra nästa dag (22/12 / 2009) returnerar mig ett värde på 0 ... om du väljer honom på 23 returer mig värdet 1. Funktionen som används är enligt följande:

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

    Någon som vet vad som kan vara vad som händer tack?

  9. Lilimarlet säger:

    Hej, hur mår du?
    Jag har en fråga dem, som jag kan få precis samma dag som FEHA ser har jag en textruta där jag visar feha "2009/01/01" och jag behöver en dag.

    Jag har den här

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

    Jag ta ingenting, men lägg

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

    I visar här, men jag behöver den dag

  10. Carlos h säger:

    Ursäkta mig när jag gör dataTimerPicker I debuelva år-månad-dag ben "åååå / mm / dd" för att välja ett datum, jag behöver för en fråga i MySQL och datum i detta format håller dem ("åååå / mm / dd" ) .....

    Om jag kunde bli agradesco guiden ... Tack på förhand.

    • gagugu säger:

      vB ps om det är en funktion och användning eget format och CustomFormat yyy / MM / dd

  11. Jennifer säger:

    Tack så mycket för informationen. Det var en stor hjälp.

  12. Hanner Oviedo säger:

    God förvaltning är inte så bra VB och jag jobbar denna händelse men jag får felmeddelande 424 träffar det lilla jag har gjort, hoppas jag din hjälp

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

    Tack.

  13. DjMiki säger:

    God vän Elisa, serveras tack för din funktion mig, men jag har en detalj, ger resultatet mig DateDiff är en negativ, följer exemplet du ger, men lika försök att föra den som en sträng, int, Cint, CSTR, och ingenting hjälp snälla.

  14. DjMiki säger:

    Väl Elisa ursäkta besväret men god och lösa mitt problem, men jag tror du gjorde beställningen parametrarna är tvärtom, och jag menar datumet 1 och datum 2, och sedan vara datum_1 datum_2.
    Tja korrigeras, nu kämpar med jämförelse av detta resultat.

  15. Elkin V säger:

    Hej vän Tack Mycket användbart
    Det är väldigt enkelt lol

    En kvarleva av tid på att försöka senare hitta något

    Gör kastade jag en stor tjänst!

Kommentar