Entwickler-Ecke
Basistechnologien - Problem mit DateTime
kerstel - Mo 05.12.11 14:41
Titel: Problem mit DateTime
Hallo,
ich habe ein Problem mit folgendem Code:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| DateTime dtContractEnd = DateTime.Parse(sContract.Substring(342, 10).Trim()); DateTime dtPurchaseEnd = dtContractEnd; DateTime dtAktDatum = DateTime.Now; int[] daysPerMonth = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
if (DateTime.IsLeapYear(dtAktDatum.Year)) daysPerMonth[1] = 29; if (dtAktDatum.Day < dtContractEnd.Day) { DateTime dtDummy = dtAktDatum.AddMonths(-1); dtPurchaseEnd = new DateTime(dtDummy.Year, dtDummy.Month, dtContractEnd.Day); } |
Die Zeile dtPurchaseEnd = new DateTime(dtDummy.Year, dtDummy.Month, dtContractEnd.Day); bringt nun einen Fehler:
"Die Parameter \"Year\", \"Month\", und \"Day\" beschreiben eine nicht darstellbare DateTime."
In dtDummy steht ein Wert: {05.11.2011 13:07:11}, und wenn ich dtDummy.Year usw. einer Variablen zuweise geht das auch.
Woran kann das liegen?
lgr
mats74 - Mo 05.12.11 15:08
Hallo kerstel
Das muss am String sContract liegen.
Folgender Code funktioniert:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| DateTime dtContractEnd = DateTime.Parse("01.01.2011"); DateTime dtPurchaseEnd = DateTime.Parse("01.01.2011"); DateTime dtAktDatum = DateTime.Now; if (dtAktDatum > dtPurchaseEnd) { DateTime dtDummy = dtAktDatum.AddMonths(-1); dtPurchaseEnd = new DateTime(dtDummy.Year, dtDummy.Month, dtContractEnd.Day); MessageBox.Show(Convert.ToString(dtPurchaseEnd)); } else { } |
Was steht denn genau im String sContract nach der Verwendung der Trim-Methode?
Da wird wahrscheinlich der Tag falsch interpretiert.
kerstel - Mo 05.12.11 15:11
Hi,
hab mir das mal als string ausgegeben:
string s = sContract.Substring(342, 10).Trim(); gibt 31.12.2011 zurück
und dtContractEnd ist {31.12.2011 00:00:00}
lgr
kerstel - Mo 05.12.11 15:13
ach *mist*e ich idiot. ich versuch damit ja den 31.11.2011 zu erzeugen...
Danke für die Hilfe :)
mats74 - Mo 05.12.11 15:14
... und dann gibt es den 31.11.2011 in Wirklichkeit?
(Du rechnest noch einen Monat von dtDummy ab)
Sorry, war ein Bisschen zu spät.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!