Autore Topic: Calcolare differenza date.  (Letto 2884 volte)

Offline tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
Calcolare differenza date.
« il: 26 Gennaio 2008, 11:38:13 »
Salve,
volevo sottoporvi un problema che non riesco a risolvere, neanche con i pochi esempi che ho trovato in giro, praticamente si tratta di questo:
ho due campi dove inserisco delle date nel formato dd/mm/yyyy tramite DateChooser e vorrei calcolare la differenza in giorni che andrà a popolare un terzo campo.
Naturalmente il calcolo deve essere immediato dopo aver inserito la seconda data.
Vi ringrazio anticipatamente per gli eventuali suggerimenti.
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: Calcolare differenza date.
« Risposta #1 il: 26 Gennaio 2008, 13:23:15 »
Puoi usare la funzione DateDiff del componente gb.vb inserendolo nell'evento Click del secondo DateChooser.
Cioè, clicchi su un pulsante e chiami il datechooser.
Poi, al ritorno da esso, calcoli la differenza così:

Differenzadata = DateDiff("formato", CampoData1.Value, CampoData2.Value)

In "formato" va messo l'intervallo che vuoi usare: "yyyy" per la misura in anni, "d" per giorni, ecc..
Trovi tutto nella documentazione in locale di Gambas.
Visita il mio sito personale: http://www.leonardomiliani.com

Offline tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
Re: Calcolare differenza date.
« Risposta #2 il: 28 Gennaio 2008, 21:10:13 »
Grazie leo72 per la rapida risposta,
e vero che nella documentazione e riportato ciò che ho chiesto, ma non sempre, almeno per me e di facile interpretazione visto che quasi tutta la documentazione e priva di esempi esplicativi pratici, sempre secondo il mio punto di vista e il mio breve periodo di approccio a gambas.
Ti chiedo se possibile un ulteriore spiegazione in più, ho cercato di mettere in pratica il tuo suggerimento ma niente da fare, ma al posto di CampoData1.Value e CampoData2.Value che ci devo mettere ?
Grazie per la disponibilità.
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: Calcolare differenza date.
« Risposta #3 il: 28 Gennaio 2008, 21:47:13 »
Hai detto che utilizzi un DataChooser per impostare la data, giusto?
Quindi immagino che visualizzerai la scelta dell'utente in un qualche oggetto. Il più indicato è il ValueBox, che può visualizzare numeri, date ecc.. formattando in automatico il testo da visualizzare in base al tipo di dati.
Prendi quindi un paio di ValueBox, rinominali con CampoData1 e CampoData2 e poi assegnagli i valori scelti dall'utente con il DataChooser e poi aggiungi il codice che ti ho dato.
Visita il mio sito personale: http://www.leonardomiliani.com

Offline tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
Re: Calcolare differenza date.
« Risposta #4 il: 28 Gennaio 2008, 23:57:01 »
Allora leo72 mi hai messo in difficoltà.
Prima di tutto mi scuso perchè non avevo specificato gli oggetti interessati che nel mio caso sono due TextBox che contengono le date, secondo non ho mai usato le ValueBox, se non fossero utilizzabili le TextBox e la cosa sconvolgerebbe il mio progetto (complesso) a buon punto, potresti farmi un esempio di come usare le ValueBox con il DateChooser in modo da poter riadattare il tutto. Grazie
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: Calcolare differenza date.
« Risposta #5 il: 29 Gennaio 2008, 22:41:53 »
Puoi benissimo fare anche con le TextBox ma le ValueBox sono studiate per contenere diversi tipi di dato (basta cambiarne il tipo nella proprietà "Type").
Ti allego uno scarnissimo esempio dove ci sono 2 DataChooser.Cliccando sopra ad essi riempi 2 ValueBox. In fondo trovi un pulsante che, premuto, calcola la differenza in giorni fra le 2 date.

Io ho messo i DataChooser nel form, anche se sarebbe carino richiamarli con u form di dialogo e poi passare il valore scelto dall'utente all'applicazione :-)
Visita il mio sito personale: http://www.leonardomiliani.com

Offline tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
Re: Calcolare differenza date.
« Risposta #6 il: 01 Febbraio 2008, 22:07:34 »
Grazie leo72 tutto chiaro e funzionante, ho adattato il tutto al mio progetto in modo molto semplice con il tuo esempio.
Finalmente qualcuno che spiega con semplicità.
Molte grazie nuovamente e alla prossima occasione.
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)