J'essaie d'être informé lorsqu'un client aura son anniversaire dans les 7 prochains jours.Comparer DateHeure sans année
Je l'ai essayé avec ce code:
public bool IsBirthdayImminent
{
get { return DateOfBirth != null && DateOfBirth.Value.Date >= DateTime.Today.Date.AddDays(-7); }
}
Bien sûr, cela ne fonctionne pas, la date est enregistrée avec son année (disons 21/05/1980) et il compare également l'année . Donc, cette requête ne sera jamais true
- eh bien, pas si vous êtes né dans les sept prochains jours si.
Comment puis-je modifier cette requête pour ignorer l'année?
Edit:
D'accord, la requête elle-même est pas un problème du tout. Mon principal point est le traitement des années bissextiles et des situations autour de Décembre < -> Janvier.
Essayez: DateOfBirth.Value.Date> = DateTime.Today.Date.AddYears (DateOfBirth.Value.Date.Year - DateTime.Today.Date.Year) .AddDays (-7) – NeverHopeless
Normaliser les deux dates: effectuer une copie de la valeur DOB et définissez l'année comme étant la même que l'année en cours. Maintenant, vous allez comparer des pommes aux pommes. – Icarus
@Idle_Mind Pourriez-vous ne pas avoir de problèmes avec les années bissextiles? Si, par exemple, l'une des dates est le 29 février 1996 et que vous essayez de la définir au 29 février 2013, vous risquez de ne pas obtenir le résultat souhaité. Idem pour d'autres différences entre les dates au fil des ans. – Servy