webForumDet fria alternativet

dela minuter till timmar och minuter

.NET

14 svar · 2 333 visningar · startad av annasmurf

Medlem sedan mars 2006237 inlägg
Frågan#1

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?

Medlem sedan jan. 2005953 inlägg
#2

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
Medlem sedan mars 2006237 inlägg
#3

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å....

Medlem sedan feb. 20002 300 inlägg
#4

Använd metoden FromMinutes i TimeSpan-klassen: http://msdn.microsoft.com/en-us/library/system.timespan.fromminutes.aspx

Det finns exempel där också.

Medlem sedan mars 2006237 inlägg
#5

men hur gör jag sen när jag vill räkan på timmar för en timespan kan ju inte addera med float?

Medlem sedan feb. 20002 300 inlägg
#6

Jag är inte helt säker på vad du frågar efter nu. Vad vill du göra?

Medlem sedan juni 20014 290 inlägg
#7

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.

Medlem sedan mars 2006237 inlägg
#8

jo jag har även 119 timmar som jag vill lägga ihop med mina minutrar

Medlem sedan mars 2006237 inlägg
#9

menar du att jag ska göra om allt till sekunder och sen gör om det till timmar och minuter igen?

Medlem sedan mars 2006237 inlägg
#10

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

Medlem sedan dec. 2004736 inlägg
#11

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.
Medlem sedan mars 2006237 inlägg
#12

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

Medlem sedan juli 200012 978 inlägg
#13

Om sekunder är grunden är väl h = modulo 60*60 och minuter är väl modulo 60 på resten.

Medlem sedan mars 2006237 inlägg
#14

hur menar du kodmässigt lasp?

Medlem sedan dec. 2004736 inlägg
#15

annasmurf skrev:

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.
253 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)