StehtimSchilf
Erfahrenes Mitglied
Hi Forum
Ich möchte die Stunden eines TimeSpans erhöhen/minimeren:
Timespan : 00:05:03
+ 4h
Dann möchte ich 04:05:03.
Das klappt ja sehr gut mit add(), wenn der ursprüngliche Timespan > 0 ist. Ebenso klappt dies, wenn die Stunden bereits negativ sind und ich die Stunden minimieren möchte.
Wenn der Timespan jedoch > 0 ist (00:05:03) und ich davon 4h abziehe, dann möchte ich eben -04:05:03 - doch add() / subtract() liefert mir dann: -03:54:57, was ja korrekt 4h Unterschied ist.
Also hab ich gesucht und getüftelt und kam zum Schluss, da brauchts eine eigene Funktion:
Diese funktioniert auch einwandfrei! Doch muss ich das nun für Days, Minutes, Seconds, Milliseconds schreiben?
Es muss doch hierfür etwas viel einfachers geben! Ideen?
cheerioh
SiS
Ich möchte die Stunden eines TimeSpans erhöhen/minimeren:
Timespan : 00:05:03
+ 4h
Dann möchte ich 04:05:03.
Das klappt ja sehr gut mit add(), wenn der ursprüngliche Timespan > 0 ist. Ebenso klappt dies, wenn die Stunden bereits negativ sind und ich die Stunden minimieren möchte.
Wenn der Timespan jedoch > 0 ist (00:05:03) und ich davon 4h abziehe, dann möchte ich eben -04:05:03 - doch add() / subtract() liefert mir dann: -03:54:57, was ja korrekt 4h Unterschied ist.
Also hab ich gesucht und getüftelt und kam zum Schluss, da brauchts eine eigene Funktion:
Code:
public static TimeSpan AddHour(TimeSpan ts, int hoursToAdd) {
int hours = ts.Hours + hoursToAdd;
int minutes = ts.Minutes;
int seconds = ts.Seconds;
if (hours < 0) {
minutes = -Math.Abs(minutes);
seconds = -Math.Abs(seconds);
} else {
minutes = Math.Abs(minutes);
seconds = Math.Abs(seconds);
}
TimeSpan result = new TimeSpan(hours, minutes, seconds);
return result;
}
Diese funktioniert auch einwandfrei! Doch muss ich das nun für Days, Minutes, Seconds, Milliseconds schreiben?
Es muss doch hierfür etwas viel einfachers geben! Ideen?
cheerioh
SiS