我在类中使用一个方法,从文本文件中读取每一行。 文本文件在标题区域中包含一个日期字段。
其他订单项包含一些帐户信息。代码从每个行项目中读取数据。我想根据订单项中的帐户代码更新日期。但是,我想只在找到下面显示的一个帐户代码时才更新日期。在我的情况下,每当代码找到任何这些帐户代码时,它都会更新日期。
假设标题日期为'04 / 12/2012'且第一个项目的帐户代码为“140901”,则它会将日期更新为“04/10/2012”。
现在,如果第二个订单项包含帐户代码“141202”,则会再次将日期更新为“04/08/2012”,依此类推。日期应更新为“04/10/2012”并停止更新,即使它找到其他一些帐户代码。
请让我知道我做错了什么。
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;
}
}
}
}
答案 0 :(得分:1)
看起来您只需要测试您要分配的新日期是否小于当前日期。
IE
date = date.AddDays(-3);
if(_header.Date < date)
{
_header.Date = date;
dateChanged = true;
}