No hay nada de malo con el código que ha publicado, por lo que lo que hizo mal es en otro lugar en el código.
sólo veo dos defectos menores en el código, pero sólo afectan a casos de esquina:
Se debe evitar que la propiedad DateTime.Now
en repetidas ocasiones en el código. Su valor cambia, por lo que puede obtener resultados inconsistentes en algunos casos cuando los valores cambian de un uso a otro.
Para obtener un intervalo de tiempo que se suele asociar uno inclusivo y un operador exclusivo, como >
y <=
o >=
y <
. De esta forma, puede verificar los intervalos uno al lado del otro, como 0 - 24 horas y 24 - 28 horas, sin obtener un espacio o una superposición.
DateTime now = DateTime.Now;
if (myDateTime > now.AddHours(-24) && myDateTime <= now)
Definir "que está mal" ... a primera vista se ve bien ... trató AddDays (-1)? –