400 minuter är 6 timmar och 40 minuter. Inte 7 timmar och 7 minuter...
Du får använda (heltals)division och modulo.
Ex. (Skrivet i PHP)
$totaltid = 400;
$timmar = floor($totaltid / 60); // = 6
$minuter = $totaltid % 60; // = 40
14 svar · 2 333 visningar · startad av annasmurf
hur delar man minuter så man får minuter och timmar
typ
har 400 minuter så delar man på 60 och då blir det 6,66667 men man vill ju ha 7,07 förstår någon hur jag menar?
400 minuter är 6 timmar och 40 minuter. Inte 7 timmar och 7 minuter...
Du får använda (heltals)division och modulo.
Ex. (Skrivet i PHP)
$totaltid = 400;
$timmar = floor($totaltid / 60); // = 6
$minuter = $totaltid % 60; // = 40
hur menar du
skriver jag så här:
float timmar;
float timmar2;
float grdTotalm:
timmar = grdTotalm / 60;
timmar2 = timmar % 60;
eller hur menar du, men jag får inte det att funka ändå....
Använd metoden FromMinutes i TimeSpan-klassen: http://msdn.microsoft.com/en-us/library/system.timespan.fromminutes.aspx
Det finns exempel där också.
men hur gör jag sen när jag vill räkan på timmar för en timespan kan ju inte addera med float?
Jag är inte helt säker på vad du frågar efter nu. Vad vill du göra?
För att enklast hantera och hålla på med datum och tider så brukar man lagra dom i ex. sekunder från 1970 (unix tidsformat) för att sedan när man skall presentera det så formaterar man det så som man vill ha det.
Dom flesta språk har klasser eller funktioner för detta, ex. .NET har sitt TimeSpan som man kan använda så att man själv slipper att hålla på med beräkningarna.
jo jag har även 119 timmar som jag vill lägga ihop med mina minutrar
menar du att jag ska göra om allt till sekunder och sen gör om det till timmar och minuter igen?
kör jag timespan.FromSeconds(428400) så gör ju det om det till dagar oxå, jag vill att mina 119 timmar och mina 400 minuter blir 126,07 timmar nu får jag ut 125,6667 timmar och jag vill alltså ha ut dem till 126,07 timmar
Varför vill du ha 126,07 timmar?
119 timmar = 7140 minuter
7140 + 400 minuter = 7540 minuter
125,6667 * 60 = 7540 minuter.
126,07 timmar är däremot 7564 minuter.
Tänk på att det är decimalt vi räknar. 125,67 timmar innebär INTE 125 timmar och 67 minuter, utan "125 hela timmar plus 0,67 timmar".
Ett exempel i C#:
// Skapa ett TimeSpan-objekt med 0 timmar, 400 minuter och 0 sekunder.
TimeSpan timeSpan = new TimeSpan(0, 400, 0);
// Skapa ett nytt TimeSpan-objekt med de timmar vi vill addera.
TimeSpan extraTime = new TimeSpan(119, 0, 0);
// Addera timmarna.
TimeSpan totalTimeSpan = timeSpan.Add(extraTime);
// Spara antalet dagar i vårt nya TimeSpan.
int days = totalTimeSpan.Days;
// Spara antalet timmar.
int hours = totalTimeSpan.Hours;
// Spara antalet minuter.
int minutes = totalTimeSpan.Minutes;
// Vi får nu 5 dagar, 5 timmar och 40 minuter.
jag vill ha det i timmar pga att jag gör en beräkning på hur många timmar man jobbat under en viss period tex en månad för att det sen ligger till grund för våran lön.
blir lite jobbigt att säga att man jobbar i 70000 minuter eller denna månad har jag jobbat i 2 dagar 23 min och 4 sec typ
Om sekunder är grunden är väl h = modulo 60*60 och minuter är väl modulo 60 på resten.
hur menar du kodmässigt lasp?
jag vill ha det i timmar pga att jag gör en beräkning på hur många timmar man jobbat under en viss period tex en månad för att det sen ligger till grund för våran lön.
blir lite jobbigt att säga att man jobbar i 70000 minuter eller denna månad har jag jobbat i 2 dagar 23 min och 4 sec typ
Då gör du precis som i mitt exempel ovan, men använder TotalHours:
// Skapa ett timeSpan-objekt med 0 timmar, 400 minuter och 0 sekunder.
TimeSpan timeSpan = new TimeSpan(0, 400, 0);
// Skapa ett nytt timeSpan-objekt med de timmar vi vill addera.
TimeSpan extraTime = new TimeSpan(119, 0, 0);
// Addera timmarna.
TimeSpan totalTimeSpan = timeSpan.Add(extraTime);
// Spara antalet timmar.
double totalHours = totalTimeSpan.TotalHours;
// Vi får nu 125.66666667 timmar vilket är lika med 7540 minuter.