jueves, 1 de julio de 2010

Cambiar los valores de un objeto DateTime

Hay que reconocer que tratar con fechas siempre es un engorro por sus “particularidades”. Pero el que cuando creas un objeto DateTime ya no lo puedas modificar directamente más que con operaciones aritméticas o con un objeto TimeSpan, pues como complica su uso.

 Por ello almaceno en esta entrada la manera facil de modificar cualquiera de los datos de una fecha u hora almacenados en este tipo de objetos.

Para ello lo que haremos es crear siempre un nuevo objeto DateTime pero con los valores que querramos como se vé en los siguientes ejemplos.

Partimos de la base de un DateTime con el siguiente contenido: 22/11/1967 00:00:00
DateTime fecha = new DateTime(2010, 11, 22, 0, 0, 0);
DateTime fechaDesde;
DateTime fechaHasta;
Para añadir días, meses, o años y que el propio método se enrede con la coherencia de los datos (no vale un 30 de febrero, pero si un 29 cuando el año es bisiseto) yo aconsejo utilizar el método Add().
fecha = fecha.AddDays(1);
Pero si lo que quiero es situarlo en una hora exacta el sistema que yo uso es:
fechaDesde = new DateTime(fecha.Year, fecha.Month, fecha.Day, 0, 0, 0);
fechaHasta = new DateTime(fecha.Year, fecha.Month, fecha.Day, 23, 59, 59);
Listo”!!

No hay comentarios: