3 #ifndef SZA_UTIL_TIME_H
4 #define SZA_UTIL_TIME_H
15 #include "carma/szautil/ConformableQuantity.h"
20 class Time :
public ConformableQuantity {
28 static const double nsPerSecond_;
29 static const double secPerMinute_;
30 static const double secPerHour_;
31 static const double secPerDay_;
32 static const double dayPerYear_;
38 Time(
const Time& time);
39 Time(
const Seconds& units,
double s);
40 Time(
const NanoSeconds& units,
double ns);
49 void setSeconds(
double s)
54 void setNanoSeconds(
double ns)
56 s_ = ns / nsPerSecond_;
59 inline double years()
const {
60 return s_ / (secPerDay_ * dayPerYear_);
63 inline double days()
const {
64 return s_ / secPerDay_;
67 inline double hours()
const {
68 return s_ / secPerHour_;
71 inline double minutes()
const {
72 return s_ / secPerMinute_;
75 inline double seconds()
const {
79 inline double nanoSeconds()
const {
80 return s_ * nsPerSecond_;
85 friend std::ostream& operator<<(std::ostream& os, Time& time);
93 std::ostream& operator<<(std::ostream& os, Time& time);
100 #endif // End #ifndef SZA_UTIL_TIME_H