today - validate a date in c#
Usando DateTime en un bucle For, la fecha de incremento no está funcionando (2)
DateTime es inmutable. Cambiar a: fecha = fecha. Añadir días (1.0)
Tengo este bucle, su propósito es recorrer un rango de fechas y realizar alguna lógica para automatizar la adición de entradas en la base de datos. El problema es que la parte de incremento, fecha.AddDays (1.0) no funciona, y siempre es el mismo resultado, causando un bucle infinito. ¿Alguna idea?
for (DateTime date = DateTime.Now; futureDate.CompareTo(date) > 0; date.AddDays(1.0))
{
// logic here
}
DateTime.AddDays
devuelve una nueva instancia sin modificar la date
. En este momento estás desechando esta nueva instancia. En su lugar, necesita hacer:
for (DateTime date = DateTime.Now; futureDate.CompareTo(date) > 0; date = date.AddDays(1.0))
{
// logic here
}
Además, no estoy seguro de por qué llama a CompareTo
cuando podría usar el operador <
. No puedo decir si CompareTo(date) > 0
es correcto sin pensarlo por un momento, mientras que la intención del operador <
es obvia:
for (DateTime date = DateTime.Now; date < futureDate; date = date.AddDays(1.0))
{
// logic here
}