在C#中更新日期字段

时间:2012-04-17 19:33:20

标签: c#

我在类中使用一个方法,从文本文件中读取每一行。 文本文件在标题区域中包含一个日期字段。

其他订单项包含一些帐户信息。代码从每个行项目中读取数据。我想根据订单项中的帐户代码更新日期。但是,我想只在找到下面显示的一个帐户代码时才更新日期。在我的情况下,每当代码找到任何这些帐户代码时,它都会更新日期。

假设标题日期为'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;
             }
         }
     }
 }

1 个答案:

答案 0 :(得分:1)

看起来您只需要测试您要分配的新日期是否小于当前日期。

IE

 date = date.AddDays(-3);

 if(_header.Date < date)
 {
     _header.Date = date;
     dateChanged = true;
 }