source: ntrip/trunk/BNC/src/bnctime.h@ 10554

Last change on this file since 10554 was 7669, checked in by stuerze, 9 years ago

minor changes

File size: 3.4 KB
RevLine 
[2123]1
2#ifndef BNCTIME_H
3#define BNCTIME_H
4
5#include <string>
6
7class bncTime {
8 public:
9 bncTime() {this->reset();}
10 bncTime(int gpsw, double gpssec);
[3986]11 bncTime(const std::string& isoString);
[2123]12
[6812]13 /**
14 * Set GPS time.
15 * @param gpsw GPS week
16 * @param gpssec GPS time of week in seconds
17 * @return reference to current instance
18 */
[2123]19 bncTime& set(int gpsw, double gpssec);
[2251]20 bncTime& set(int year, int month, int day, int hour, int min, double sec);
21 bncTime& set(int year, int month, int day, double daysec);
[3507]22 bncTime& setmjd(double daysec, int mjd);
[4586]23 bncTime& setmjd(double mjddec);
[6812]24 /**
25 * Set GPS time relative to current time.
26 * @param msec milliseconds of GPS week
27 * @return reference to current instance
28 */
29 bncTime &set(int msec);
30 /**
31 * Set GPS time relative to current time.
32 * @param msec milliseconds of current GPS day
33 * @return reference to current instance
34 */
35 bncTime &setTOD(int msec);
36 /**
37 * Set GLONASS time relative to current time.
38 * @param msec milliseconds of GLONASS day
39 * @return reference to current instance
40 */
41 bncTime &setTk(int msec);
42 /**
43 * Set BDS time relative to current time.
44 * @param msec milliseconds of BDS week
45 * @return reference to current instance
46 */
47 bncTime &setBDS(int msec);
[2123]48
[6812]49 /**
50 * Set BDS time.
51 * @param year 4 digit year
52 * @param month month in year (1..12)
53 * @param day day of month (1..31)
54 * @param hour hour of day (0..23)
[6980]55 * @param min minute of hour (0..59)
56 * @param sec second of minute (0..59,60)
[6812]57 * @return reference to current instance
58 */
59 bncTime &setBDS (int year, int month, int day, int hour, int min, double sec);
[7138]60 bncTime &setBDS(int gpsw, double gpssec);
[6812]61
[7669]62 void reset() {_mjd = 0; _sec = 0.0;}
[2123]63 unsigned int mjd() const;
64 double daysec() const;
[6812]65 /** Get GPS week.
66 * @return GPS week number
67 */
[2123]68 unsigned int gpsw() const;
[6869]69 /** Get Galileo week.
70 * @return Galileo week number
71 */
72 inline unsigned int galw() const { return gpsw()-1024; };
[6812]73 /** Get Seconds in GPS week.
74 * @return time of GPS week in seconds
75 */
[2123]76 double gpssec() const;
[6812]77 /** Get BDS/Beidou week.
78 * @return BDS week number
79 */
80 unsigned int bdsw() const;
81 /** Get Seconds in BDS/Beidou week.
82 * @return time of BDS week in seconds
83 */
84 double bdssec() const;
[4584]85 double mjddec() const {return (_mjd + _sec / 86400.0);}
[2566]86 void civil_date (unsigned int& year, unsigned int& month,
87 unsigned int& day) const;
[2177]88 void civil_time (unsigned int& hour, unsigned int& min,
89 double& sec) const;
[2809]90 bool valid() const {return _mjd != 0 || _sec != 0.0;}
[5742]91 bool undef() const {return !valid();}
[2917]92 bool operator==(const bncTime &time1) const;
[2809]93 bool operator!=(const bncTime &time1) const;
[2923]94 bool operator<(const bncTime &time1) const;
95 bool operator>(const bncTime &time1) const;
96 bool operator<=(const bncTime &time1) const;
97 bool operator>=(const bncTime &time1) const;
[2809]98 double operator-(const bncTime &time1) const;
99 bncTime operator-(double sec) const;
100 bncTime operator+(double sec) const;
[5742]101 bncTime& operator+=(double sec);
[2123]102
[7669]103 std::string timestr(unsigned numdec = 3, char sep = ':') const;
104 std::string datestr(char sep = '-') const;
[5742]105 operator std::string() const;
[2123]106
107 private:
108 unsigned int _mjd;
109 double _sec;
110};
111
112#endif
113
Note: See TracBrowser for help on using the repository browser.