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:

  1. Este comentario ha sido eliminado por el autor.

    ResponderBorrar
  2. Este comentario ha sido eliminado por el autor.

    ResponderBorrar
  3. 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);

    ResponderBorrar
  4. 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.

    ResponderBorrar
  5. 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);

    ResponderBorrar
  6. 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);

    ResponderBorrar
  7. 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); }

    ResponderBorrar
  8. erne_rojd

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

    Saludos :)

    ResponderBorrar

Gracias por sus comentarios.




Carlos Juan