Differenza tra due date - calcolo sbagliato

di il
8 risposte

Differenza tra due date - calcolo sbagliato

Buonasera, sono nuovo del forum, mi chiamo Rocco Rizzo e saluto tutti.
Ho un problema con un programmino di access che mi calcola le ore trascorse tra due date(DATA INIZIO- DATA FINE) in formato gg/mm/aaaa hh:mm. Il programma mi calcola benissimo quasi tutte le combinazioni di data/ora ad eccezioni di quelle a cavallo tra due giorni. Nel campo TOTALE ORE, ho inserito questa formula =DateDiff("h";[DATA INIZIO];[DATA FINE]) & "h" & DateDiff("n";[DATA INIZIO];[DATA FINE]) Mod 60 & "m".
Grazie anticipatamente per l'aiuto.
Non si può allegare il file?

8 Risposte

  • Re: Differenza tra due date - calcolo sbagliato

    Non devi togliere le ore per calcolare i minuti...?
  • Re: Differenza tra due date - calcolo sbagliato

    Il risultato me lo da e mi serve in formato hhmm
  • Re: Differenza tra due date - calcolo sbagliato

    zirbio ha scritto:


    Il risultato me lo da e mi serve in formato hhmm
    Che il risultato te lo dia bene..., che sia giusto... mmmm dimostriamolo...:
    
    DataInizio: 03/08/2020 12:52:56         
    DataFine:   03/08/2020 15:17:56
    Io mi aspetto 2h e 25min... con il tuo metodo calcola bene...?
    Secondo me NO, tu ottieni questo:
    
    03/08/2020 12:52:56         03/08/2020 15:17:56         hh:3          mm:25
    Io, sottraendo l'ora in minuti dal totale minuti ottengo questo:
    
    03/08/2020 12:52:56         03/08/2020 15:17:56         hh:2          mm:25
    Secondo me il tuo NON è corretto, e non solo a cavallo di 2gg, spero sia palese anche per te...

    Poi per ottenere hhmm cosa intendi...? Vuoi una Stringa oppure vuoi un valore DateTime....?
  • Re: Differenza tra due date - calcolo sbagliato

    Benissimo hai colpito in pieno, hai ragione mi da hh:3 mm:25. Quindi la formula è da correggere, mi fai sapere come correggerla e sopratutto dov'è l'errore, così capirò meglio. Grazie
  • Re: Differenza tra due date - calcolo sbagliato

    Ti diedi la soluzione alla prima risposta... "Non devi togliere le Ore per calcolare i Minuti...?"
    Quindi la soluzione che ti pongo è la medesima, e che tu avevi snobbato.
    
    MinutiTotali=DateDiff("n", Me.dtStart, Me.dtEnd)
    hh=MinutiTotali\60
    mm=MinutiTotali-hh*60
  • Re: Differenza tra due date - calcolo sbagliato

    Ciao Alex non ho snobbato assolutamente la tua soluzione, il problema è che non ho capito la tua soluzione proposta. E questo per colpa mia perchè la formula che utilizzo l'ho copiata da un sito e l'ho incollata così com'è. Non sono un esperto in formule di access. Quindi ti chiedo di avere pazienza e di spiegarmi la tua soluzione che tra l'altro, ho riportato così come l'hai scritta, ma mi da errore di sintassi.
  • Re: Differenza tra due date - calcolo sbagliato

    Se copi/incolli non fai nulla... serve capire e sapere come usare il codice... peraltro questa è matematica elementare...!
    Avendo 2 date per ricavare la differenza in hh:mm si calcola la differenza totale in mm (in realtà nell'unità più piccola, se avessi voluto hh:mm:ss dovevi calcolare la differenza in secondi)
    Poi il totale dei minuti va convertito in ore dividendo per 60 e prendendo l'intero, cosa che fa il BackSlash nella divisione.
    A Questo se dal totale minuti togli i minuti che rappresentano le ore ottieni ul resto dei minuti che non genera ore... i rotti ...

    Esempio la differenza tra due date è di 125minuti e voglio rappresentare 125minuti in hh:mm:

    Ho 125minuti...? Quante ore e quanti minuti sono...?
    125\60=2 <---- queste sono 2 ore
    125-2ore=125-2×60=125-120=5 <--- questi sono i minuti
    Quindi 125minuti sono 2 ore e 5 minuti.

    Quella formula fa questo.
  • Re: Differenza tra due date - calcolo sbagliato

    Risolto grazie.
Devi accedere o registrarti per scrivere nel forum
8 risposte