Como posso encontrar o último dia do mês em c #?
Por exemplo, se eu tenho a data 03/08/1980, como obtenho o último dia do mês 8 (neste caso, 31)?
Como posso encontrar o último dia do mês em c #?
Por exemplo, se eu tenho a data 03/08/1980, como obtenho o último dia do mês 8 (neste caso, 31)?
Respostas:
O último dia do mês em que você fica assim, retorna 31:
DateTime.DaysInMonth(1980, 08);
var lastDayOfMonth = DateTime.DaysInMonth(date.Year, date.Month);
DateTime
de lastDayOfMonth
. Honestamente, de qualquer maneira funciona perfeitamente bem. É um argumento pedante de que maneira é melhor. Eu fiz isso de duas maneiras e ambas produzem a mesma resposta.
Você pode encontrar o último dia do mês por uma única linha de código:
int maxdt = (new DateTime(dtfrom.Year, dtfrom.Month, 1).AddMonths(1).AddDays(-1)).Day;
DateTime.DaysInMonth
por que alguém deveria procurar essa maneira ilegível e complexa de alcançá-la !? - Mas como uma solução válida é aceitável;).
De DateTimePicker:
Primeiro encontro:
DateTime first_date = new DateTime(DateTimePicker.Value.Year, DateTimePicker.Value.Month, 1);
Última data:
DateTime last_date = new DateTime(DateTimePicker.Value.Year, DateTimePicker.Value.Month, DateTime.DaysInMonth(DateTimePicker.Value.Year, DateTimePicker.Value.Month));
Para obter o último dia do mês em um calendário específico - e em um método de extensão -:
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;
}
// 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));
var myDate = new DateTime(1980, 1, 31);
(retorna o dia 29) #
Eu não sei C #, mas, se não houver uma maneira conveniente de obter API, uma das maneiras de fazer isso é seguindo a lógica:
today -> +1 month -> set day of month to 1 -> -1 day
Obviamente, isso pressupõe que você tenha a matemática da data desse tipo.