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



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



например, если у меня есть дата 03/08/1980, как я могу получить последний день месяца 8 (в данном случае 31)?

691   10  

10 ответов:

в последний день месяца вы получаете вот так, что возвращает 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));

Я не знаю C#, но, если окажется, что нет удобного 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;
}

Comments

    Ничего не найдено.