1 


2  #ifndef BNCTIME_H


3  #define BNCTIME_H


4 


5  #include <string>


6 


7  class bncTime {


8  public:


9  bncTime() {this>reset();}


10  bncTime(int gpsw, double gpssec);


11  bncTime(const std::string& isoString);


12 


13  bncTime& set(int gpsw, double gpssec);


14  bncTime& set(int year, int month, int day, int hour, int min, double sec);


15  bncTime& set(int year, int month, int day, double daysec);


16  bncTime& setmjd(double daysec, int mjd);


17  bncTime& setmjd(double mjddec);


18 


19  void reset() {_mjd = 0; _sec = 0;}


20  unsigned int mjd() const;


21  double daysec() const;


22  unsigned int gpsw() const;


23  double gpssec() const;


24  double mjddec() const {return (_mjd + _sec / 86400.0);}


25  void civil_date (unsigned int& year, unsigned int& month,


26  unsigned int& day) const;


27  void civil_time (unsigned int& hour, unsigned int& min,


28  double& sec) const;


29  bool valid() const {return _mjd != 0  _sec != 0.0;}


30  bool operator==(const bncTime &time1) const;


31  bool operator!=(const bncTime &time1) const;


32  bool operator<(const bncTime &time1) const;


33  bool operator>(const bncTime &time1) const;


34  bool operator<=(const bncTime &time1) const;


35  bool operator>=(const bncTime &time1) const;


36  double operator(const bncTime &time1) const;


37  bncTime operator(double sec) const;


38  bncTime operator+(double sec) const;


39 


40  std::string timestr(unsigned numdec = 3, char sep = ':') const;


41  std::string datestr(char sep = '') const;


42 


43  private:


44  unsigned int _mjd;


45  double _sec;


46  };


47 


48  #endif


49 

