Как я могу найти последний день месяца в C #?
Например, если у меня есть дата 03.08.1980, как мне получить последний день месяца 8 (в данном случае 31)?
Как я могу найти последний день месяца в C #?
Например, если у меня есть дата 03.08.1980, как мне получить последний день месяца 8 (в данном случае 31)?
Ответы:
Последний день месяца, который вы получаете, как это, который возвращает 31:
DateTime.DaysInMonth(1980, 08);
var lastDayOfMonth = DateTime.DaysInMonth(date.Year, date.Month);
DateTime
из lastDayOfMonth
. Честно говоря, в любом случае работает отлично. Это педантичный аргумент, какой путь лучше. Я сделал это обоими способами, и оба дают один и тот же ответ.
Вы можете найти последний день месяца с помощью одной строки кода:
int maxdt = (new DateTime(dtfrom.Year, dtfrom.Month, 1).AddMonths(1).AddDays(-1)).Day;
DateTime.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));
Чтобы получить последний день месяца в определенном календаре - и в методе расширения -:
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);
(возвращает 29-е)
Я не знаю C #, но, если окажется, что нет удобного способа получить API, один из способов сделать это - следуя логике:
today -> +1 month -> set day of month to 1 -> -1 day
Конечно, это предполагает, что у вас есть дата математика этого типа.