JavaScript  »  Guide  »  Guida VBScript 

Confronti fra date



Lavorando con degli scadenziari, può capitare di voler visualizzare le voci di colori diverso in funzione alla data odierna; nell'esempio che adesso andremo a vedere, faremo in modo che le attività scadute siano in rosso, quelle future in verde e quelle odierne in giallo.

Se per fare il confronto tra date si facesse un operazione del tipo

<SCRIPT LANGUAGE=vbscript>
if "5/11/2001"<"20/11/2001" then
document.write "Giusto"
else
document.write "Sbagliato"
end if
</SCRIPT>

ci si aspetterebbe che il risultato fosse "Giusto", invece è errato. Infatti il confronto non viene effettuato tra date, ma tra strighe: in ordine alfabetico il 5 viene dopo il 2, quindi il risultato è sbagliato.
L'accorgimento da adottare quando si vogliono fare confronti tra date, è quello di specificare che i parametri del confronto sono date. Per farlo si usa CDate

<SCRIPT LANGUAGE=vbscript>
if CDate("5/11/2001")<CDate("20/11/2001") then
document.write "Giusto"
else
document.write "Sbagliato"
end if
</SCRIPT>

Adesso il risultato è giusto.
Il modo migliore per fare confronti fra date, è tramite la funzione DateDiff: questa funzione restituisce 0 se le date sono uguali, un numero negativo se è maggiore la prima data e un numero positivo se è maggiore la seconda data.

<SCRIPT LANGUAGE=vbscript>
if DateDiff("d","5/11/2001","20/11/2001")>0
then
document.write "Giusto"
else
document.write "Sbagliato"
end if
</SCRIPT>

Questa funzione restituisce "Giusto".

Tornando al nostro esercizio, useremo DateDiff per confrontare delle date con quella odierna. Il risultato del confronto colorerà in modo diverso lo sfondo di una cella.

<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE></TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE=vbscript>
if DateDiff("d","5/11/2001","20/11/2001")>0 then
document.write "Giusto"
else
document.write "Sbagliato"
end if
</SCRIPT>
<TABLE width=75% border=1 cellspacing=1 cellpadding=1>
<TR>
<TD id=tab1><input name=data1></TD>
</TR>
<TR>
<TD id=tab2><input name=data2></TD>
</TR>
<TR>
<TD id=tab3><input name=data3></TD>
</TR>
</TABLE>
<input type=button value=Confronta >
<SCRIPT LANGUAGE=vbscript >
<!--
data1.value = DateAdd("d",-5,date())
data2.value = date()
data3.value = DateAdd("d",+6,date())
sub colora()
if DateDiff("d",data1.value,date())>0 then
tab1.bgcolor ="red"
elseif DateDiff("d",data1.value,date())<0 then
tab1.bgcolor ="green"
else
tab1.bgcolor ="yellow"
end if
if DateDiff("d",data2.value,date())>0 then
tab2.bgcolor ="red"
elseif DateDiff("d",data2.value,date())<0 then
tab2.bgcolor ="green"
else
tab2.bgcolor ="yellow"
end if
if DateDiff("d",data3.value,date())>0 then
tab3.bgcolor ="red"
elseif DateDiff("d",data3.value,date())<0 then
tab3.bgcolor ="green"
else
tab3.bgcolor ="yellow"
end if
end sub
//-->
</SCRIPT>
</BODY>
</HTML>

Ultimi articoli JavaScript

PhantomJS, headless browser per test con Javascript

Il tool ideale per realizzare, da terminale, operazioni in remoto su...

Creare e leggere QR Code in JavaScript

Applicazioni 'QR Code enabled' per il Web e per il mobile,...

Jquery UI Map: web-mapping con Google Maps e jQuery

Un plugin di jQuery UI per intefacciare applicaizoni Web/mobile con...

Scrollorama e Scrolldeck, slideshow d'effetto con jQuery

Plugin jQuery per ottenere Slideshow con diversi effetti di scrolling

jCanvas, un primo semplice grafico

Alla scoperta della libreria jCanvas, per semplificare il disegno e...

Altri articoli

Guide JavaScript

Guida Node.js

Il framework che permette di per usare V8, l'interprete JavaScript...

Canvas, guida ai framework

Canvas, tra gli elementi di HTML5 è forse quello di maggior impatto....

Guida Javascript: tecniche avanzate

Una guida dal taglio pratico per approfondire la programmazione a...

Altre guide

Newsletter @JavaScript

Ogni martedì, direttamente nella tua e-mail: guide, articoli, script, novità e approfondimenti tecnici su JavaScript.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso Webmaster base

18 Giugno 2012 a Milano
Disponibilità: 6 Posti

Corso Google AdWords Base

25 Giugno 2012 a Milano
Disponibilità: 7 Posti

Corso JQuery e Ajax per Webmaster

03 Luglio 2012 a Milano
Disponibilità: 7 Posti

Corso Google AdWords Base

05 Giugno 2012 a Roma
Disponibilità: 7 Posti

Corso Webmaster base

11 Giugno 2012 a Roma
Disponibilità: 7 Posti