Как я могу найти последний день месяца на С#?
Например, если у меня есть дата 03/08/1980, как мне получить последний день месяца 8 (в данном случае 31)?
Как я могу найти последний день месяца на С#?
Например, если у меня есть дата 03/08/1980, как мне получить последний день месяца 8 (в данном случае 31)?
В последний день месяца вы получите вот так: 31:
DateTime.DaysInMonth(1980, 08);
var lastDayOfMonth = DateTime.DaysInMonth(date.Year, date.Month);
DateTime firstOfNextMonth = new DateTime(date.Year, date.Month, 1).AddMonths(1);
DateTime lastOfThisMonth = firstOfNextMonth.AddDays(-1);
Если вам нужна дата, заданная месяц и год, это кажется правильным:
public static DateTime GetLastDayOfMonth(this DateTime dateTime)
{
return new DateTime(dateTime.Year, dateTime.Month, DateTime.DaysInMonth(dateTime.Year, dateTime.Month));
}
Выделите день с первого числа следующего месяца:
DateTime lastDay = new DateTime(MyDate.Year,MyDate.Month+1,1).AddDays(-1);
Кроме того, если вам нужно, чтобы он работал и в декабре:
DateTime lastDay = new DateTime(MyDate.Year,MyDate.Month,1).AddMonths(1).AddDays(-1);
Вы можете найти последний день месяца одной строкой кода:
int maxdt = (new DateTime(dtfrom.Year, dtfrom.Month, 1).AddMonths(1).AddDays(-1)).Day;
Вы можете найти последнюю дату любого месяца по этому коду:
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);
От DateTimePicker:
Первая дата:
DateTime first_date = new DateTime(DateTimePicker.Value.Year, DateTimePicker.Value.Month, 1);
Последняя дата:
DateTime last_date = new DateTime(DateTimePicker.Value.Year, DateTimePicker.Value.Month, DateTime.DaysInMonth(DateTimePicker.Value.Year, DateTimePicker.Value.Month));
Я не знаю С#, но если окажется, что нет удобного API-интерфейса для его получения, один из способов сделать это - следовать логике:
today -> +1 month -> set day of month to 1 -> -1 day
Конечно, предполагается, что у вас есть математика с таким типом.
Чтобы получить последний день месяца в определенном календаре - и в методе расширения -:
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;
}