Newsgroup: it.comp.lang.visual-basic
Titolo: Confronto tra date

Ciao a tutto il NG,
subito al dunque...
come posso ottenere la differenza in giorni (negativi o positivi) tra
una data inserita in un campo con formato  "gg/mm/aaaa" e l'attuale
ottenuta con "Left(Now(), 10)".
grazie a tutti per il tempo che mi vorrete dedicare.
Ciao.
--
.:: necrøs ::.

 grazie a tutti per il tempo che mi vorrete dedicare.
Prova a guardare la datediff
Ciao

ottenuta con "Left(Now(), 10)".
left() si usa con stringhe, Now() ritorna una data...
lasciare che il type casting lo faccia vb non è bona cosa
comunque la funzione che cercavi è datediff()
Ciao,
Moreno
-- 
sirri at morenosoft dot com
Moreno Sirri VB Site - 
http://www.msvbsite.net
---------------------------------------------------------------------------
Le risposte alle tue domande le trovi sul Sito Comune di questo NewsGroup:
 
http://www.it-lang-vb.net
---------------------------------------------------------------------------


Leggendo il post di Moreno devo aggiungere che effettivamente formattare la
data non serve ad un fico secco, ma se proprio vuoi, non formattarla in
dd/MM/yyyy , io mi sentirei piů sicuro in yyyy/MM/dd

 ottenuta con "Left(Now(), 10)".
Traduzione:
"
come posso ottenere la differenza in giorni tra
una data e l'attuale ottenuta Date()?
"
' le date sono double che indicano
' i ventiquattresimi di giorno.
CLng((Date - MiaData) * 24)
P.S.: per far inderire date uda il DateTimePicker, altrimenti usa il formato
yyyy/mm/dd che non è ambiguo.
Ciao

 ottenuta con "Left(Now(), 10)".
Se sei sicuro (ma sicuro sicuro) che la data sarà inserita come gg/mm/aaaa,
anche qualora su una installazione il sistema operativo e/o l'utente fossero
ad esempio inglesi, allora:
Differenza=DateDiff("d",DateSerial(Val(Mid$(Text1.Text,7,4)),Val(Mid$(Text1.
Text,4,2)),Val(Mid$(Text1.Text,1,2))),Now())
Sarebbe meglio effettuare una verifica che text1.text contenga
effettivamente la data. E tale verifica non potrà avvenire con un semplice
IsDate, perhcè IsDate accetta formati diversi da quello che hai indicato tu.
Dovrai farti una funzioncina leggermente più complessa.
Oppure, metti tutto sotto on error e incroci le dita (quasi quasi cancello
quest'ultima riga...)
Ciao
Alberto
--
E non so se avrò gli amici a farmi il coro,
o se avrò soltanto volti sconosciuti,
canterò le mie canzoni a tutti loro
e alla fine della strada
potrò dire che i miei giorni li ho vissuti...

 CLng((Date - MiaData) * 24)
Ma la parte intera non erano i giorni?
Salutoni
Sergio


Si.


 Ma la parte intera non erano i giorni?
E la parte decimale sono i "24esimi" di giorno.
Ciao


La parte decimale sono anche i cinquecentosettantatreesimi di giorno, se
vogliamo entrare nel dettaglio.
Comunque, a parte gli scherzi, la parte decimale è... la parte decimale.
0.1 = 2.4 ore = 2h24'
0.01 = 0.24 ore = 14.4' = 14'24"
Ecc..


Text,4,2)),Val(Mid$(Text1.Text,1,2))),Now())
Io ho risolto seguento il consiglio di Moreno in questo modo:
    t1 = Left(Now(), 10)
    t2 = Text1.Text
    t3 = DateDiff("d", t1, t2)
quindi t3 mi restituisce la differenza positiva o negativa in giorni
tra le due date.
Per quello che devo fare funziona alla grande.
Ciao a tutti e grazie ancora, 
--
.:: necrøs ::.

 Per quello che devo fare funziona alla grande.
A parte la purezza stilistica pressochè nulla (ma è una tua scelta e non la
posso discutere), tieni presente che la tua soluzione non funziona su
sistemi operativi con impostazioni internazionali diverse dall'italiano.
