繁体   English   中英

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

[英]Adding one day to last day of the month

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
{
    //  
}

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

尝试

newDate = date.AddDays(1);

听起来你只需要DateTime.AddDays方法

返回一个新的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

DateTime today = DateTime.Today;
DateTime firstDayOfThisMonth = new DateTime(today.Year, today.Month, 1);
DateTime firstDayOfNextMonth = firstDayOfThisMonth.AddMonths(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);

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

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

谢谢大家的宝贵建议。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM