将一天添加到该月的最后一天

时间:2014-02-04 06:53:05

标签: c# datetime

DateTime dt = DateTime.UtcNow;  

var lastDayOfMonth = DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month);
day = dt.Day;
if (day != lastDayOfMonth)
{
    if (dt.Hour >= 14)
    {
        day = day + 1;
    }
    else if (dt.DayOfWeek == DayOfWeek.Sunday)
        day = day + 1;
}
else
{
    //  
}

现在我想在一个月的最后一天添加一天。我该怎么办?

5 个答案:

答案 0 :(得分:3)

尝试

newDate = date.AddDays(1);

答案 1 :(得分:2)

听起来你只需要DateTime.AddDays method

  

返回一个新的DateTime,它将指定的天数添加到   这个实例的价值。

DateTime.Day属性返回int。如果您只想添加1,那么您就是正确的。

day = day + 1;

但这当然不会影响dt

好的,让我们现在看看你的确切问题..

添加1个月,然后提取1天是查找当月最后一天的最佳方式之一。

例如;

DateTime dt = DateTime.UtcNow;
var FirstDayOfNextMonth = new DateTime(dt.Year, dt.Month, 1).AddMonths(1);
var LastDayOfCurrentMonth = FirstDayOfNextMonth.AddDays(-1);
Console.WriteLine(LastDayOfCurrentMonth); 

输出将是;

2/28/2014 12:00:00 AM

这里有 demonstration

答案 2 :(得分:1)

DateTime today = DateTime.Today;
DateTime firstDayOfThisMonth = new DateTime(today.Year, today.Month, 1);
DateTime firstDayOfNextMonth = firstDayOfThisMonth.AddMonths(1);

答案 3 :(得分:1)

要查找下个月的第一天,您可以使用

Datetime FirstDayofNxtMnth =DATE(YEAR(TODAY()),MONTH(TODAY())+1,1);

要查找本月的最后一天,您可以使用

Datetime FirstDayofNxtMnth =DATE(YEAR(TODAY()),MONTH(TODAY())+1,1);

Datetime LastDayofThisMnth =DATE(YEAR(TODAY()),MONTH(TODAY())+1,1).addDay(-1);

答案 4 :(得分:1)

最后,我通过删除lastDayOfMonth的if条件并使用AddDays属性来完成此操作。

                if (dt.Hour >= 14)
                {
                    dt.AddDays(1);
                }
                else if (dt.DayOfWeek == DayOfWeek.Sunday)
                {
                    dt.AddDays(1);
                }
                day = dt.Day;

感谢大家提出宝贵的建议。