2 Stimmen

C# DateTime Bewertungsproblem

Also versuche ich herauszufinden, was bei dieser Logik falsch läuft. Es scheint einfach zu sein und meine Breakpoints zeigen an, dass die Auswertung in der 'if'-Anweisung als True aufgelöst wird, aber sum.ppStart usw. erhalten nicht 14 Tage hinzugefügt.

Es ist wahrscheinlich etwas Einfaches, aber jede Hilfe wäre willkommen.

// Bestimmen Sie die Anfangs- und Endtage jeder Woche des Abrechnungszeitraums und erhalten Sie eine Liste dieser Einträge

DateTime[] Wochen = timeTools.calcPP(0);
DateTime heute = DateTime.Now.Date;

if (heute > Wochen[3])
{
  Wochen[0].AddDays(14);
  Wochen[3].AddDays(14);
  Wochen[4].AddDays(14);
}

sum.ppStart = Wochen[0];
sum.ppEnd = Wochen[3];
sum.payDate = Wochen[4];

8voto

Anthony Pegram Punkte 119149

AddDays gibt eine neue Instanz von DateTime zurück, der bestehende Wert wird nicht verändert, es handelt sich um eine unveränderliche Struktur. Bei der Verwendung der Funktion, speichern Sie das Ergebnis

DateTime myDate = ...
myDate = myDate.AddDays(14);

2voto

Tejs Punkte 39916

Das liegt daran, dass du das Ergebnis der Methode AddDays nicht verwendest. Die Signatur ist

 public DateTime AddDays(double days) 

oder so (siehe Link). Du musst das tun:

weeks[0] = weeks[0].AddDays(14);

2voto

Matt McHugh Punkte 3905

Sie müssen die Werte zuweisen:

if (heute > wochen[3])
{
  wochen[0] = wochen[0].AddDays(14);
  wochen[3] = wochen[3].AddDays(14);
  wochen[4] = wochen[4].AddDays(14);
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X