0

テキスト ファイルから各行を読み取るクラスのメソッドを使用しています。テキスト ファイルには、ヘッダー領域に 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;
             }
         }
     }
 }
4

1 に答える 1

1

割り当てたい新しい日付が現在の日付よりも小さいかどうかをテストする必要があるようです。

IE

 date = date.AddDays(-3);

 if(_header.Date < date)
 {
     _header.Date = date;
     dateChanged = true;
 }
于 2012-04-17T19:35:57.927 に答える