我有一个.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);
}
答案 0 :(得分:3)
您可以使用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);
}