¿Cómo obtengo el último día de un mes?
¿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)?
Aceptado
El último día del mes te sale así, que devuelve 31:
DateTime.DaysInMonth(1980, 08);
var lastDayOfMonth = DateTime.DaysInMonth(date.Year, date.Month);
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));
}
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);
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);