¿Cómo obtengo el último día de un mes?

Resuelto Gold asked hace 14 años • 16 respuestas

¿Cómo puedo encontrar el último día del mes en C#?

Por ejemplo, si tengo la fecha 08/03/1980, ¿cómo obtengo el último día del mes 8 (en este caso 31)?

Gold avatar Mar 22 '10 21:03 Gold
Aceptado

El último día del mes te sale así, que devuelve 31:

DateTime.DaysInMonth(1980, 08);
Oskar Kjellin avatar Mar 22 '2010 14:03 Oskar Kjellin
var lastDayOfMonth = DateTime.DaysInMonth(date.Year, date.Month);
Mark avatar Mar 22 '2010 14:03 Mark

Si desea la fecha , dado un mes y un año, esto parece correcto:

public static DateTime GetLastDayOfMonth(this DateTime dateTime)
{
    return new DateTime(dateTime.Year, dateTime.Month, DateTime.DaysInMonth(dateTime.Year, dateTime.Month));
}
Ian G avatar Jul 15 '2011 14:07 Ian G

Resta un día del primero del mes siguiente:

DateTime lastDay = new DateTime(MyDate.Year,MyDate.Month+1,1).AddDays(-1);

Además, en caso de que necesites que funcione también para diciembre:

DateTime lastDay = new DateTime(MyDate.Year,MyDate.Month,1).AddMonths(1).AddDays(-1);
Radu094 avatar Mar 22 '2010 14:03 Radu094

Puede encontrar la última fecha de cualquier mes con este código:

var now = DateTime.Now;
var startOfMonth = new DateTime(now.Year, now.Month, 1);
var DaysInMonth = DateTime.DaysInMonth(now.Year, now.Month);
var lastDay = new DateTime(now.Year, now.Month, DaysInMonth);
mash avatar Mar 21 '2013 09:03 mash