PDA

Visualizza versione completa : [VB6] Sottrazione tra 2 date


Jamester
10-05-2008, 14.32.14
Buon pomeriggio a tutti. Quest'oggi la mia domanda e' la seguente:

Come imposto su un form 2 diciamo campi che debbano contenere le date in formato gg/mm/aaaa e che cn un pulsante mi ricavi i giorni sottraendo dal secondo campo il primo? Che tipo di campo devo impostare e poi come tipo devo fare a formattare il suddetto campo (se e' questa la via) ? grazie :)

LoryOne
10-05-2008, 16.27.31
E' una bella domanda la tua perchč interessante.
Esiste un controllo aggiuntivo in VB che se non ricordo male si chiama maskedit. maskedit č un controllo che data una maschera di inserimento associata ad una textbox, consente di digitare caratteri all'interno del campo in base alla loro tipologia (lettere o numeri) e posizione ricorperta all'interno della maschera di input specificata.
Nel tuo caso, supponendo una maschera di input come questa:
##/##/####
all' utente verrebbe consentito di immettere solo numeri (8 per la precisione), poichč al carattere '#' il controllo aggiuntivo associerebbe come valida solamente la pressione di un tasto numerico. Il carattere '/' verrebbe lasciato inalterato in quanto esso non figurerebbe tra i caratteri mascherabili.
Il risultato finale potrebbe essere il seguente: 09/05/2008
Per quanto riguarda la differenza in giorni, devi considerare il fatto che la data odierna č di per se un numero e che il suo valore č un contatore incrementale ad iniziare da una certa data ad una certa ora.
Se tu riuscissi a ricavare il valore del contatore relativo alla data odierna attraverso la chiamata ad una funzione gią presente in VB6 e poi utilizzassi la stessa funzione per ricavare il valore del contatore ad una data differente, tu riusciresti a conoscere la differenza tra i due valori.
Certo tu avresti bisogno di conoscere la differenza in giorni, ma i giorni sono di 24h, ogni ora sono 60 minuti ed ogni minuto č pari a 60 secondi. Se il valore del contatore fosse in numero di secondi, saresti quindi in grado di ricavare il numero di giorni che ti interessa.

Bene ... E' proprio in questo modo che il computer ricava l 'ora attuale e di conseguenza la data odierna.
In particolare, la funzione in VB6 che scoverai girovagando nell' aiuto in linea (tale funzione č presente anche in Excel) richiamerą a sua volta una API che a sua volta richiamerą il codice numerico di una funzione che in seguito a chiamata di interrupt riempirą 3 registri con i valori di giorno, mese ed anno che riempiranno una struttura dati che restituirą il valore del contatore.
Incasinato eh ? ;)