Main Page   Modules   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Related Pages   Examples  

CTBtime.icc

Go to the documentation of this file.
00001 
00006 /*----------------------------------------------------------------------------*/
00007 /* C Tool Box: Designed and implemented by:                                   */
00008 /*    Walter F.J. Mueller   Gesellschaft fuer Schwerionenforschung (GSI)      */
00009 /*                          Planckstrasse 1, D-64291 Darmstadt, Germany       */
00010 /*                  Email:  W.F.J.Mueller@gsi.de                              */
00011 /*                  WWW:    http://www-kp3.gsi.de/www/kp3/people/mueller.html */
00012 /*----------------------------------------------------------------------------*/
00013 
00014 #include <math.h>
00015 
00016 //------------------------------------------+----------------------------------
00018 
00019 inline CTBtime::CTBtime()
00020   : md_time(-1.)
00021 {}
00022 
00023 //------------------------------------------+----------------------------------
00025 
00026 inline CTBtime::CTBtime(double d_time)
00027   : md_time(d_time)
00028 {}
00029 
00030 //------------------------------------------+----------------------------------
00032 
00033 inline bool CTBtime::Valid() const
00034 {
00035   return md_time >= 0.;
00036 }
00037 
00038 //------------------------------------------+----------------------------------
00040 
00041 inline CTBint32 CTBtime::UnixTime() const
00042 {
00043   return (CTBint32) floor(md_time);
00044 }
00045 
00046 //------------------------------------------+----------------------------------
00048 
00049 inline bool CTBtime::operator!() const
00050 {
00051   return !Valid();
00052 }
00053 
00054 //------------------------------------------+----------------------------------
00056 
00057 inline CTBtime& CTBtime::operator=(double d_time)
00058 {
00059   md_time = d_time;
00060   return *this;
00061 }
00062 
00063 //------------------------------------------+----------------------------------
00065 
00066 inline CTBtime& CTBtime::operator+=(double d_delta)
00067 {
00068   md_time += d_delta;
00069   return *this;
00070 }
00071 
00072 //------------------------------------------+----------------------------------
00074 
00075 inline CTBtime& CTBtime::operator-=(double d_delta)
00076 {
00077   md_time -= d_delta;
00078   return *this;
00079 }
00080 
00081 //------------------------------------------+----------------------------------
00083 
00084 inline CTBtime::operator double () const
00085 {
00086   return md_time;
00087 }
00088 
00089 //------------------------------------------+----------------------------------
00095 inline CTBtime operator+(const CTBtime& time, double d_delta)
00096 {
00097   return CTBtime((double)time + d_delta);
00098 }
00099 
00100 //------------------------------------------+----------------------------------
00106 inline CTBtime operator+(double d_delta, const CTBtime& time)
00107 {
00108   return CTBtime((double)time + d_delta);
00109 }
00110 
00111 //------------------------------------------+----------------------------------
00117 inline CTBtime operator-(const CTBtime& time, double d_delta)
00118 {
00119   return CTBtime((double)time - d_delta);
00120 }
00121 
00122 //------------------------------------------+----------------------------------
00128 inline double operator-(const CTBtime& lhs, const CTBtime& rhs)
00129 {
00130   return (double)lhs - (double)rhs;
00131 }
00132 
00133 //------------------------------------------+----------------------------------
00139 inline bool operator==(const CTBtime& lhs, const CTBtime& rhs)
00140 {
00141   return (double)lhs == (double)rhs;
00142 }
00143 
00144 //------------------------------------------+----------------------------------
00150 inline bool operator<(const CTBtime& lhs, const CTBtime& rhs)
00151 {
00152   return (double)lhs < (double)rhs;
00153 }
00154 
00155 //------------------------------------------+-----------------------------------
00161 inline ostream& operator<<(ostream& os, const CTBtime& obj)
00162 {
00163   obj.ToStream(os);
00164   return os;
00165 }
00166 
00167 //------------------------------------------+-----------------------------------
00173 inline istream& operator>>(istream& is, CTBtime& obj)
00174 {
00175   obj.FromStream(is);
00176   return is;
00177 }
00178 
00179 //##############################################################################
00180 //------------------------------------------+-----------------------------------
00182 
00183 inline CTBtimeParsed::CTBtimeParsed()
00184 {
00185   Init();
00186 }
00187 
00188 //------------------------------------------+-----------------------------------
00190 
00191 inline CTBtimeParsed::CTBtimeParsed(const CTBtime& time)
00192 {
00193   operator=(time);
00194 }
00195 
00196 //------------------------------------------+----------------------------------
00198 
00199 inline int CTBtimeParsed::Year() const
00200 {
00201   return mi_year;
00202 }
00203 
00204 //------------------------------------------+----------------------------------
00206 
00207 inline int CTBtimeParsed::Month() const
00208 {
00209   return mi_month;
00210 }
00211 
00212 //------------------------------------------+----------------------------------
00214 
00215 inline int CTBtimeParsed::Day() const
00216 {
00217   return mi_day;
00218 }
00219 
00220 //------------------------------------------+----------------------------------
00222 
00223 inline int CTBtimeParsed::WeekDay() const
00224 {
00225   return mi_wday;
00226 }
00227 
00228 //------------------------------------------+----------------------------------
00230 
00231 inline int CTBtimeParsed::YearDay() const
00232 {
00233   return mi_yday;
00234 }
00235 
00236 //------------------------------------------+----------------------------------
00238 
00239 inline int CTBtimeParsed::Hour() const
00240 {
00241   return mi_hour;
00242 }
00243 
00244 //------------------------------------------+----------------------------------
00246 
00247 inline int CTBtimeParsed::Minute() const
00248 {
00249   return mi_min;
00250 }
00251 
00252 //------------------------------------------+----------------------------------
00254 
00255 inline int CTBtimeParsed::Second() const
00256 {
00257   return mi_sec;
00258 }
00259 
00260 //------------------------------------------+----------------------------------
00262 
00263 inline int CTBtimeParsed::Microsecond() const
00264 {
00265   return mi_usec;
00266 }
00267 
00268 //------------------------------------------+----------------------------------
00270 
00271 inline int CTBtimeParsed::TimeZoneOffset() const
00272 {
00273   return mi_tzoffset;
00274 }
00275 
00276 //------------------------------------------+----------------------------------
00278 
00279 inline const char* CTBtimeParsed::TimeZoneName() const
00280 {
00281   return mc_tzname;
00282 }
00283 
00284 //------------------------------------------+----------------------------------
00286 
00287 inline bool CTBtimeParsed::DaylightSavingTime() const
00288 {
00289   return mi_dst > 0;
00290 }
00291 
00292 //------------------------------------------+----------------------------------
00294 
00295 inline void CTBtimeParsed::Date(int i_year, int i_month, int i_day)
00296 {
00297   mi_year  = i_year;
00298   mi_month = i_month;
00299   mi_day   = i_day;
00300   mi_wday  = -1;
00301   mi_yday  = -1;
00302   return;
00303 }
00304 
00305 //------------------------------------------+----------------------------------
00307 
00308 inline void CTBtimeParsed::Time(int i_hour, int i_min, int i_sec,
00309                                 int i_usec, int i_dst)
00310 {
00311   mi_hour = i_hour;
00312   mi_min  = i_min;
00313   mi_sec  = i_sec;
00314   mi_usec = i_usec;
00315   mi_dst  = i_dst;
00316   return;
00317 }
00318 
00319 //------------------------------------------+----------------------------------
00321 
00322 inline void CTBtimeParsed::DateTime(int i_year, int i_month, int i_day,
00323                                     int i_hour, int i_min, int i_sec, 
00324                                     int i_usec, int i_dst)
00325 {
00326   Date(i_year,i_month,i_day);
00327   Time(i_hour,i_min,i_sec,i_usec,i_dst);
00328   return;
00329 }
00330 
00331 //------------------------------------------+----------------------------------
00333 
00334 inline bool CTBtimeParsed::Valid() const
00335 {
00336   return mi_wday >= 0;
00337 }
00338 
00339 //------------------------------------------+----------------------------------
00341 
00342 inline bool CTBtimeParsed::operator!() const
00343 {
00344   return !Valid();
00345 }
00346 
00347 //------------------------------------------+----------------------------------
00349 
00350 inline CTBtimeParsed& CTBtimeParsed::operator=(const CTBtime& time)
00351 {
00352   ParseTime(time);
00353   return *this;
00354 }
00355 
00356 //------------------------------------------+----------------------------------
00358 
00359 inline CTBtimeParsed::operator void* () const
00360 {
00361   return (Valid()) ? (void*) this : 0;
00362 }
00363 
00364 //------------------------------------------+-----------------------------------
00370 inline ostream& operator<<(ostream& os, const CTBtimeParsed& obj)
00371 {
00372   obj.ToStream(os);
00373   return os;
00374 }
00375 
00376 //------------------------------------------+-----------------------------------
00382 inline istream& operator>>(istream& is, CTBtimeParsed& obj)
00383 {
00384   obj.FromStream(is);
00385   return is;
00386 }
00387 

Generated at Fri Oct 24 18:11:30 2003 for CTBbase by doxygen1.2.9-20010812 written by Dimitri van Heesch, © 1997-2001