C#获取给定月份和年份的上个月的最后一天

时间:2018-12-01 18:10:20

标签: c# datetime

我正在尝试创建一个向我返回DateTime对象的方法。

此日期应该是上个月的最后一天(我给的月份)。

示例:

月份: 1月(1)

年份: 2019

我需要什么:2018年12月31日

这就是我所拥有的

   public DateTime getLastDayPrevMonth(int month, int year)
        {
            DateTime date = new DateTime();
            date.Month == month;
            date.Year == year;
            date.AddMonths(-1);
            date.Day = DateTime.DaysInMonth(date.Year,date.Month);

            return date;
        }

但它返回错误:

  

仅赋值,调用,递增,递减和新对象表达式可以用作语句

我在做什么错?

2 个答案:

答案 0 :(得分:5)

怎么样:

public DateTime GetLastDayPrevMonth(int month, int year)
{
    return new DateTime(year, month, 1).AddDays(-1);
}

这将在给定的月份/年份的第一天创建一个新的DateTime对象。然后,它会从该月的第一天减去一天,剩下上个月的最后一天。

答案 1 :(得分:4)

您可以像Current Date一样

var CurrentDate= DateTime.Now; 

Current Month的第一天一样

var FirstdayOfThisMonth= new DateTime(CurrentDate.Year, CurrentDate.Month, 1);

,您可以添加-1,该日期将返回previous month的最后一天,例如

var lastDayOfLastMonth = FirstdayOfThisMonth.AddDays(-1);