Procent berekenen
Ik heb misschien een beetje een rare vraag, maar ik wil dus het percentage van een bepaalt event berekenen.
Stel ik heb:
$tijdNu = date("H:i"); // (Word dus bijv: 20:46)
Nu heb ik ook een vaste tijd staan
$tijdVast = "21:30";
Hoe bereken ik nu, in percentages hoe ik aan 21:30 raak. (Dus bijv. 10% verstreken sinds 21:30 )
Alvast bedankt
Je hebt een tijdnu (dit moment) en een tijdvast (in verleden). Het verschil tussen die twee is altijd 100% op moment van berekenen?! :s
Obelix en Idefix op 22/10/2010 20:59:24:
Begrijp je vraag niet. Hoe kom je op 10% in je voorbeeld? Waar is dat op gebaseerd?
Je hebt een tijdnu (dit moment) en een tijdvast (in verleden). Het verschil tussen die twee is altijd 100% op moment van berekenen?! :s
Je hebt een tijdnu (dit moment) en een tijdvast (in verleden). Het verschil tussen die twee is altijd 100% op moment van berekenen?! :s
Ik wil dus eigenlijk, in procenten tegen de 21:30 aankomen.
Dus:
Tijd nu is 21:00
Hoeveel procent nog tot 21:30, snapje?
Je werkt met twee tijden? Nu (21.08) en vast (21.30).
Verschil is 22 minuten, maar hoe wil je dit in een percentage uitdrukken (en waarom)?
Moet er ook nog rekening worden gehouden met dagen?!
Gewijzigd op 22/10/2010 21:10:34 door Obelix Idefix
tijdverschil = eindtijd - tijdnu
perc = 100- ( tijdsverschil * 100 / eindtijd )
Obelix en Idefix op 22/10/2010 21:07:01:
Ik begrijp het nog steeds niet.
Je werkt met twee tijden? Nu (21.08) en vast (21.30).
Verschil is 22 minuten, maar hoe wil je dit in een percentage uitdrukken (en waarom)?
Moet er ook nog rekening worden gehouden met dagen?!
Je werkt met twee tijden? Nu (21.08) en vast (21.30).
Verschil is 22 minuten, maar hoe wil je dit in een percentage uitdrukken (en waarom)?
Moet er ook nog rekening worden gehouden met dagen?!
Omdat ik een progressbar hiermee wil vullen! :)
Toevoeging op 22/10/2010 21:57:25:
Noppes Homeland op 22/10/2010 21:25:04:
Denk nu toch eens na, dat behoort toch tot de basisrekenkunde
tijdverschil = eindtijd - tijdnu
perc = 100- ( tijdsverschil * 100 / eindtijd )
tijdverschil = eindtijd - tijdnu
perc = 100- ( tijdsverschil * 100 / eindtijd )
Als ik jouw berekening gebruik, dan begint hij gelijk op zon 97%..
Stel ik heb nu de waarde, als tijd die NU is zeg maar:
2200 ( Als tijd, zonder ":")
En ik moet naar de tijd:
2300 ( OOk zonder ":")
Hoe moet je dat in procent berekene?
En @Noppes:
procentuele toename = (eind-begin) / begin * 100% - 100%
Pim de Haan op 22/10/2010 22:01:15:
Maar tijd heeft geen beginpunt. Je lijkt aan te nemen dat dat het uur 0 is, maar dat slaat toch nergens op?
En @Noppes:
procentuele toename = (eind-begin) / begin * 100% - 100%
En @Noppes:
procentuele toename = (eind-begin) / begin * 100% - 100%
Dus:
$percent = ( $tijdNaarToe - $tijdNu ) / $tijdNu * 100 - 100;
Zo?
Want dan doet de berekening nog raar..
Als ik jouw vraag probeer te snappen, dan kom ik op iets als 'hoeveel procent is een half uur'? Beetje onzinnige vraag volgens mij.
De gebruiker, kan een object kopen. Dit object word opgeslagen in MySQL, zoals volgt:
$bouwDatum = date( "Y-m-d H:i:s", time());
Dit word opgeslagen, als gebouwdedatum
Nu zit er ook echter een bouwtijd aan het object.
Bijv:
$bouwTijdObject = date("Y-m-d H:i:s" ,time() + ( 80 * 60 ) ); // Huidige tijd + 80 minuten.
Deze var $bouwTijdObject word opgeslagne in MYSQL ook.
Nu wil ik dus, in percentage's aangeven, hoever dit bouwen is.
Ik heb dus 2 variabelen, eentje waneer het object gebouwd is. En wat de datum nu is. Hoe dichter de tijd, bij de $bouwTijdObject hoe hoger het percentage zeg maar.
Hoe kan ik dit het bste doen volgens julie?
Gewijzigd op 22/10/2010 22:22:09 door Dennis Smink
- begintijd
- huidige tijd
- eindtijd
Haal de begin tijd van de eindtijd af, dan heb je een getal
Haal de huidige tijd van de eindtijd af, dan heb je je verschil
deel het verschil door het getal maal honderd.
Houd er rekening mee dat het niet 2200 is voor 10 uur maar dat je terug moet rekenen naar secondes / minuten / uren... Persoonlijk zou ik voor seconden gaan dan kan je heel nauwkeurig zijn.
Berekende variabelen horen niet thuis in een DB, je moet dus de bouwduur opslaan, niet het moment waarop het klaar is.
Je hebt dus $bouwDatum en $bouwDuur in sec.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
$beginSec = strtotime($bouwDatum);
$voortgang = (time() - $beginSec) / $bouwDuur; // In perunage (0-1)
$voortgangProcent = $voortgang / 100;
// Mss ook handig:
$resterendSec = $bouwDatum + $bouwDuur - time();
$resterendInterval = new DateInterval($resterendSec);
// Zie http://nl3.php.net/manual/en/dateinterval.format.php om dat mooi weer te geven.
?>
$beginSec = strtotime($bouwDatum);
$voortgang = (time() - $beginSec) / $bouwDuur; // In perunage (0-1)
$voortgangProcent = $voortgang / 100;
// Mss ook handig:
$resterendSec = $bouwDatum + $bouwDuur - time();
$resterendInterval = new DateInterval($resterendSec);
// Zie http://nl3.php.net/manual/en/dateinterval.format.php om dat mooi weer te geven.
?>
SanThe Nvt op 22/10/2010 22:12:22:
Als ik jouw vraag probeer te snappen, dan kom ik op iets als 'hoeveel procent is een half uur'? Beetje onzinnige vraag volgens mij.
50% dus.
Want?
Pim de Haan op 23/10/2010 13:06:36:
Want?
Inderdaad.
Oh je bedoelt dat de helft van een procent eigenlijk vijftig procent is? Of de helft van de helft eigenlijk de helft is? Of dat 12 uur en 30 seconden hetzelfde is, omdat het beide de helft is van respectievelijk een dag en een minuut?
SanThe Nvt op 23/10/2010 14:45:22:
Inderdaad.
Pim de Haan op 23/10/2010 13:06:36:
Want?
Inderdaad.
Inderdaad wat? Onderbouw je opmerking eens?
Overigens is het opgelost.
Gewijzigd op 23/10/2010 14:59:33 door Dennis Smink
Internet Verslaafde op 23/10/2010 08:44:48:
50% dus.
SanThe Nvt op 22/10/2010 22:12:22:
Als ik jouw vraag probeer te snappen, dan kom ik op iets als 'hoeveel procent is een half uur'? Beetje onzinnige vraag volgens mij.
50% dus.
Gewijzigd op 23/10/2010 15:03:56 door - SanThe -
Niet dat het hier wat toevoegt, maar ik vermoed dat daar die opmerking voor was.
Robert Deiman op 23/10/2010 15:05:35:
Een half uur is een half heel uur. Een half = altijd 50%, een helft van iets is namelijk 1/2 of 50%, dat zal er zijn bedoeld.
Niet dat het hier wat toevoegt, maar ik vermoed dat daar die opmerking voor was.
Niet dat het hier wat toevoegt, maar ik vermoed dat daar die opmerking voor was.
Dat vermoed ik inderdaad ook. Echter de link met een héél uur is er niet. Vandaar dat het niet logisch is. Een half uur is inderdaad 50% van een héél uur, maar slechts 25% van twee uur.
Dat is dus 1/24 deel van een dag (100/24)x1=4,166667% per uur. je kan er dus vanuit gaan dat elk uur 4.1 procent opleverd.
4.166667/60 minuten= 0.0694444444 dus als je er 8 uur en 32 minuten verstreken is wordt dit: 8x 4.16667 + 32 x 0.0694444 = %
of: 24/8.32=2.88461 dus 100/2.88461=34,6667% van de dag.
Ik hoop dat het duidelijk is dat je dus hebt dat 24 uur 100% is en 12uur 50% hierdoor hoef je alleen het tijdsverschil te weten en kun je doormiddel van deze berekening het procentuele tijdsverschil te zien krijgen.