¿Cómo puedo encontrar el último día del mes en C#?¿Cómo obtengo el último día de un mes?
Por ejemplo, si tengo la fecha 03/08/1980, ¿cómo obtengo el último día del mes 8 (en este caso 31)?
¿Cómo puedo encontrar el último día del mes en C#?¿Cómo obtengo el último día de un mes?
Por ejemplo, si tengo la fecha 03/08/1980, ¿cómo obtengo el último día del mes 8 (en este caso 31)?
El último día del mes en que recibe como éste, que devuelve 31:
DateTime.DaysInMonth(1980, 08);
public static DateTime ConvertToLastDayOfMonth (DateTime date) { return new DateTime (date.Year, date.Month, DateTime.DaysInMonth (date.Year, date.Month)); } para obtener el último día del mes en un formato de fecha – regisbsb
DateTime firstOfNextMonth = new DateTime(date.Year, date.Month, 1).AddMonths(1);
DateTime lastOfThisMonth = firstOfNextMonth.AddDays(-1);
"¿Cómo obtener el último día de un mes?". DateTime.DaysInMonth (año, mes) devolverá cuántos días hay en el mes, esto arrojará la misma respuesta para "cuál es el último día del mes". Tu manera funciona, pero creo que es demasiado código para algo simple. – rochasdv
Restar un día de la primera del próximo mes:
DateTime lastDay = new DateTime(MyDate.Year,MyDate.Month+1,1).AddDays(-1);
Además, en caso de que lo necesite para trabajar para diciembre también:
DateTime lastDay = new DateTime(MyDate.Year,MyDate.Month,1).AddMonths(1).AddDays(-1);
var lastDayOfMonth = DateTime.DaysInMonth(date.Year, date.Month);
@Henk En realidad saqué esto de un lugar de nuestra fuente que crea el 'DateTime' del' lastDayOfMonth'. Honestamente, de cualquier manera, funciona perfectamente bien. Es un argumento pedante que camino es mejor. Lo he hecho en ambos sentidos y ambos producen la misma respuesta. – Mark
Marca, no.Tu resultado es un 'int', un' DateTime'. Es sobre quién de nosotros lee (adivina) las especificaciones lo mejor. –
I don' Conozco C# pero, si resulta que no hay una forma conveniente de API para obtenerlo, 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 tiene matemática de fecha de ese tipo.
Si desea que el 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));
}
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);
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;
Me estoy preguntando que en lugar de un método simple: 'DateTime.DaysInMonth', ¿por qué alguien debería buscar esta forma ilegible y compleja de lograrlo? - Pero como una solución válida es aceptable;). –
De DateTimePicker:
Primera fecha:
DateTime first_date = new DateTime(DateTimePicker.Value.Year, DateTimePicker.Value.Month, 1);
Fecha:
DateTime last_date = new DateTime(DateTimePicker.Value.Year, DateTimePicker.Value.Month, DateTime.DaysInMonth(DateTimePicker.Value.Year, DateTimePicker.Value.Month));
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;
}
@Mark: ¿Para qué puedo preguntar? Tu propia respuesta no requiere un método de extensión, creo. – abatishchev
El último día no es específico solo del mes, también necesita el año. El último día de febrero de 2010 es el 28, pero el último día de febrero de 2008 es el 29. – Guffa
@abatishchev No se requiere un método de extensión, pero la pregunta realmente no se solicita. Sin embargo, es mucho más agradable y mucho más legible, al menos para mí, verlo uno. El método de extensión fue más una sugerencia que nada. Cualquier solución funcionaría en un método de extensión, no solo en el mío. – Mark