C# 截止日期问题-今年最后一个月

C# 截止日期问题-今年最后一个月,c#,datetime,zend-date,netapp,C#,Datetime,Zend Date,Netapp,我有一个.netapp应用程序(C#),用于从API提取数据 我们在2017年12月运行此功能时,它现在遇到了一个问题。。但我们希望它命名为2018年1月。(2018年1月1日油井) 我认为他们的写作方式意味着它正在寻找2017年13月,这显然是不存在的 有谁能建议我们如何解决这个问题,以便我们现在就可以运行它,以及如何确保我们不会在明年12月再次遇到这个问题 public override string ToString() { var reportDate = new

我有一个.netapp应用程序(C#),用于从API提取数据

我们在2017年12月运行此功能时,它现在遇到了一个问题。。但我们希望它命名为2018年1月。(2018年1月1日油井)

我认为他们的写作方式意味着它正在寻找2017年13月,这显然是不存在的

有谁能建议我们如何解决这个问题,以便我们现在就可以运行它,以及如何确保我们不会在明年12月再次遇到这个问题

public override string ToString()
    {
        var reportDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month + 1, 1);

        if (!String.IsNullOrWhiteSpace(AppConfigHelper.EndDate))
        {
            var year = Int32.Parse(AppConfigHelper.EndDate.Substring(6, 4));
            var month = Int32.Parse(AppConfigHelper.EndDate.Substring(3, 2));
            var day = Int32.Parse(AppConfigHelper.EndDate.Substring(0, 2));
            reportDate = new DateTime(year, month, day);
            reportDate = reportDate.AddDays(1);
        }

您可以使用
DateTime.Today.AddMonths(1)

顺便说一下,您不需要字符串方法和
int.Parse
来获取
DateTime
,使用
ParseExact

if (!String.IsNullOrWhiteSpace(AppConfigHelper.EndDate))
{
    reportDate = DateTime.ParseExact(AppConfigHelper.EndDate, "ddMMyyyy", null);
    reportDate = reportDate.AddDays(1);
}

您可以使用
DateTime.Today.AddMonths(1)

顺便说一下,您不需要字符串方法和
int.Parse
来获取
DateTime
,使用
ParseExact

if (!String.IsNullOrWhiteSpace(AppConfigHelper.EndDate))
{
    reportDate = DateTime.ParseExact(AppConfigHelper.EndDate, "ddMMyyyy", null);
    reportDate = reportDate.AddDays(1);
}

请分享api中的结束日期字符串以及“生成下个月的开始”问题,我强烈建议使用
DateTime.ParseExact
来解析字符串,而不是自己手动解析。请分享api中的结束日期字符串以及“生成下个月的开始”问题,我强烈建议使用
DateTime.ParseExact
来解析字符串,而不是自己手动解析。我在想,但有时我们需要启用EndDate,以便可以运行前几个月之类的内容。@craig157:抱歉,我不理解您的评论。Ofc您也可以使用
.AddMonths(-1)
Hi Tim-因此我们可能希望收集2017年7月15日的数据,因此在我们的应用程序配置中,我们有一个EndDate键,可以设置为该日期。但是如果没有设置日期,那么它将在今天运行Date@craig157我还是不明白这个问题。您的问题已包含阅读该问题的代码。这在我的代码中是怎么不起作用的?@craig157:你提到的东西都是彼此无关的。问题源于数学上有效的操作(12+1=13),该操作会导致日期问题(没有第13个月)。解决方案是增加日期,而不是增加月份数。蒂姆的回答解决了这个问题。您在评论中提出的是一个完全不同的问题,与您提出的问题无关。我在想,但有时我们需要启用结束日期,以便可以运行前几个月等等。@craig157:对不起,我不理解您的评论。Ofc您也可以使用
.AddMonths(-1)
Hi Tim-因此我们可能希望收集2017年7月15日的数据,因此在我们的应用程序配置中,我们有一个EndDate键,可以设置为该日期。但是如果没有设置日期,那么它将在今天运行Date@craig157我还是不明白这个问题。您的问题已包含阅读该问题的代码。这在我的代码中是怎么不起作用的?@craig157:你提到的东西都是彼此无关的。问题源于数学上有效的操作(12+1=13),该操作会导致日期问题(没有第13个月)。解决方案是增加日期,而不是增加月份数。蒂姆的回答解决了这个问题。你在评论中所问的是一个完全不同的问题,与你所问的问题无关。