Calcoli tra le date (DateTimePicker - DateDiff)

Oggi voglio mostrarvi come eseguire calcoli tra le date confortevoli in Visual Basic. NET utilizzando la funzione DateDiff.

Hai bisogno di una forma, un pulsante, un po 'dell'etichetta e un controllo DateTimePicker, come mostrato nell'immagine sottostante:

e nel caso 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, abbiamo selezionato una data passata e premere il pulsante Calcola. Il risultato sarà simile a questa immagine:

Questo è un esempio molto semplice, basta guardare un po 'di codice e screenshot e sono sicuro che non avrete dubbi, ma se si dovesse avere qualsiasi, basta lasciare il tuo commento.

Spero che questo aiuti.

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

  1. Informazioni Bitacoras.com ...

    Rate in Bitacoras.com: Oggi voglio mostrarvi come eseguire calcoli tra le date in Visual Basic Net utilizzando la funzione DateDiff.. Hai bisogno di una forma, un pulsante, qualche etichetta? Controllo DateTimePicker S, come mostrato nella fol ...

  2. Pietro dice:

    Ciao prima di tutto vi ringrazio.

    Ho una preoccupazione.

    Oggi è il 29 aprile 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ì, ho 28 per il mio compleanno recentemente nel mese di settembre

    e modificare il codice

    grazie ancora

    • Elisha ha detto:

      Pietro, si estende un po 'di informazioni:

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

      Per esempio, quando si confrontano 31 dicembre - 1 gennaio del prossimo anno, DateDiff restituisce 1 per DateInterval.Year o DateInterval.Month, ma solo per quanto è passato un solo giorno.

      In questi casi vi consiglio, ad esempio, utilizzare sempre la gamma e dividere per DateInterval.Day 365 e quindi avrebbe un cifra più precisa: 28.65 anni (per esempio) e se si desidera solo l'anno è possibile utilizzare la funzione int () che restituirà solo una parte del numero.

  3. Alex dice:

    Un buon esempio! Grazie per le informazioni

  4. jimmy ha detto:

    Hey uomini buoni postali che mi ha servito la verità finora è aiutare la fotocamera come ho Grax.

  5. jose ignacio dice:

    il tuo amico dopo molto buono come te per impostare il formato DateTimePicker GG / MM / AAAA ci riesco qa MI (Giovedi, 12 maggio 1999) e davvero non so come

    • Elisha ha detto:

      Ciao joseph:

      basta modificare il controllo Formatdel proprietà anche:

      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 appare come segue: Venerdì 27 Novembre 2009, ho bisogno semplicemente: 27/11/2009.

    che sarebbe, grazie.

  7. John F. dice:

    Siamo spiacenti, il commento non avevo mai visto prima, che risponde alla mia domanda, grazie.

  8. mcinpapr dice:

    Buon pomeriggio ... ho un problema ... sto usando due DateTimePicker in vb.net 2005 e quando si seleziona una data in DateTimePicker secondo dovrei prendere la differenza tra due date ... La funzione viene avviato presso il "ValueChanged" la seconda ... Se si esegue, ma ho sempre sottrarre un giorno che avrei dovuto dare ... per esempio ... Se lascio la data odierna alla DateTimePicker prima (21/12/2009) e selezionato nella seconda il giorno successivo (22/12 / 2009) mi restituisce un valore pari a 0 ... se lo si seleziona il 23 mi restituisce il valore di 1. La funzione utilizzata è la seguente:

    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 stai?
    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 questa

    giorno dim as integer
    giorno = giorno (tfecha.text)

    Io non portare nulla, ma mettere

    Dim anni As Integer
    anno = anno (tfecha.text)

    I indica l'anno qui, ma ho bisogno del giorno

  10. Carlos h dice:

    Mi scusi, come faccio la dataTimerPicker I debuelva anno-mese-giorno ossa "yyyy / mm / dd" per selezionare una data, ho bisogno di una query in Mysql e le date in questo formato li tiene ("aaaa / mm / dd" ) .....

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

  11. Jennifer ha detto:

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

  12. Hanner Oviedo dice:

    Una buona gestione non è molto buona VB e sto lavorando a questo evento ma ricevo errore 424 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:

    Elisha buon amico, grazie per la vostra funzione mi serviva, ma ho un dettaglio, il risultato mi dà la DateDiff è negativa, seguire l'esempio che stanno dando ma uguale, cercano di far passare come string, int, CInt, CStr, e nulla un aiuto per favore.

  14. DjMiki dice:

    Beh Eliseo scusa il disturbo, ma buono e risolvere il mio problema, ma penso che è stato posizionato i parametri d'ordine sono il contrario, e intendo la data 1 e data 2, quindi dovrebbe essere Date1 Date2.
    Bene corretto, ora alle prese con il confronto di questo risultato.

  15. Elkin V dice:

    Hey amico Thank You Very utili
    E 'molto facile lol

    Un residuo di tempo in seguito cercando di trovare qualcosa

    Devo lanciare un grande favore!

Commento