[PHP] tijdstip afronden naar 15 minuten

Pagina: 1
Acties:
  • 314 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • hemaworst
  • Registratie: Juli 2004
  • Laatst online: 12-03-2022
He,

ik ben bezig om voor het groupware project DotProject.com een agenda te maken met Outlook synchronisatie.
(Ik krijg al al mijn outlook gegevens in het systeem met 1 druk op de knop)

Nu ben ik niet zo tevreden over de huidige dagview in het systeem en ben ik het aan het aanpassen.
Nu heb ik de volgende functie nodig:

een tijdstip afronden naar X minuten:
Voorbeeld:

08:57 afronden op 15 minuten => 09:00
12:34 afronden op 5 minuten => 12:35
12:34 afronden op 15 minuten => 12:30

etc

Wie kan met helpen:
voor normale getallen is het makkelijk
round(getal)*precisie

voor tijdstippen kom ik er niet uit
Wie helpt me?

Hans Dorrestijn: "Want, de worstjes van de Hema zijn niet te hard of slap...De Hemaworst, hoera hoera, zit barstens vol met sap.Baby's die nu juichen aan de moederborst...Zouden harder zuigen aan de Hemaworst"


Acties:
  • 0 Henk 'm!

  • Morphine
  • Registratie: Februari 2002
  • Laatst online: 09-09 19:45
getal exploden en vervolgens rounden :)

[ Voor 25% gewijzigd door Morphine op 02-03-2005 21:48 ]


Acties:
  • 0 Henk 'm!

  • Cavorka
  • Registratie: April 2003
  • Laatst online: 27-03-2018

Cavorka

Internet Entrepreneur

Tijdstip naar seconden omrekenen, delen door aantal minuten in afrondeenheid, afronden naar geheel getal, geheel getal vermenigvuldigen met aantal minuten in afrondeenheid.

Dus 08:57 => 8 * 3600 + 57 * 60 = 32220
32220 / (15 * 60) = 35.8 => 36 kwartier
36 / 4 = 9 => 09:00

Of:
12:34 => 12 * 3600 + 34 * 60 = 45240
9240 / (5 * 60) = 150.8 => 151
151 * 5 = 755 minuten =>
Aantal uren: round(755 / 60, 0)
Aantal minuten: (755 - floor(755 / 60, 0) * 60 = 35
=> 12:35

[ Voor 55% gewijzigd door Cavorka op 02-03-2005 22:56 ]

the-blueprints.com - The largest free blueprint collection on the internet: 50000+ drawings.


Acties:
  • 0 Henk 'm!

  • Mithrandir
  • Registratie: Januari 2001
  • Laatst online: 21:22
houd er wel rekening mee dat je 12:56 niet als 12:60 wilt afronden. Je zult dus wel goed moeten kijken naar de 'speciale gevallen'.

Verbouwing


Acties:
  • 0 Henk 'm!

  • stp_4
  • Registratie: Maart 2003
  • Laatst online: 17-09 20:25
Als je het rechtercijfer van minuut uit de tijd sloopt kun je het volgende in een eenvoudige case rammen ( is niet het mooiste, meer oerlelijk als ik er zo naar kijk ):
pseudo code:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
switch (minuut)
{
   case (0, 1, 2)
       { 
        echteTijd -= minuut
       }
    case ( 3,4,5,6,7)
       {
         echteTijd+= ( 5 - minuut)
       }
    case ( 8, 9 )
     {
        echteTijd += (10 - minuut )
     }
}

[ Voor 9% gewijzigd door stp_4 op 03-03-2005 14:58 ]

stp - PSN ID: stp_4