Hämtar ut rådata i tider som ligger i formatet h:mm:ss från en databas. Nu skulle jag behöva addera och subtrahera olika tider i dessa format och få fram resultat i samma format. Är det någon som har en idé hur man kan göra? Har själv spånat på att man lägger in dagens datum så man får datetime-format och räknar en datediff, men är osäker på det. Gjorde en egen variant. Utnyttjade TimeSpan som kan subtrahera tider: Lite snyggare är det allt :) Onekligen snyggare, men problemet att omvandla 3:25:50 till 3, 25, 50 kommer ju då :( Aldrig blir folk nöjda :)Tidsräkning
Sv: Tidsräkning
<code>
DateTime dt1 = Convert.ToDateTime(TextBox1.Text);
DateTime dt2 = Convert.ToDateTime(TextBox2.Text);
TimeSpan TS = dt1.Subtract(dt2);
Msg.Text = "Tidsskillnaden är " + TS;
</code>
Utnyttjade detta genom att subtrahera med 0 så att jag kan bryta ut varje tidsenhet och sedan addera:
<code>
TimeSpan TS2 = dt1.Subtract(Convert.ToDateTime("0:00:00"));
TimeSpan TS3 = dt2.Subtract(Convert.ToDateTime("0:00:00"));
int tim1 = Convert.ToInt32(TS2.Hours);
int min1 = Convert.ToInt32(TS2.Minutes);
int sek1 = Convert.ToInt32(TS2.Seconds);
int tim2 = Convert.ToInt32(TS3.Hours);
int min2 = Convert.ToInt32(TS3.Minutes);
int sek2 = Convert.ToInt32(TS3.Seconds);
int tim3 = tim1+tim2;
int min3 = min1+min2;
int sek3 = sek1+sek2;
while (sek3 >= 60)
{
min3 = min3 + 1;
sek3 = sek3 - 60;
}
while(min3 >= 60)
{
tim3 = tim3+1;
min3 = min3 - 60;
}
string Minuter;
string Sekunder;
if (min3 < 10)
{
Minuter = "0" + Convert.ToString(min3);
}
else
{
Minuter = Convert.ToString(min3);
}
if (sek3 < 10)
{
Sekunder = "0" + Convert.ToString(sek3);
}
else
{
Sekunder = Convert.ToString(sek3);
}
Msg2.Text = "Tidssumman är " + tim3 + ":" + Minuter + ":" + Sekunder;
</code>
Någon som kanske har en snyggare lösning?Sv:Tidsräkning
TimeSpan ts = new TimeSpan(3, 25, 50);
TimeSpan ts1 = new TimeSpan(5, 34, 9);
TimeSpan ts2 = ts1.Subtract(ts);
TimeSpan ts3 = ts.Add(ts1);
Console.WriteLine("Tidskillnaden är: " + ts2.ToString());
Console.WriteLine("Tidsumman är: " + ts3.ToString());
Sv: Tidsräkning
Sv:Tidsräkning
TimeSpan ts = new TimeSpan(DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second);
- M