Newsgroup: it.comp.www.asp
Titolo: Problemi con differenze di orari

Ciao a tutti!
Ho cercato parecchio  nel ng e sulla rete, ma nn sono riuscito a
capire se esiste o  no una funzione per fare diffenze di orari, come
ad esempio:
01:23:09 - 00:05:04 = 01:18:05
visto che proprio non ho trovato niente ho cercato di farmela da solo
(vi avverto che sono un neofita dell'asp! pietà di me!), ma non gira e
non capisco perché:
<script runat=server language=vbscript>
sub differenza()
Session.LCID = 1040
OraFrom = DatePart(h,campi("DurationFrom"))
OraTo = DatePart(h,campi("DurationTo"))
MinFrom = DatePart("n",campi("DurationFrom"))
MinTo = DatePart("n",campi("DurationTo"))
SecFrom = DatePart("s",campi("DurationFrom"))
SecTo = DatePart("s",campi("DurationTo"))
' vediamo i sec
if SecTo > SecFrom Then
SecFrom =+ 60
MinFrom =-1
differenzaSec= SecFrom - SecTo
Else
	differenzaSec= SecFrom - SecTo
end if
' vediamo i min
if MinTo > MinFrom Then
MinFrom =+ 60
OraFrom =- 1
differenzaMin= MinFrom - MinTo
Else
	differenzaMin=differenzaMin= MinFrom - MinTo
end if	
' vediamo infine le ore
differenzaOra= OraFrom- OraTo
 
tempo_fine= differenzaOra&":"&differenzaMin&":"&differenzaSec
end sub
</script>
"campi" contiene i fields di un database passati da un recordset
(Set campi=rsRisorse.fields)
e richiamo la funzione "differenza()" dove aver dichiarato la
variabile tempo_fine.
Mi rendo conto che la soluzione non è elegante e temo sia zeppa di
errori, ma devo gestire degli orari da un db, facendo differenze,
addizioni, etc...
GLi orari sono memorizzati come hh:mm:ss, forse migliorerei la
situazione memorizzando senza i due punti o calcolando i secondi per
lavorare solo su questi?
grazie per la pazienza!


Forse non ho capito bene la domanda, ma DateDiff non va bene?
http://www.asp-help.com/getstarted/ms/vbscript/65.asp
-> GbC

 
forse sono io proprio duro di comprendonio, ma DateDiff mi sembra che
lavori con le date, e da l'output in quello che vuoi.
io vorrei fare differenze fra durate di filmati e avere l'output in
hh:mm:ss
grazie mille per la risposta cmq!
paolo

> Forse non ho capito bene la domanda, ma DateDiff non va bene?

I computer indicano la data con un numero la cui parte intera indica il 
numero di giorni a partire da una data fissa (dal 1 gen 1900) e la parte 
decimale il numero di secondi a partire dalla mezzanotte del giorno in 
corso; un calcolo su una data può quindi comportare il coivolgimento della 
parte intera (giorni/mesi/anni) e/o di quella decimale (ore/min/sec).
Direi che un orario non è altro che una data, espressa con 
l'approssimazione delle ore/min/sec...
Quanto dura il tuo filmato?
Durata = DateDiff("s",OraInizio,OraFine)
Se vuoi saperlo in minuti sostituisci ad "s" una "m".
Tutto qua :)
Bye
 
-> GbC

 Tutto qua :)
GbC sei gentilissimo, in effetti datediff fa benissimo la differenza,
ma purtroppo non fa quello che cercavo.
io vorrei arrivare ad una soluzione con la differenza scritta come
hh:mm:ss, ma a questo punto forse mi conviene lavorare coi secondi
(anche perchè dopo la differenza devo anche sommare un intervallo a
quello appena ricavato...)
grazie ancora
Paolo

 quello appena ricavato...)
Usa la forza, Luke...
function myDurataTotale(myINIZIO, myFINE)
    	myH = datediff("h",myINIZIO,myFINE)
    	myM = datediff("m",myINIZIO,myFINE)
    	myS = datediff("s",myINIZIO,myFINE)
    	myDurataTotale = myH & ":" & myM & ":" & myS
end function
Response.Write ("Durata totale: " & myDurataTotale(myStart, myEnd) & vblf)
That's all
 
-> GbC