является неэффективным и зависит от форматирования даты текущей культуры. Есть более чистые решения, предоставленные другими трехлетними ответами.

от вопрос уже есть ответ здесь:

Как мне получить последний день месяца? 11 ответов

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

 user324871929 янв. 2014 г., 13:08
DateTime.DaysInMonth (1980, 08); Пожалуйста, смотрите эту статьюstackoverflow.com/questions/2493032/...

Ответы на вопрос(5)

попробуй это. Это решит вашу проблему.

 var lastDayOfMonth = DateTime.DaysInMonth(int.Parse(ddlyear.SelectedValue), int.Parse(ddlmonth.SelectedValue));
DateTime tLastDayMonth = Convert.ToDateTime(lastDayOfMonth.ToString() + "/" + ddlmonth.SelectedValue + "/" + ddlyear.SelectedValue);
 BACON25 февр. 2014 г., 06:33
Построениеstring так что вы можетеразобрать его вDateTime является неэффективным и зависит от форматирования даты текущей культуры. Есть более чистые решения, предоставленные другими трехлетними ответами.
public static class DateTimeExtensions
{
    public static DateTime LastDayOfMonth(this DateTime date)
    {
        return date.AddDays(1-(date.Day)).AddMonths(1).AddDays(-1);
    }
}
 humbads01 мая 2017 г., 17:39
Это отличное решение, когда вам нужно сохранить временную часть даты. Другие решения не делают этого. Я предлагаю переписать «AddDays (1- (date.Day))» в «AddDays (-date.Day + 1)», чтобы сделать намерение более понятным.

Что-то вроде:

DateTime today = DateTime.Today;
DateTime endOfMonth = new DateTime(today.Year, today.Month, 1).AddMonths(1).AddDays(-1);

То есть, вы получите первый день следующего месяца, а затем вычтите день. Код фреймворка будет обрабатывать длину месяца, високосные годы и тому подобное.

 Unmesh Kondolikar11 янв. 2011 г., 08:25
Хм ... если он многократно используется во многих местах вашего кода, напишите это как метод Extension в классе dateTime, который вы можете вызывать в DateTime.Now. Например DateTime.Now.LastDayOfMonth ();
 leppie11 янв. 2011 г., 08:22
Именно то, что я хотел написать, но думал, что кто-то меня побьет этим :) +1
DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month)
Решение Вопроса

Еще один способ сделать это:

DateTime today = DateTime.Today;
DateTime endOfMonth = new DateTime(today.Year, 
                                   today.Month, 
                                   DateTime.DaysInMonth(today.Year, 
                                                        today.Month));
 hultqvist11 янв. 2011 г., 08:40
Я собирался предложить System.Globalization.CultureInfo.CurrentCulture.Calendar.GetDaysInMonth.GetDaysInMonth, но это было намного короче.

Ваш ответ на вопрос