Как мне получить последний день месяца? - PullRequest
268 голосов
/ 22 марта 2010

Как мне найти последний день месяца в C #?

Например, если у меня есть дата 03.08.1980, как мне получить последний день месяца 8 (в данном случае 31)?

Ответы [ 11 ]

550 голосов
/ 22 марта 2010

Последний день месяца, который вы получаете таким образом, который возвращает 31:

DateTime.DaysInMonth(1980, 08);
156 голосов
/ 22 марта 2010
var lastDayOfMonth = DateTime.DaysInMonth(date.Year, date.Month);
75 голосов
/ 22 марта 2010
DateTime firstOfNextMonth = new DateTime(date.Year, date.Month, 1).AddMonths(1);
DateTime lastOfThisMonth = firstOfNextMonth.AddDays(-1);
28 голосов
/ 15 июля 2011

Если вы хотите дату , учитывая месяц и год, это кажется правильным:

public static DateTime GetLastDayOfMonth(this DateTime dateTime)
{
    return new DateTime(dateTime.Year, dateTime.Month, DateTime.DaysInMonth(dateTime.Year, dateTime.Month));
}
10 голосов
/ 22 марта 2010

Вычтите день с первого числа следующего месяца:

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);
7 голосов
/ 29 апреля 2013

Последний день месяца можно найти по одной строке кода:

int maxdt = (new DateTime(dtfrom.Year, dtfrom.Month, 1).AddMonths(1).AddDays(-1)).Day;
7 голосов
/ 21 марта 2013

Вы можете найти последнюю дату любого месяца по этому коду:

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);
4 голосов
/ 05 июля 2016

С 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));
2 голосов
/ 10 сентября 2017

Чтобы получить последний день месяца в определенном календаре и в методе расширения -:

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;
}
1 голос
/ 12 октября 2018
// 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));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...