jueves, 24 de febrero de 2011

Primer y Ultimo día de Mes c#

DateTime? fechatemp = null;
DateTime? fecha1 null;
DateTime? fecha2 null;


 fechatemp = DateTime.Today;
 fecha1 = new DateTime(fechatemp.Value.Year, fechatemp.Value.Month, 1);
 fecha2 = new DateTime(fechatemp.Value.Year, fechatemp.Value.Month + 1, 1).AddDays(-1);

8 comentarios:

erne_rojd dijo...
Este comentario ha sido eliminado por el autor.
erne_rojd dijo...
Este comentario ha sido eliminado por el autor.
erne_rojd dijo...

Grax, excelente codigo, entendible y facilisimo de implementar,
solo que en Visual studio 2010. va sin Value, y sin la inicializacion en null.

DateTime fechatemp;
DateTime fecha1;
DateTime fecha2;


fechatemp = DateTime.Today;
fecha1 = new DateTime(fechatemp.Year, fechatemp.Month, 1);
fecha2 = new DateTime(fechatemp.Year, fechatemp.Month + 1, 1).AddDays(-1);

Luisito dijo...

erne_rojd, en tu ejemplo vos utilizas DateTime, el utiliza DataTime?, en el ejemplo de el va el value y en el tuyo no porque en el primer caso se esta trabajando con variables Nullable, saludos.

Y exelente el ejemplo.

mezeq dijo...

En el mes 12 fallaría? Porque fecha2 calcula sumando un mes al mes de referencia. Entonces daría 13.

Podríamos usar una adaptación como:

fecha2 = new DateTime(fechatemp.Year, fechatemp.Month, 1).AddMonths(1).AddDays(-1);

RAULGB dijo...

Seguiria fallando, hay que usar la variable de fecha1, y no fijar el año al año Actual:

lastDay = fecha1.AddMonths(1).AddDays(-1);

Mauricio Ortiz dijo...

DateTime fechatemp = DateTime.Today;

//DateTime fechatemp = new DateTime(2014, 12, 31);

DateTime fecha1 = new DateTime(fechatemp.Year, fechatemp.Month, 1);
DateTime fecha2;

if (fechatemp.Month + 1 < 13)
{ fecha2 = new DateTime(fechatemp.Year, fechatemp.Month + 1, 1).AddDays(-1); }
else
{ fecha2 = new DateTime(fechatemp.Year + 1, 1, 1).AddDays(-1); }

Roger Tello dijo...

erne_rojd

gracias por tu aporte, tal cual lo pusiste me sirvio.

Saludos :)