我在一个类中使用一种方法,它从文本文件中读取每一行。文本文件在标题区域包含一个日期字段。
其他行项目包含一些帐户信息。该代码从每个行项目中读取数据。我想根据行项目中的帐户代码更新日期。但是,只要找到下面显示的帐户代码之一,我只想更新一次日期。就我而言,每当代码找到任何这些帐户代码时,它都会更新日期。
假设标题日期是“04/12/2012”,第一个行项目的帐户代码是“140901”,那么它将更新日期为“04/10/2012”。
现在,如果第二行项目包含帐户代码“141202”,它会再次将日期更新为“04/08/2012”,依此类推。日期应更新为“2012 年 4 月 10 日”并停止更新,即使它找到一些其他帐户代码。
请让我知道我做错了什么。
public void UpdateDate(HeaderRecord _header, AccountSeries accountCode)
{
DateTime date = _header.Date;
bool dateChanged = false;
if (!dateChanged)
{
if (accountCode.Code == "140901" || accountCode.Code == "141202" ||
accountCode.Code == "141207" || accountCode.Code == "141303" ||
accountCode.Code == "141301" || accountCode.Code == "141001" ||
accountCode.Code == "141004" || accountCode.Code == "141003" ||
accountCode.Code == "141005" )
{
if (!CalendarValidatorHelper.Helper(date.AddDays(-2.0)))
{
if (!CalendarValidatorHelper.Helper(date.AddDays(-3.0)))
{
date = date.AddDays(-3.0);
_header.Date = date;
dateChanged = true;
}
else if (!CalendarValidatorHelper.Helper(date.AddDays(-4.0)))
{
date = date.AddDays(-4.0);
_header.Date = date;
dateChanged = true;
}
else if (!CalendarValidatorHelper.Helper(date.AddDays(-5.0)))
{
date = date.AddDays(-5.0);
_header.Date = date;
dateChanged = true;
}
}
else
{
date = date.AddDays(-2.0);
_header.Date = date;
dateChanged = true;
}
}
}
}