Changeset 424


Ignore:
Timestamp:
02/25/13 03:10:18 (11 years ago)
Author:
ymipsl
Message:

Add new timestep unit : ts, for duration

YM

Location:
XIOS/trunk/src
Files:
3 edited

Legend:

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

    r423 r424  
    1212         CDuration dur(ddr); 
    1313         dur.year -= dr.year;  dur.month  -= dr.month ; dur.day    -= dr.day; 
    14          dur.hour -= dr.hour;  dur.minute -= dr.minute; dur.second -= dr.second; 
     14         dur.hour -= dr.hour;  dur.minute -= dr.minute; dur.second -= dr.second; dur.timestep -= dr.timestep; 
    1515         return (dur); 
    1616      } 
     
    2020         CDuration dur(ddr); 
    2121         dur.year += dr.year;  dur.month  += dr.month ; dur.day    += dr.day; 
    22          dur.hour += dr.hour;  dur.minute += dr.minute; dur.second += dr.second; 
     22         dur.hour += dr.hour;  dur.minute += dr.minute; dur.second += dr.second; dur.timestep += dr.timestep; 
    2323         return (dur); 
    2424      } 
     
    2828         CDuration dur(ddr); 
    2929         dur.year *= scal;  dur.month  *= scal; dur.day    *= scal; 
    30          dur.hour *= scal;  dur.minute *= scal; dur.second *= scal; 
     30         dur.hour *= scal;  dur.minute *= scal; dur.second *= scal; dur.timestep *= scal; 
    3131         return (dur); 
    3232      } 
     
    4141         dur.minute = -dur.minute; 
    4242         dur.second = -dur.second; 
     43         dur.second = -dur.timestep; 
    4344         return (dur); 
    4445      } 
     
    5152         int year = 0, month = 0, day = 0, hour = 0, minute = 0, second = 0; 
    5253         const CCalendar & c = dt.getRelCalendar(); 
    53  
     54          
     55         drr.timestep=0 ;        
     56         drr=drr+dr.timestep*dt.getRelCalendar().getTimeStep() ; 
     57          
    5458         drr.resolve(dt.getRelCalendar()); 
    5559 
  • XIOS/trunk/src/duration.cpp

    r343 r424  
    66{ 
    77      /// ////////////////////// Définitions ////////////////////// /// 
    8       const CDuration Year   = {1.0, 0.0, 0.0, 0.0, 0.0, 0.0}, 
    9                       Month  = {0.0, 1.0, 0.0, 0.0, 0.0, 0.0}, 
    10                       Week   = {0.0, 0.0, 7.0, 0.0, 0.0, 0.0}, 
    11                       Day    = {0.0, 0.0, 1.0, 0.0, 0.0, 0.0}, 
    12                       Hour   = {0.0, 0.0, 0.0, 1.0, 0.0, 0.0}, 
    13                       Minute = {0.0, 0.0, 0.0, 0.0, 1.0, 0.0}, 
    14                       Second = {0.0, 0.0, 0.0, 0.0, 0.0, 1.0}, 
    15                       NoneDu = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}; 
     8      const CDuration Year   = {1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, 
     9                      Month  = {0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0}, 
     10                      Week   = {0.0, 0.0, 7.0, 0.0, 0.0, 0.0, 0.0}, 
     11                      Day    = {0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0}, 
     12                      Hour   = {0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0}, 
     13                      Minute = {0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0}, 
     14                      Second = {0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0}, 
     15                      NoneDu = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, 
     16                      TimeStep = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0}; 
    1617 
    1718      ///--------------------------------------------------------------- 
     
    2021      { 
    2122         year = duration.year;  month  = duration.month ; day    = duration.day; 
    22          hour = duration.hour;  minute = duration.minute; second = duration.second; 
     23         hour = duration.hour;  minute = duration.minute; second = duration.second; timestep=duration.timestep ; 
    2324         return (*this); 
    2425      } 
     
    3435         if(duration.minute != 0.0) { testValue = false; sout << duration.minute << "mi "; } 
    3536         if(duration.second != 0.0 || testValue)       { sout << duration.second << "s " ; } 
     37         if(duration.timestep != 0.0 || testValue)       { sout << duration.timestep << "ts " ; } 
    3638 
    3739         // << suppression de l'espace en fin de chaîne. 
     
    7779                     break; 
    7880                  } 
     81                  case 't' : 
     82                  { 
     83                    in >> c; 
     84                    if (c=='s') duration.timestep = v;  
     85                    break; 
     86                  } 
     87                   
    7988                  default: 
    8089                     StdString valc; valc.append(1, c); 
     
    91100      { 
    92101         if ((year == 0) && (month  == 0) && (day    == 0) && 
    93              (hour == 0) && (minute == 0) && (second == 0)) 
     102             (hour == 0) && (minute == 0) && (second == 0) && (timestep == 0)) 
    94103            return (true); 
    95104         return (false); 
     
    131140      CDuration CDuration::FromString(const StdString & str) 
    132141      { 
    133          CDuration dr = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}; 
     142         CDuration dr = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}; 
    134143         StdIStringStream iss(str); iss >> dr; 
    135144         return (dr); 
  • XIOS/trunk/src/duration.hpp

    r343 r424  
    3737 
    3838            /// Propriétés publiques /// 
    39             double year, month, day, hour, minute, second; 
     39            double year, month, day, hour, minute, second, timestep; 
    4040 
    4141      } CDuration; 
     
    4444 
    4545      const extern CDuration Year, Month , Week  , Day    , 
    46                              Hour, Minute, Second, NoneDu ; 
     46                             Hour, Minute, Second, NoneDu, TimeStep ; 
    4747      ///--------------------------------------------------------------- 
    4848 
Note: See TracChangeset for help on using the changeset viewer.