visual una semana primer obtener numero net mes fecha dias año actual c# .net datetime

semana - primer dia de una fecha c#



¿Cómo llego el último día de un mes? (11)

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

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


Desde DateTimePicker:

Primera fecha:

DateTime first_date = new DateTime(DateTimePicker.Value.Year, DateTimePicker.Value.Month, 1);

Ultima cita:

DateTime last_date = new DateTime(DateTimePicker.Value.Year, DateTimePicker.Value.Month, DateTime.DaysInMonth(DateTimePicker.Value.Year, DateTimePicker.Value.Month));


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

DateTime.DaysInMonth(1980, 08);


No sé C # pero, si resulta que no hay una forma de API conveniente para obtenerla, una de las formas en que puede hacerlo es siguiendo la lógica:

today -> +1 month -> set day of month to 1 -> -1 day

Por supuesto, eso supone que tienes datos matemáticos de ese tipo.


Para obtener el último día de un mes en un calendario específico, y en un método de extensión:

public static int DaysInMonthBy(this DateTime src, Calendar calendar) { var year = calendar.GetYear(src); // year of src in your calendar var month = calendar.GetMonth(src); // month of src in your calendar var lastDay = calendar.GetDaysInMonth(year, month); // days in month means last day of that month in your calendar return lastDay; }


Puede encontrar el último día del mes por una sola línea de código:

int maxdt = (new DateTime(dtfrom.Year, dtfrom.Month, 1).AddMonths(1).AddDays(-1)).Day;


Puede encontrar la última fecha de cualquier mes por 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);


Resta un día del primero del próximo mes:

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

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

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


Si quieres la fecha , dada 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)); }


// Use any date you want, for the purpose of this example we use 1980-08-03. var myDate = new DateTime(1980,8,3); var lastDayOfMonth = new DateTime(myDate.Year, myDate.Month, DateTime.DaysInMonth(myDate.Year, myDate.Month));


DateTime firstOfNextMonth = new DateTime(date.Year, date.Month, 1).AddMonths(1); DateTime lastOfThisMonth = firstOfNextMonth.AddDays(-1);


var lastDayOfMonth = DateTime.DaysInMonth(date.Year, date.Month);