Ignore:
Timestamp:
05/30/13 18:08:47 (10 years ago)
Author:
ymipsl
Message:

Bug fix : Solve problem in splitting date
Enhancement : Add file attribute split_freq_format to manage the suffix added in splitted file

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/trunk/src/date.cpp

    r423 r431  
    214214      } 
    215215       
    216        StdString CDate::toString(void) const 
     216 
     217      string CDate::getStr(const string& str) const 
     218      { 
     219        ostringstream oss ; 
     220        int level; 
     221         
     222        level=0 ; 
     223        for(string::const_iterator it=str.begin();it!=str.end();++it) 
     224        { 
     225          if (level==0) 
     226          { 
     227            if (*it=='%') level++ ; 
     228            else oss<<*it ; 
     229          } 
     230          else if (level==1) 
     231          { 
     232            switch (*it) 
     233            { 
     234              case 'y' : 
     235                oss.width (4);  oss.fill ('0') ; oss << year ; 
     236                level=0 ; 
     237                break ; 
     238              case 'm' : // month or minute 
     239                level++ ; 
     240                break ; 
     241              case 'd' : 
     242                oss.width (2);  oss.fill ('0') ; oss << day ; 
     243                level=0; 
     244                break ; 
     245              case 'h' : 
     246                oss.width (2);  oss.fill ('0') ; oss << hour ; 
     247                level=0; 
     248                break ; 
     249              case 's' : 
     250                oss.width (2);  oss.fill ('0') ; oss << second ; 
     251                level=0 ; 
     252                break; 
     253              default : 
     254                oss<<'%'<<*it ; 
     255                level=0 ; 
     256            } 
     257          } 
     258          else if (level==2) 
     259          { 
     260            switch (*it) 
     261            { 
     262              case 'o' : // month 
     263                oss.width (2);  oss.fill ('0') ; oss << month ; 
     264                level=0 ; 
     265                break ; 
     266              case 'i' : //minute 
     267                oss.width (2);  oss.fill ('0') ; oss << minute ; 
     268                level=0 ; 
     269                break ; 
     270              default : 
     271                oss<<"%m"<<*it ; 
     272                level=0 ; 
     273            } 
     274          } 
     275        } 
     276        return oss.str(); 
     277      } 
     278       
     279      StdString CDate::toString(void) const 
    217280      {  
    218281         StdOStringStream oss; 
Note: See TracChangeset for help on using the changeset viewer.