テキスト ファイルから各行を読み取るクラスのメソッドを使用しています。テキスト ファイルには、ヘッダー領域に 1 つの日付フィールドが含まれます。
他の項目には、いくつかのアカウント情報が含まれています。このコードは、各項目からデータを読み取ります。項目のアカウント コードに基づいて日付を更新したいと考えています。ただし、以下に示すアカウント コードのいずれかが見つかるたびに、日付を 1 回だけ更新したいと考えています。私の場合、コードがこれらのアカウント コードのいずれかを見つけるたびに、日付を更新しています。
ヘッダー日付が「2012 年 4 月 12 日」で、最初の項目のアカウント コードが「140901」であるとすると、日付が「2012 年 4 月 10 日」に更新されます。
2 番目の項目にアカウント コード "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;
}
}
}
}