Calcoli tra date (DateTimePicker - DateDiff)

Oggi voglio mostrarvi come eseguire calcoli su date confortevole Visual Basic. NET utilizzando la funzione DateDiff.

Hai bisogno di una forma, un pulsante, una label ed un controllo DateTimePicker, come mostrato nell'immagine qui sotto:

e l'evento fare clic sul pulsante sarà il seguente codice:

 txtAños.Text = DateDiff (DateInterval.Year, DateTimePicker1.Value, Now.Date) & "anni"
 txtMeses.Text = DateDiff (DateInterval.Month, DateTimePicker1.Value, Now.Date) & "mesi"
 txtSemanas.Text = DateDiff (DateInterval.Day, DateTimePicker1.Value, Now.Date) / 7 & "settimane"
 txtDias.Text = DateDiff (DateInterval.Day, DateTimePicker1.Value, Now.Date) & "giorni"

eseguire l'applicazione, selezionare una data in passato e premere il pulsante Calcola. Il risultato sarà simile a questa immagine:

Questo è un esempio molto semplice, basta guardare il codice e prendere un po 'e sono sicuro che non avrai dubbi, ma se avete qualsiasi, basta lasciare il tuo commento.

Spero che si impara.

18 Responses to "calcoli tra date (DateTimePicker - DateDiff)"

  1. Bitacoras.com informazioni ...

    Tasso di Bitacoras.com: Oggi voglio mostrarvi come eseguire calcoli tra date in Visual Basic Net utilizzando la funzione DateDiff.. Hai bisogno di una forma, un pulsante, qualche etichetta? S e un controllo DateTimePicker, come mostrato nei seguenti ...

  2. Pietro dice:

    Ciao prima di tutto vi ringrazio.

    Ho una preoccupazione.

    Oggi è 29 Apr 2009
    Sono nato nel settembre 1980

    secondo
    txtAños.Text = DateDiff (DateInterval.Year, DateTimePicker1.Value, Now.Date) & "anni"

    ora ho 29 anni

    ma non è così, perché ho appena compiuto 28 anni a settembre

    e modificare il codice

    grazie ancora

    • Eliseo dice:

      Pietro, rivolgo un po 'di informazioni:

      Se Interval è impostato su DateInterval.Year, il valore di ritorno è semplicemente calcolato dalle parti anno delle due date. Analogamente, il valore restituito per DateInterval.Month è semplicemente calcolato dalle parti dell 'anno e il mese degli argomenti.

      Per esempio, quando si confrontano 31 Dicembre-1 gennaio dell'anno prossimo, DateDiff restituisce 1 per DateInterval.Year o DateInterval.Month, ma solo tanto è passato un solo giorno.

      In questi casi vi consiglio, ad esempio, utilizzare sempre l'intervallo e dividendo per DateInterval.Day 365 e così sarebbe una cifra più precisa: 28,65 anni (per esempio) e se si desidera solo l'anno è possibile utilizzare la funzione int () si ritorna solo la parte intera del numero.

  3. Alex dice:

    Un buon esempio! Grazie per le informazioni

  4. jimmy dice:

    Ehi uomini buon post che mi ha servito la verità finora è aiutare la fotocamera come ho Grax.

  5. jose ignacio dice:

    il tuo amico dopo molto buoni come te per impostare il formato DateTimePicker GG / MM / AAAA per qa me out (Giovedi, May 12, 1999) E io davvero non so come

    • Eliseo dice:

      Ciao Giuseppe:

      è sufficiente modificare il controllo Formatdel proprietà, in questo modo:

      DateTimePicker1.Format = DateTimePickerFormat.Short

      Fortuna

  6. John F. dice:

    Una consultazione è forse troppo facile, ma potrei cambiare il modo di visualizzare la data nella datetiempicker, a me sembra: Venerdì 27 Novembre 2009, la necessità semplice: 27/11/2009.

    che sarebbe, grazie.

  7. John F. dice:

    Il commento non avevo mai visto prima, che risponde alla mia domanda, grazie.

  8. mcinpapr dice:

    Buona sera ... ho un problema ... sto usando due DateTimePicker in vb.net 2005 e quando si seleziona una data nel DateTimePicker secondo devo prendere la differenza tra le due date di ... La funzione è iniziata alla "ValueChanged" la seconda ... se lo si esegue, ma mi sottrae sempre un giorno di quello che dovrebbe dare ... per esempio ... Se lascio la data odierna per la prima DateTimePicker (21/12/2009) e selezionato nella seconda il giorno successivo (22/12 / 2009) mi restituisce un valore pari a 0 ... se lo seleziona il 23 mi restituisce 1. La funzione che uso è:

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

    Qualcuno sa che cosa può essere ciò che accade per favore?

  9. Lilimarlet dice:

    Ciao, come sono?
    Ho un loro query, come posso ottenere solo il giorno della FEHA, guarda io ho una casella di testo dove mostrare la FEHA "2009/01/01" e ho bisogno di un giorno.

    Ho questo

    dim come il giorno intero
    giorno = giorno (tfecha.text)

    Non ho portato nulla, ma mettere

    As anno intero
    anno = anno (tfecha.text)

    I indica l'anno qui ma ho bisogno del giorno

  10. Carlos h dice:

    Come mi scuso che ho debuelva dataTimerPicker anno-mese-giorno osso "aaaa / mm / dd" per selezionare una data, ho bisogno di una query Mysql e la data salva in quel formato ("yyyy / mm / gg" ) ... ..

    Se potessi essere la guida agradesco ... Grazie in anticipo.

  11. Jennifer dice:

    La ringrazio molto per le info. E 'stato un grande aiuto.

  12. Oviedo Hanner dice:

    Una buona gestione non è molto sviluppato VB e sto questo evento ma ottengo errore 424 non ha colpito il poco che ho fatto, spero che il vostro aiuto

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

    Grazie.

  13. DjMiki dice:

    Eliseo buon amico, grazie per la vostra funzione mi ha servito, ma io sono un dettaglio, il risultato mi dà la DateDiff è negativa, seguire l'esempio che stai dando, ma ancora, cerco di passarla come string, int, CInt, CStr, e niente un aiuto per favore.

  14. DjMiki dice:

    Eliseo Beh scusa il fastidioso ma buono e risolvere il mio problema, ma penso che hai effettuato i parametri dell'ordine sono il contrario, e voglio dire la data data 1 e 2, allora dovrebbe essere Data1 Date2.
    Ben corretto, ora alle prese con confronto di questo risultato.

  15. Elkin V dice:

    Ehi amico Thank You Very utili
    E 'così semplice lol

    Prendere una pausa di tempo cercando di trovare qualcosa

    Echo Make Me un favore!

Commento