Procent berekenen
Hallo iedereen,
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
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
Gesponsorde koppelingen:
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
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?
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?!
Gewijzigd op 22/10/2010 21:10:34 door Obelix en Idefix
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 )
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?
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%
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.
Ik zal het anders beschrijven. Ik ben dus bezig met een spelletje in PHP.
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?
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
Je moet 3 tijden hebben:
- 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.
- 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.
Aha, nu snap ik het.
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.
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
@Dennis: Dat slaat niet op jou hoor, maar op de opmerking '50% dus' waarin de logica ver te zoeken is. Jij hebt het daarna stukken beter uitgelegd zodat het weer te snappen was.
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 -
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.
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.
Als je begin tijd 21:30 is en het is nu 22:30 is er dus een uur verstreken.
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.
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.



