如何在c#中找到一个月的最后一天?
例如,如果我有日期03/08/1980,我如何得到第8个月的最后一天(在本例中是31)?
如何在c#中找到一个月的最后一天?
例如,如果我有日期03/08/1980,我如何得到第8个月的最后一天(在本例中是31)?
当前回答
从下个月的第一天减去一天:
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);
其他回答
这个公式反映了@RHSeeger的想法,作为一个简单的解决方案,以获得(在这个例子中)第3个月的最后一天(单元格A1 + 4中的日期月份,该月的第一天减去1天):
=DATE(YEAR(A1);MONTH(A1)+4;1)-1
非常精确,包括闰年的二月。
我不懂c#,但是,如果没有一个方便的API方法来获得它,其中一种方法是遵循以下逻辑:
today -> +1 month -> set day of month to 1 -> -1 day
当然,前提是你有这种类型的约会数学。
// 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));
我只想在每个月的最后一天发射代码,就是这么简单……
if (DateTime.UtcNow.AddDays(1).Day != 1)
{
// Tomorrow is not the first...
return;
}
你可以通过一行代码找到这个月的最后一天:
int maxdt = (new DateTime(dtfrom.Year, dtfrom.Month, 1).AddMonths(1).AddDays(-1)).Day;