Laden...

TimeSpan.FromSeconds beachtet Punkt und Komma falsch

Erstellt von PierreDole vor 4 Jahren Letzter Beitrag vor 4 Jahren 775 Views
P
PierreDole Themenstarter:in
74 Beiträge seit 2017
vor 4 Jahren
TimeSpan.FromSeconds beachtet Punkt und Komma falsch

Moin,
ich steh gerade komplett aufm Schlauch. TimeSpan.FromSeconds gibt mir ein Ergebnis zurück, das nicht stimmt und ich komme nicht dahinter, woran es liegen kann. Nicht mal eine Nacht drüber schlafen hat geholfen.

Das ist der Code. An einer anderen Stelle funktioniert er wunderbar, habs von dort copy/pastet. (Der Code kommt aus einer for-Schleife.)


                    string tmpTime_ = TimeSpan.FromSeconds(double.Parse(query["Position", i]["FastestTime"].GetValue())).ToString(@"dd\:hh\:mm\:ss\:fff");
                    Console.WriteLine(query["Position", i]["FastestTime"].GetValue() + " | " + tmpTime_);

Als Ergebnis bekomme ich Folgendes:

124.7740 | 14:10:35:40:000
125.1115 | 14:11:31:55:000
125.5584 | 14:12:46:24:000
125.6810 | 14:13:06:50:000
125.8750 | 14:13:39:10:000
125.9621 | 14:13:53:41:000
126.6092 | 14:15:41:32:000
127.0831 | 14:17:00:31:000
127.2126 | 14:17:22:06:000
127.2812 | 14:17:33:32:000
128.2107 | 14:20:08:27:000
128.5625 | 14:21:07:05:000
135.2246 | 15:15:37:26:000

Erste Spalte sind die Sekunden und die zweite Spalte ist das formatierte Ergebnis. Man sieht schon mit bloßem Auge, daß 124.x Sekunden etwas mehr als 2 Minuten sind. Eigentlich brauche ich das auch nur in Minuten, Sekunden und Tausendstel. Die Tage und Stunden habe ich reingetan, da das Ergebnis seltsam aussah.

Wieso bekomme ich da über zwei Wochen heraus? Ideen, woran das liegen könnte?

D
152 Beiträge seit 2013
vor 4 Jahren
5.657 Beiträge seit 2006
vor 4 Jahren

Ein kurzer Überschlag sagt mir, daß 1247740 Sekunden etwas über 14 Tage sind. Offenbar geht da etwas schief mit deiner Parser- und Formatiererei.

Evtl. solltest du mal jeden Schritt einzeln mit dem Debugger nachvollziehen: [Artikel] Debugger: Wie verwende ich den von Visual Studio?

Weeks of programming can save you hours of planning

P
PierreDole Themenstarter:in
74 Beiträge seit 2017
vor 4 Jahren

Ja, genau das wars! double.Parse() hat einfach den Punkt weggeparset. Mensch, das Ding macht Sachen... 😄

Mit double.Parse(seconds, CultureInfo.InvariantCulture) funktioniert das jetzt wunderbar. Es macht zwar aus dem Punkt ein Komma, aber das kann mir egal sein, wird ja umformatiert. 😃

Danke euch!