una sumar restar net horas fechas fecha entre diferencia dias calcular años asp anterior c# datetime

restar - sumar dias a un datetimepicker c#



Intento restar días de DateTime en C#, pero me aparece un error que no entiendo (7)

Tengo el siguiente código en mi programa C #.

DateTime dateForButton = DateTime.Now; dateForButton = dateForButton.AddDays(-1); // ERROR: un-representable DateTime

Cada vez que lo ejecuto, aparece el siguiente error:

El valor agregado o restado da como resultado un DateTime no representable.
Nombre del parámetro: valor

Nunca antes había visto este mensaje de error, y no entiendo por qué lo estoy viendo. De las respuestas que he leído hasta ahora, me llevan a creer que puedo usar -1 en una operación de suma para restar días, pero como mi pregunta muestra, este no es el caso de lo que intento hacer.


El objeto (es decir, la variable de destino) para el método AddDays no puede ser el mismo que el de la fuente.

En lugar de:

DateTime today = DateTime.Today; today.AddDays(-7);

Pruebe esto en su lugar:

DateTime today = DateTime.Today; DateTime sevenDaysEarlier = today.AddDays(-7);


Ese error generalmente ocurre cuando intentas restar un intervalo de DateTime.MinValue o quieres agregar algo a DateTime.MaxValue (o intentas instanciar una fecha fuera de este intervalo mínimo-máximo). ¿Estás seguro de que no estás asignando MinValue algún lado?


Puedes usar el siguiente código:

dateForButton = dateForButton.Subtract(TimeSpan.FromDays(1));


Tu puedes hacer:

DateTime.Today.AddDays(-1)


Usar AddDays(-1) funcionó para mí hasta que traté de cruzar meses. Cuando traté de restar 2 días del 2017-01-01 el resultado fue 2016-00-30. No pudo manejar el cambio de mes correctamente (aunque el año parecía estar bien).

Utilicé date = Convert.ToDateTime(date).Subtract(TimeSpan.FromDays(2)).ToString("yyyy-mm-dd"); y no tengo problemas


DateTime dt = DateTime.Now; dt.AddDays(-1); //wont work //should set return value as belowe dt = dt.AddDays();


DateTime dateForButton = DateTime.Now.AddDays(-1);