Newsgroup: it.comp.www.asp
Titolo: DateDiff

Ragazzi ho un problema, non riesco a capire dove sbaglio nella seguente
runtine, sicuramente è un errore banale ma io proprio non ci riesco eppure
ho fatto tutto quello che mi dice il libro, è mai possibile che neanche a
copiare sono bravo?
Grazie a quelli che vogliano aiutarmi, lo script è questo;
<%@ Language=VBScript %>
<% Option Explicit %>
<%
 'Dichiaro le variabili
 Dim Scadenza, Eseguitodata
 Scadenza = Request.Form("10/12/01")
 Eseguitodata = Request.Form("12/12/01")
 Dim Giorniold
 Giorniold = DateDiff("D", Eseguitodata, Date) %>
 Sei in <%=Eseguitodata%>!  ritardo di giorni <%=Scadenza%>
<br>
ritardo giorni <%=Giorniold%>
<% 'Questo è quello che mi viene visualizzato %>
<% 'Sei in ! ritardo di giorni
'ritardo giorni 37232 %>
<% 'mi dovrebbe dare ritardo giorni 2 %>
Ciao
Giuseppe

 Eseguitodata = Request.Form("12/12/01")
Cosa intendi fare con queste istruzioni?
Ciao

 Eseguitodata = Request.Form("12/12/01")
non ci siamo!  in questo modo tu chiedi di recuperare il valore di due
input html il cui nome sia, rispettivamente, 10/12/01 e 12/10/01, cioč
č come se tu avessi, nel codice html:
data di scadenza: <input type = text name = 10/12/01> 
eseguito: <input type = text name = 12/12/01> 
capito come?
mentre invece avrai qualcosa tipo:
data di scadenza: <input type = text name = scadenza> 
eseguito: <input type = text name = eseguito> 
quindi dovresti scrivere qualcosa tipo:
per il resto ci dovremmo essere
Scadenza = Request.Form("scadenza")
Eseguitodata = Request.Form("eseguito")
(attenzione che mi pare che ci sia differenza tra maiuscole e
minuscole nei nomi dei parametri di request, per cui
request.form("eseguito") č diverso da request.form("Eseguito"))
altra cosa cui stare attenti č il formato della data.  per default si
suppone che tu la scriva all'anglosassone.  quindi 10/12/2001 e
12/12/2001 vengono interpretate rispettivamente come 12 ottobre 2001
(non 10 dicembre) e 12 dicembre 2001 (ma qui il caso č "simmetrico").
temo quindi che una datediff tra 10/12/2001 e 12/12/2001 ti
restituisca non 2, ma 63 o giů di lě.
a questo punto puoi fare diverse cose: ti scrivi le date in formato
anglosassone, le scrivi in formato yyyy/mm/dd (se il primo gruppo di
cifre č di 4, viene assunta la sequenza anno mese giorno), scrivi il
mese con tre lettere, usi l'impostazione lcid (vedere documentazione).
-- 
ben fatto, in fretta, economico: scegline due.

 Ciao
Ho creato un task da cui il capo ufficio impartisce gli ordini e i
dipendenti eseguono, quindi ho dei campi; Richiedente, data, oggetto,
scadenza, Eseguitodata, ritardo  e nome di chi esegue, vorrei che nel campo
ritardo mi venisse in automatico i giorni di ritardo, tutto qui spero sia
stato chiaro per adesso già ci stanno lavorando e va bene ma come ti dicevo
sarebbe una schicca far apparire il ritardo in gioni, ho fatto un'altro
script e mi funziona credo che sono sulla strada giusta, vedremo è questa:
<%@ Language=VBScript %>
<% Option Explicit %>
<%
Dim Scadenza, Eseguitodata, DaysLeft
Scadenza = Now()
Eseguitodata = CDate ("31/12/2001")
DaysLeft = DateDiff("d", Scadenza, Eseguitodata)
Response.Write "Ritardo giorni " & DaysLeft
%>
Queta mi restituisce, Ritardo giorni 23 cosa ne pensi? si può fare di
meglio?
Ciao e grazie
Giuseppe

Non ho ben capito cosa intendi con Request.form("10/12/01") comunque nella
funzione DateDiff al posto di Date io userei Scadenza e invertirei i
termini.
Ho provato cosě a me funziona.
Ciao.
<%@ Language=VBScript %>
<% Option Explicit %>
<%
 Dim Scadenza, Eseguitodata
 Scadenza = "10/12/01"
 Eseguitodata = "12/12/01"
 Dim Giorniold
 Giorniold = DateDiff("d", scadenza, Eseguitodata) %>
 Sei in ritardo giorni <%=Giorniold%>