Newsgroup: it.comp.www.asp
Titolo: Confronto tra due date

Ciao,
forse la domanda è già stata fatta in tutte le salse ma siccome io non so la
risposta provo a riproporla! :-)
Devo fare un confronto tra due date:
1. data del server
2. data prelevata da un campo data/ora di un db Access
In pratica devo verificare se la data del db è maggiore della data corrente.
Come posso fare?
Grazieeeeee
Silvia

Come posso fare?
Estratto dalla guida di VBScript:
DateDiff
Restituisce un valore Variant (Long) corrispondente al numero di
intervalli di tempo tra due date specificate.
Sintassi
DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])
La sintassi della funzione DateDiff è composta dai seguenti
argomenti predefiniti:
interval: Obbligatoria. Espressione stringa corrispondente
 all'intervallo di tempo utilizzato per calcolare la differenza tra
 date1 e date2. 
date1, date2: Obbligatoria. Variant (Date). Date da utilizzare nel 
 calcolo. 
firstdayofweek: Facoltativa.Costante che specifica il primo giorno
 della settimana. Se non è specificata, verrà utilizzata Domenica.
 
firstweekofyear: Facoltativa. Costante che specifica la prima
 settimana dell'anno. Se non è specificata, verrà utilizzata la
 settimana nella quale cade il 1 gennaio. 
Impostazioni
Le possibili impostazioni dell’argomento interval sono:
yyyy Anno 
q Trimestre 
m Mese 
y Giorno dell’anno 
d Giorno 
w Giorno della settimana 
ww Settimana 
h Ora 
n Minuti 
s Secondi 
Le possibili impostazioni dell’argomento firstdayofweek sono le
seguenti:
vbUseSystem 0 Utilizza l'impostazione dell'API NLS. 
vbSunday 1 Domenica (predefinita) 
vbMonday 2 Lunedì 
vbTuesday 3 Martedì 
vbWednesday 4 Mercoledì 
vbThursday 5 Giovedì 
vbFriday 6 Venerdì 
vbSaturday 7 Sabato 
vbUseSystem 0 Utilizza l'impostazione dell'API NLS. 
vbFirstJan1 1 Inizia con la settimana comprendente il 1 gennaio
 (predefinita). 
vbFirstFourDays 2 Inizia con la prima settimana di almeno quattro
 giorni. 
vbFirstFullWeek 3 Inizia con la prima settimana completa dell'anno. 
Osservazioni
È possibile utilizzare la funzione DateDiff per determinare quanti
intervalli di tempo specificati esistono tra due date. È, ad esempio,
possibile utilizzare DateDiff per calcolare il numero di giorni che
intercorrono tra due date oppure il numero di settimane tra la data
odierna e la fine dell'anno.
Per ottenere il numero di giorni tra date1 e date2 è possibile
utilizzare sia l'impostazione del giorno dell'anno ("y") che quella
del giorno ("d"). Quando per interval viene impostato il giorno della
settimana ("w"), DateDiff restituisce il numero di settimane che
intercorrono tra le due date. Se date1 cade di lunedì, DateDiff
conterà il numero di lunedì fino a date2, includendo nel conteggio
date2 ma non date1. Se per interval viene invece impostata la
settimana ("ww"), la funzione DateDiff restituirà il numero di
settimane del calendario comprese tra le due date. La funzione conterà
il numero di domeniche che intercorrono tra date1 e date2, includendo
nel conteggio date2 se cade di domenica, ma non date1, anche se cade
di domenica.
Se date1 è successiva a date2, la funzione DateDiff restituirà un
numero negativo.
L’argomento firstdayofweek ha effetto sui calcoli che utilizzano
i simboli di intervallo "w" e "ww".
Se date1 o date2 è unvalore letterale di data, l'anno, se specificato,
diventa parte permanente della data. Se tuttavia date1 o date2 è
racchiuso tra virgolette doppie ("") e si omette l'anno, ogni volta
che l'espressione date1 o date2 viene valutata verrà inserito nel
codice l'anno corrente. Ciò rende possibile la scrittura di codice
utilizzabile per anni diversi.
Quando si esegue il confronto tra il 31 dicembre e l'1 gennaio
dell'anno immediatamente successivo, DateDiff utilizzata con
l'impostazione dell'anno ("yyyy") restituisce 1 anche se è trascorso
un solo giorno.
Davide

2. data prelevata da un campo data/ora di un db Access
Io uso ( date1 <= date2 ) e funziona bene. L'unica cosa che devi
verificare e' che le impostazioni internazionali siano conformi alle
date che hai memorizzato nel db Access (se usi costanti, ricorda che
Access non e' sql standard e devi usare #gg/mm/aaaa# invece di
'gg/mm/aaaa').
Pero' ho visto la risposta di Davide che passa per dateDiff il che mi
fa pensare che la mia risposta sia troppo semplicistica. Pero' ho un
sito (
www.serate.it
) che si basa molto su questi confronti e funziona.
Ciao!