Das Problem ist abstrakter. Wie bereits erwähnt, gibt es in .NET zwei Arten - DateTime
und TimeSpan
. Der Typ DateTime
repräsentiert einen bestimmten Zeitpunkt. Es ist kein Zeitintervall. Es ist ein spezifischer Ort in allen Zeiten seit der Geburt des Universums. Selbst wenn Sie die Komponenten Jahr/Monat/Tag auf 0 setzen, wird immer noch ein absoluter Zeitpunkt angegeben. Nicht eine lange Zeit.
Die TimeSpan
auf der anderen Seite stellt ein gewisses Intervall. 1 Minute, 2 Tage, was auch immer. Es ist nicht angegeben WANN, wie lange.
Wenn Sie also zwei DateTime-Objekte subtrahieren, erhalten Sie ein TimeSpan-Objekt, das angibt, wie viel Zeit zwischen ihnen liegt. Und wenn Sie einer DateTime eine TimeSpan hinzufügen, erhalten Sie eine andere DateTime. Aber Sie können eine DateTime nicht zu einer anderen DateTime hinzufügen - das wäre sinnlos.
Es klingt für mich wie Sie sollten mit TimeSpan
s die ganze Zeit arbeiten, weil Sie es mit Zeitspannen zu tun haben, nicht absolute Zeitpunkte. Wenn Sie diese Längen von Ihrer Quelle als DateTime bekommen, dann ist das eigentlich nicht korrekt, und Sie sollten sie irgendwie in TimeSpan
s konvertieren. Die Methode zum Parsen ist eine Möglichkeit, die vorgeschlagen wurde, aber Sie könnten auch versuchen, davon Null DateTime
zu subtrahieren. Das könnte schneller und kulturunabhängiger sein.
Hallo, leider aus Ihrem Beispiel ist es nicht klar, was Sie danach sind deshalb doch gibt keine gute Antwort. Wenn Sie versuchen, mehr von dem Code anzuzeigen, den Sie haben, oder einen kurzen Überblick darüber zu geben, was Sie tatsächlich tun, kann Ihnen vielleicht jemand helfen. –
plzsendtehcodez Frage. (Siehe "Ich brauche deinen coolen Algorithmus" und seine anschließende "Antwort"). –