Tijd converteren

Status
Niet open voor verdere reacties.

Noel Prove

Gebruiker
Lid geworden
16 jul 2006
Berichten
98
Hallo,

Ik heb in een acces form een veld die de som maakt van tijdwaarden in seconden.

Mijn vraag is nu, hoe kan ik deze waarde converteren naar dagen, uren, minuten en seconden ?

vb.: dd uu:mm:ss

Het is niet de bedoeling hiermee verder berekeningen te maken, enkel visualiseren.
Misschien nog 1 opmerking, het is mogelijk dat de waarde van de dagen uit 3 karakters kan bestaan.

Alvast bedankt
 
Die berekening is vrij simpel als je de elementaire tijdblokken in ogenschouw neemt:
1. 1 minuut = 60 secondes
2. 1 uur = 60 minuten
3. 1 dag = 24 uur

Je moet je berekening dus delen door het product van deze eenheden: Bestede tijd: [Berekening]/(60*60*24)
De opmaak van dat veld moet je dan zo instellen: dd uu:mm:ss
 
Hallo,
bedankt voor jullie hulp.
Ik heb de formule toegepast, maar ergens klopt iets niet:

De totale waarde in seconden die moet worden omgezet is 560462.
Als ik dit uitvoer in acces kom ik uit op 05 11:41:02
Maar als ik hetzelfde doe in excel dan is dit 06 11:41:02
Er is dus een verschil van 1 dag en ik vind niet vanwaar dit verschil komt.

Groetjes.
 
Bij mij werkt de weergave ook niet correct. De invoer 86400 (1dag) geeft 31 dagen als uitkomst? Je kan natuurlijk ook een eigen opmaak maken. bv
Code:
SELECT Format(Int([seconden]/60/60/24),"00 ") & Format([seconden]/60/60/24-Int([seconden]/60/60/24),"hh:nn:ss") AS Totaal
FROM Tabel1;
 
De uitkomst in Access is exact hetzelfde als in Excel, alleen zie het in jouw beleving niet goed. Dat komt omdat Access de dag op 0 begint. De eerste 24 uur zijn dus dag 0 en niet dag 1. Eigenlijk zou je de formule, wil je het correct zien, zo moeten maken:
PHP:
        .txtTotaal = CDate(CLng(IIf(Me.txtInvoer.Text = "", 0, Me.txtInvoer.Text)) / 86400) + 1
Maar dat wil je natuurlijk niet omdat dan je uitkomst technisch gezien niet klopt. Met deze (bepaald niet nette) formule krijg je wel het goede resultaat:
PHP:
        .txtTotaal = Int(CLng(IIf(Me.txtInvoer.Text = "", 0, Me.txtInvoer.Text)) / 86400) & " "
     & CDate(CLng(IIf(Me.txtInvoer.Text = "", 0, Me.txtInvoer.Text)) / 86400 - Int(CLng(IIf(Me.txtInvoer.Text = "", 0, Me.txtInvoer.Text)) / 86400))
 
@OctaFish , bestaat de functie mod niet in Access? En is het niet handiger om eerst te testen (waar je het vandaan heb weet ik niet) of Me.txtInvoer.Text = "" ipv 3 keer?
 
Ik gebruik nu volgende formule om de seconden te herleiden tot uu:mm:ss

=Format((Int([TotaleSpeelduur])\3600);"00") & ":" & Format(([TotaleSpeelduur]/86400);"nn:ss")

Kan dit niet worden aangepast om te herleiden tot dd uu:mm;ss ?

Groetjes.
 
@OctaFish , bestaat de functie mod niet in Access? En is het niet handiger om eerst te testen (waar je het vandaan heb weet ik niet) of Me.txtInvoer.Text = "" ipv 3 keer?
Zoals ik al zei: het is geen nette formule. Sleuren en pleuren eigenlijk. Testen of het werkt.
 
Kan dit niet worden aangepast om te herleiden tot dd uu:mm;ss ?
Mijn formule (hoe lelijk en voor verbetering vatbaar ook) levert het door jou gewenste resultaat, die van VenA niet. Toch koos je er voor om die te gebruiken. De wegen van een vraagsteller zijn soms ondoorgrondelijk...
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan