如何在C#中找到该月的最后一天?
例如,如果我的日期是03/08/1980,那么如何获得第8个月的最后一天(在这种情况下为31)?
答案 0 :(得分:542)
本月的最后一天,你会得到这样的结果:31:
DateTime.DaysInMonth(1980, 08);
答案 1 :(得分:154)
var lastDayOfMonth = DateTime.DaysInMonth(date.Year, date.Month);
答案 2 :(得分:74)
DateTime firstOfNextMonth = new DateTime(date.Year, date.Month, 1).AddMonths(1);
DateTime lastOfThisMonth = firstOfNextMonth.AddDays(-1);
答案 3 :(得分:26)
如果您想要日期,给定一个月和一年,这似乎是正确的:
public static DateTime GetLastDayOfMonth(this DateTime dateTime)
{
return new DateTime(dateTime.Year, dateTime.Month, DateTime.DaysInMonth(dateTime.Year, dateTime.Month));
}
答案 4 :(得分:9)
从下个月的第一天减去一天:
DateTime lastDay = new DateTime(MyDate.Year,MyDate.Month+1,1).AddDays(-1);
另外,如果您需要它也适用于12月:
DateTime lastDay = new DateTime(MyDate.Year,MyDate.Month,1).AddMonths(1).AddDays(-1);
答案 5 :(得分:7)
您可以通过以下代码找到任意月份的最后日期:
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);
答案 6 :(得分:7)
您可以通过一行代码找到该月的最后一天:
int maxdt = (new DateTime(dtfrom.Year, dtfrom.Month, 1).AddMonths(1).AddDays(-1)).Day;
答案 7 :(得分:4)
来自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));
答案 8 :(得分:2)
要获取特定日历中的一个月的最后一天 - 以及扩展方法 - :
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;
}
答案 9 :(得分:1)
我不知道C#但是,如果事实证明没有一种方便的API方法来获取它,那么你可以通过遵循以下逻辑来实现:
today -> +1 month -> set day of month to 1 -> -1 day
当然,假设您有该类型的日期数学。
答案 10 :(得分:1)
// 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));
答案 11 :(得分:1)
这将显示下个月的最后一天。您可以通过添加或减去 AddMonths(x)
来添加要返回的年份中的月份DateTime.Now.AddMonths(2).AddDays(-DateTime.Now.Day)
答案 12 :(得分:0)
此公式反映了@RHSeeger 的想法,即获取(在本例中)第三个月的最后一天(单元格 A1 + 4 中的日期月份,该月的第一天减去 1 天)的想法:>
=DATE(YEAR(A1);MONTH(A1)+4;1)-1
非常精确,包括闰年的二月:)
答案 13 :(得分:0)
2021 年 5 月 7 日的示例
<块引用>DateTime.Now.Day;
结果:5
<块引用>DateTime.Now.AddMonths(+1).AddDays(-DateTime.Now.Day).ToString("yyyy-MM-dd");
结果:2021/07/31
答案 14 :(得分:0)
另一种获取结束日期的方法:
private static DateTime GetMonthEndDate(DateTime date)
{
DateTime endDate = date;
int endDateMonth = endDate.Month;
while (endDateMonth == endDate.Month)
endDate = endDate.AddDays(1);
endDate = endDate.AddDays(-1);
return endDate;
}