Zmiana znaku i formatowanie w TimeSpawn

0

1.Czy jest możliwość zmiany znaku w otrzymanym TimeSpan na potrzeby wpisu do bazy. Matematycznie wychodzi dobrze ale mam wyjątkowy przypadek ze otrzymany wynik ma być z minusem jeżeli TimeSpan wychodzi na plus i ujemny jezeli TimeSpan jest dodatni Może prościej będzie tak: wyszło mi TimeSpan np -8,30,00 a ma być 8,30,00.
2. Co poprawić aby zmienić formatowanie bo obecnie wychodzi mi np coś takiego -8 h -35 min a ma byc -8 h 35 min)

  TimeSpan wyn3 = span1 - span6;
                string roznica3 = string.Format("{0} h {1} min",
            ((int)wyn3.TotalHours), wyn3.Minutes);
                textBox14.Text = roznica3;
0
  1. Pomnożyć przez -1 ?
  2. Pomnożyć drugi przez -1, albo lepiej abs()
2

http://msdn.microsoft.com/pl-pl/library/system.timespan.aspx
TotalDays, minutes etc. to zwykłe inty/double więc bez problemu możesz je mnożyć

I na pytanie pierwsze, jest metoda negate:
http://msdn.microsoft.com/pl-pl/library/system.timespan.negate.aspx

#edit

Funkcja abs będzie chyba działać tylko przypadku wyniku z minusem, a gdy wynik dodatni to zmieni znak na minus?

abs(wartość bezwzględna) zamienia ujemne na dodatnie, czyli w momencie jak chcesz wyświetlić -8 h 35 min zamiast -8 h -35 min sprawdzi się najlepiej

#edit
TotalHours zwraca double, Hours zwraca inta, lepiej zamiast rzutować double na int od razy pobrać Hours

0

Nie wiem czy robie cos zle ale negate() nic mi nie zmienia ;)

 TimeSpan wyn3 = span1 - span6;
          wyn3.Negate()
          string roznica3 = string.Format("{0} h {1} min",
         ((int)wyn3.TotalHours), wyn3.Minutes);
         textBox14.Text = roznica3;
1

Zwraca nowy TimeSpan obiekt, którego wartość jest wartością zanegowane tego wystąpienia.

Czyli innymi słowy ta metoda nie edytuje obecnego timespana, a tylko zwraca wartość po negacji. Możes zzrobić np.

   wyn3=wyn3.Negate()

PS. Nie posiadam u siebie kompilatora c# i nie mogę teraz tego sprawdzić, ale tak wynika z tego co napisane jest w linku.

1 użytkowników online, w tym zalogowanych: 0, gości: 1