siguiente - Fecha y hora en C#agregar días
formato fecha c (6)
Quiero agregar días en alguna fecha. Tengo un código como este:
DateTime endDate = Convert.ToDateTime(this.txtStartDate.Text);
Int64 addedDays = Convert.ToInt64(txtDaysSupp.Text);
endDate.AddDays(addedDays);
DateTime end = endDate;
this.txtEndDate.Text = end.ToShortDateString();
¡Pero este código no funciona, los días no se agregan! ¿Qué error estúpido estoy haciendo?
¿Por qué usas Int64
? AddDays
exige un double
valor añadido. Entonces necesitarás usar el valor de AddDays.
de AddDays.
Mira DateTime.AddDays .
Asigna el enddate a alguna variable de fecha porque el método AddDays
devuelve el nuevo Datetime como resultado.
Datetime somedate=endDate.AddDays(2);
DateTime es inmutable. Eso significa que no puede cambiar su estado y tiene que asignar el resultado de una operación a una variable.
endDate = endDate.AddDays(addedDays);
Es porque el método AddDays()
devuelve un nuevo DateTime
, que no está asignando o utilizando en ningún lugar.
Ejemplo de uso:
DateTime newDate = endDate.AddDays(2);
Necesita capturar el valor de retorno.
El método DateTime.AddDays devuelve un objeto cuyo valor es la suma de la fecha y hora de la instancia y el valor agregado.
endDate = endDate.AddDays(addedDays);
Utilizar esta:
DateTime dateTime = new DateTime();
dateTime = DateTime.Now;
DateTime newDateTime = new DateTime();
TimeSpan NumberOfDays = new TimeSpan(2, 0, 0, 0, 0);
newDateTime = dateTime.Add(NumberOfDays);