Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Differenza tra date (giorni-ore-minuti-secondi)

    Salve,

    avrei la necessità di calcolare la differenza tra due date, e fin qui non è un problema.

    Mi servirebbe, però, che conprenda anche ore, minuti e secondi.

    Ho questo codice:

    codice:
    Dim TempoResiduo
    Dim Scad
    Dim Oggi
    
    Scad = (RsAnnuncio.Fields.Item("scadenza").Value)
    Oggi = Now()
    
    TempoResiduo = DateDiff("d",Scad,Oggi)
    
    
    SE POI AGGIUNGO ANChE
    
    TempoResiduo = DateDiff("d","h","n","s",Scad,Oggi)
    mi da un errore. Ovviamente ho sbagliato, ma non so come farlo giusto.

    Opss., dimenticavo, la tabella è in MySql.

    Chi mi da una mano, per favore?

    Buona giornata a tutti
    BigDaniel

  2. #2
    il primo operatore della DateDiff indica l'unità di misura della differenza, e ne puoi indicare uno solo. per avere giorni/ore/minuti/secondi credo che tu debba chiedere che la differenza venga espressa in secondi, e da lì calcolare il resto.

  3. #3
    Grazie per la risposta, ma non saprei proprio come fare.

    E' la prima volta che m'imbatto in questo problema
    BigDaniel

  4. #4
    Originariamente inviato da bigdaniel
    Grazie per la risposta, ma non saprei proprio come fare.

    E' la prima volta che m'imbatto in questo problema
    recupera il risultato in secondi

    TempoResiduo = DateDiff("s",Scad,Oggi)

    e poi basta sapere che in un minuto ci sono 60 secondi, in 1 ora 60 minuti, in 1 giorno 24 ore, i mesi hanno 31 30 29/28 giorni, e ci sono 365 giorni in un anno

  5. #5
    Non mi dire

    Il problema è che , anche partendo solo dai minuti, non so proprio come ricavarmi il tempo residuo
    BigDaniel

  6. #6
    Originariamente inviato da bigdaniel
    Non mi dire

    Il problema è che , anche partendo solo dai minuti, non so proprio come ricavarmi il tempo residuo

    TempoResiduo = DateDiff("s",Scad,Oggi)
    è il tempo residuo

    il tempo residuo lo calcola lui...l'unica cosa che devi decidere te è in che unità calcolartelo .. sec min ore giorni mesi anni

    non capisco la tua perplessità


    ti faccio un esempio:

    se
    TempoResiduo = DateDiff("s",Scad,Oggi) = 95423 (secondi)

    avrai 95423 mod 60 = 23 sec rimangono 95423-23=95400 secondi da dividere in minuti

    (95400 / 60) mod 60 = 30 min rimangono 1590-30=1560 minuti da dividere in ore

    (1560 / 60) mod 24 =2 ore rimangono 26-2=24 ore minuti da dividere in giorni

    24/24 =1 giorno rimane 24-24=0

    tempo residuo = 1giorno 2ore 30min 23sec

    infatti
    1giorno= 86400 sec
    2ore = 7200 sec
    30min = 1800 sec
    23sec = 23sec
    se li sommi fanno 95423

  7. #7
    Grazie per l disponibilità.

    Si, lo so, che lo calcola lui con DateDiff.

    Ora, mettiamo che mi calcolo tutto in minuti e, cioè, TempoResiduo = DateDiff("n",Scad,Oggi).

    Mettiamo che mi escono fuori 8730 minuti.

    Ormai, dopo una lunga esperienza di vita vissuta so bene che ogni ora sono 60 minuti, 1 giorno 24 ore, e via dicendo.

    Scusa, non è ironia, ma sto semplicemente al gioco.

    Ora il fatto è che, dal momento che contrariamente alla vita vissuta, una altrettanto valida esperienza in ASP non la posseggo, come faccio a impostarmi il calcolo e a tirare fuori
    6 giorni, 1 ora e 10 minuti ? (= 8730)
    BigDaniel

  8. #8

  9. #9
    Originariamente inviato da bigdaniel
    Grazie per l disponibilità.

    Si, lo so, che lo calcola lui con DateDiff.

    Ora, mettiamo che mi calcolo tutto in minuti e, cioè, TempoResiduo = DateDiff("n",Scad,Oggi).

    Mettiamo che mi escono fuori 8730 minuti.

    Ormai, dopo una lunga esperienza di vita vissuta so bene che ogni ora sono 60 minuti, 1 giorno 24 ore, e via dicendo.

    Scusa, non è ironia, ma sto semplicemente al gioco.

    Ora il fatto è che, dal momento che contrariamente alla vita vissuta, una altrettanto valida esperienza in ASP non la posseggo, come faccio a impostarmi il calcolo e a tirare fuori
    6 giorni, 1 ora e 10 minuti ? (= 8730)
    8730min sono 6giorni 1ora e 30min
    e lo calcoli come ho fatto io prima
    e ti conviene portarli in secondi e poi calcolare seguendo ciò che ti ho fatto vedere prima

    quindi 8730*60=523800sec

    avrai 523800 mod 60 = 0 sec rimangono 523800-0=523800 secondi da dividere in minuti

    (523800 / 60) mod 60 = 30 min rimangono 8730-30=8700 minuti da dividere in ore

    (8700 / 60) mod 24 =1 ore rimangono 145-1=144 ore minuti da dividere in giorni

    144/24 =6 giorno 6*24-144=0

    6giorni 1ora 30min

    Ormai, dopo una lunga esperienza di vita vissuta so bene che ogni ora sono 60 minuti, 1 giorno 24 ore, e via dicendo.
    bhè allora se sai lo sai non capisco il problema

    credo che tu sappia che 70min sono 1ora e 10min ... come fai a dirlo? risolvi questo e risolvi tutto XD

  10. #10
    codice:
    Dim Secondi, Minuti, Ore, Giorni
    
    Secondi=95423 
    
    Giorni=INT(Secondi/(60*60*24))
    Response.Write "  Giorni...: " & Giorni
    Secondi=Secondi-(Giorni*(60*60*24))
    
    Ore=INT(Secondi/(60*60))
    Response.Write "  Ore...: " & Ore
    Secondi=Secondi-(Ore*(60*60))
    
    Minuti=INT(Secondi/(60))
    Response.Write "  Minuti...: " & Minuti
    Secondi=Secondi-(Minuti * (60))
    
    Response.Write "  Secondi...: " & Secondi

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.