Wiskundig probleem met ProgressBars

Status
Niet open voor verdere reacties.

pdedecker

Gebruiker
Lid geworden
19 jul 2008
Berichten
35
progressbarskg4.jpg


Mijn ProgressBars noemen prgCh1 tot prgCh6. Deze informatie komt uit de debugger:

prgCh1: {Value = 1206 Min = 1000 Max = 1215}
prgCh2: {Value = 1205 Min = 1145 Max = 1220}
prgCh3: {Value = 1205 Min = 1155 Max = 1255}
prgCh4: {Value = 1205 Min = 1140 Max = 1230}
prgCh5: {Value = 1205 Min = 1115 Max = 1230}
prgCh6: {Value = 1230 Min = 1230 Max = 1330}

Dit brengt mij tot het wiskundig probleem dat ik heb. Ik laat een uur overeenkomen met een honderdtal, terwijl een uur 60 minuten is en een honderdtal 100 eenheden. Ik moet dus de schaal aanpassen. Hoe ga ik best te werk?
 
Ik ben niet echt mee, vrees ik. Het lijkt erop dat ik mijn middelbaar mag overdoen. En dat terwijl ik in Latijn-Wiskunde zit. :D

De starttijd is 1145*0.6 = 687
De huidige tijd is 1200*0.6 = 720
De eindtijd is 1215*0.6 = 729

De totale tijd is dertig minuten, dus 720 zou halverwege tussen 687 en 729 moeten zitten als ik jouw theorie volg, wat dus niet het geval is.
 
Wat je wel kan doen is:

((Tijd div 100) * 60) + (Tijd mod 100) = totaal in minuten.

voorbeeld:
1215 div 100 = 12
12 * 60 = 720

1215 mod 100 = 15

720 + 15 = 735
 
Laatst bewerkt:
Wow... divergent en modulus gaan mijn petje te boven. Je voorstel om tijdcodes naar "het aantal minuten na middernacht" om te zetten is inderdaad het meest logische. Ik heb het volgende gevonden:

Code:
        private int ConvertTimeToMin(int input)
        {
            int output = 0;
            int counter = 0;
            while (counter + 100 <= input)
            {
                output = output + 60;
                counter = counter + 100;
            }
            output = output + (input - counter);
            return output;
        }
Klopt dit? Ik heb zo het idee van wel.
 
Laatst bewerkt:
div = x / y;
Div staan gelijk aan. Delen door zonder rest.
Dus als je 13 div 3 doet, dan krijg je 4 terug.

mod = x % y;
Mod geeft nou juist alleen de rest terug.
13 mod 3 = 1.
Omdat de 3.. 4x in 13 past en je houdt 1 over.


Dus kan je er van maken in de functie:
Code:
private int ConvertTimeToMin(int input)
        {
            return ((input / 100) * 60) + (input % 100);
        }
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan