EndDate 问题 - 一年中的最后一个月

EndDate Issue - Last Month of Year

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

中提取数据

它现在遇到了一个问题,因为我们 运行 将它命名为 2017 年 12 月..但我们希望它命名为 2018 年 1 月。(嗯 01/01/2018)

我认为他们按照我们编写的方式表示它正在寻找显然不存在的 13/2017。

任何人都可以建议如何修改此问题,以便我们现在可以 运行 以及如何确保明年 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):

var nextMonth = DateTime.Today.AddMonths(1);
reportDate = new DateTme(nextMonth.Year, nextMonth.Month, 1);
// ...

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

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