Ich versuche eine Benachrichtigung zu erhalten, wenn ein Kunde innerhalb der nächsten 7 Tage Geburtstag hat.Vergleichen DateTime ohne Jahr
Ich habe es mit diesem Code versucht:
public bool IsBirthdayImminent
{
get { return DateOfBirth != null && DateOfBirth.Value.Date >= DateTime.Today.Date.AddDays(-7); }
}
Natürlich funktioniert das nicht, da das Datum mit Jahr (etwa 1980.05.21) gespeichert ist, und vergleicht auch das Jahr, . Also diese Abfrage wird nie true
sein - na ja, nicht wenn du innerhalb der nächsten sieben Tage geboren bist.
Wie kann ich diese Abfrage ändern, um das Jahr zu ignorieren?
Edit:
Ordnung, die Abfrage selbst ist kein Problem. Mein primärer Punkt ist der Umgang mit Schaltjahren und Situationen um Dezember < -> Januar.
Versuchen: DateOfBirth.Value.Date> = DateTime.Today.Date.AddYears (DateOfBirth.Value.Date.Year - DateTime.Today.Date.Year) .AddDays (-7) – NeverHopeless
Normalisieren beide Daten: eine Kopie des DOB-Wertes und legen Sie fest, dass das Jahr dem aktuellen Jahr entspricht. Jetzt vergleichen Sie Äpfel mit Äpfeln. – Icarus
@Idle_Mind Könnte das keine Probleme mit Schaltjahren haben? Wenn beispielsweise eines der Daten der 29. Februar 1996 ist und Sie versuchen, es auf den 29. Februar 2013 zu setzen, erhalten Sie möglicherweise nicht das gewünschte Ergebnis. Gleiches gilt für alle anderen Unterschiede zwischen Daten im Laufe der Jahre. – Servy