Visualizzazione dei risultati da 1 a 3 su 3

Discussione: COuntdown in asp

  1. #1

    COuntdown in asp

    Salve a tutti, ho un problema con un countdown che ho creato, di seguito il codice:


    <%
    miaOra= TimeSerial (22,00,00)
    miaOra2=formatDateTime(Time(), vbLongTime)
    mancanti= datediff("s",miaOra2,miaOra)
    if(mancanti>0) then
    secondi = mancanti
    ore = Cint(secondi/3600)
    secondi = secondi - (ore * 3600)
    minuti = Cint(secondi/60)
    secondi=secondi-(minuti*60)
    messaggio="Mancano: "&ore&" Ore"&" "&minuti&" minuti "&secondi
    else
    messaggio="Tempo scaduto!"
    end if

    Response.Write(messaggio)%>
    Questo codice è inserito in un div "tempo" che viene aggiornato ogni secondo da una funzione ajax che mi aggiorna il div e dunque mi fa apparire i secondi che camminano a dovere, il problema è sul countdown, il countdown non capisco il perchè nei primi 30 secondi di un minuti ha valore negativo cioè:
    (-1,-2,-3,-29)successivamente al trentesimo secondo diventa positivo e scala il minuto di uno e poi continua fino a zero cioè: (30,31,32,58,59,00), e riparte in negativo.

    Io vorrei che tornati a zero i secondi, il countdown anzichè scalare i minuti a 30 secondi lo facesse allo 00, e poi vorrei che per i primi trenta secondi anzichè i valori negativi mi visualizzasse (59,58,57,56,...,30).
    Stesso problema per i minuti.

    Qualcuno può darmi una mano??

  2. #2
    Ciao,

    Per evitare di complicarti la vita con i calcoli potresti usare DateAdd:

    codice:
    miaOra= TimeSerial (22,00,00)
    miaOra2=formatDateTime(Time(), vbLongTime)
    mancanti= datediff("s",miaOra2,miaOra) 
    
    if(mancanti>0) then
        Dim TempoMancante
        TempoMancante = DateAdd("s", mancanti, TimeSerial(0,0,0))
    
        messaggio="Mancano: " & Hour(TempoMancante) & " Ore"&" "& Minute(TempoMancante) & " minuti " & Second(TempoMancante & " secondi." 
    else
        messaggio="Tempo scaduto!"
    end if
    Non l'ho provato, ma è giusto per darti l'idea.

    xxx

  3. #3
    Grazie mille per la risposta, ma è bastato sostituire CInt con Int e tutto funziona correttamente...

    La funzione Cint mi arrotondava il numero decimale, la funzione int invece mi restituisce solo l'intero, cioè quello che volevo...grazie mille per la risposta.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.