Jpp - the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Private Attributes | Friends | List of all members
JSYSTEM::JDateAndTime Struct Reference

Auxililary class to get date and time. More...

#include <JDate.hh>

Public Member Functions

 JDateAndTime ()
 Default constructor. More...
 
 JDateAndTime (const time_t t1)
 Constructor. More...
 
tm * operator-> ()
 Smart pointer. More...
 
const tm * operator-> () const
 Smart pointer. More...
 
int getSeconds () const
 seconds after the minute [0-59] More...
 
int getMinutes () const
 minutes after the hour [0-59] More...
 
int getHour () const
 hours after midnight [0-23] More...
 
int getDay () const
 day of the month [1-31] More...
 
int getMonth () const
 month of the year [1-12] More...
 
int getYear () const
 year a.d. More...
 
 operator std::string () const
 Type conversion operator. More...
 
std::string toString (const JDateAndTimeFormat option=HUMAN_READABLE) const
 Get ASCII formatted date and time. More...
 
const JDateAndTimeoperator() () const
 Set date and time. More...
 
void set () const
 Set to actual time. More...
 
void set (const time_t t1) const
 Set to given time. More...
 
double getElapsedTime (const JDateAndTime &object) const
 Get elapsed time since given date and time. More...
 

Private Attributes

time_t ts
 
tm * tp
 

Friends

std::ostream & operator<< (std::ostream &out, const JDateAndTime &object)
 Write date and time to output. More...
 

Detailed Description

Auxililary class to get date and time.

Definition at line 96 of file JSystem/JDate.hh.

Constructor & Destructor Documentation

JSYSTEM::JDateAndTime::JDateAndTime ( )
inline

Default constructor.

Definition at line 100 of file JSystem/JDate.hh.

101  {
102  set();
103  }
void set() const
Set to actual time.
JSYSTEM::JDateAndTime::JDateAndTime ( const time_t  t1)
inline

Constructor.

Parameters
t1time

Definition at line 111 of file JSystem/JDate.hh.

112  {
113  set(t1);
114  }
void set() const
Set to actual time.

Member Function Documentation

tm* JSYSTEM::JDateAndTime::operator-> ( )
inline

Smart pointer.

Returns
pointer to time structure

Definition at line 122 of file JSystem/JDate.hh.

123  {
124  return tp;
125  }
const tm* JSYSTEM::JDateAndTime::operator-> ( ) const
inline

Smart pointer.

Returns
pointer to time structure

Definition at line 133 of file JSystem/JDate.hh.

134  {
135  return tp;
136  }
int JSYSTEM::JDateAndTime::getSeconds ( ) const
inline

seconds after the minute [0-59]

Definition at line 138 of file JSystem/JDate.hh.

int JSYSTEM::JDateAndTime::getMinutes ( ) const
inline

minutes after the hour [0-59]

Definition at line 139 of file JSystem/JDate.hh.

int JSYSTEM::JDateAndTime::getHour ( ) const
inline

hours after midnight [0-23]

Definition at line 140 of file JSystem/JDate.hh.

int JSYSTEM::JDateAndTime::getDay ( ) const
inline

day of the month [1-31]

Definition at line 141 of file JSystem/JDate.hh.

int JSYSTEM::JDateAndTime::getMonth ( ) const
inline

month of the year [1-12]

Definition at line 142 of file JSystem/JDate.hh.

int JSYSTEM::JDateAndTime::getYear ( ) const
inline

year a.d.

Definition at line 143 of file JSystem/JDate.hh.

JSYSTEM::JDateAndTime::operator std::string ( ) const
inline

Type conversion operator.

Returns
ASCII formatted date and time

Definition at line 151 of file JSystem/JDate.hh.

152  {
153  return toString();
154  }
std::string toString(const JDateAndTimeFormat option=HUMAN_READABLE) const
Get ASCII formatted date and time.
std::string JSYSTEM::JDateAndTime::toString ( const JDateAndTimeFormat  option = HUMAN_READABLE) const
inline

Get ASCII formatted date and time.

Parameters
optionformatting option
Returns
ASCII formatted date and time

Definition at line 163 of file JSystem/JDate.hh.

164  {
165  using namespace std;
166 
167  mktime(tp);
168 
169  static const int MAX_SIZE = 256;
170  static char buffer[MAX_SIZE];
171 
172  switch (option) {
173 
174  case ISO8601:
175  strftime(buffer, MAX_SIZE, "%FT%T%z", tp);
176  break;
177 
178  case HUMAN_READABLE:
179  strftime(buffer, MAX_SIZE, "%a %b %d %X %Z %Y", tp);
180  break;
181 
182  default:
183  THROW(JLANG::JValueOutOfRange, "JDateAndTime::toString(): Invalid formatting option.");
184  }
185 
186  // remove the last character (carriage return) from the date string
187 
188  buffer[MAX_SIZE-1] = '\0';
189 
190  return string(buffer);
191  }
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
Definition: JException.hh:670
Human readable format (Www Mmm dd hh:mm:ss yyyy)
ISO-8601 standard.
Exception for accessing a value in a collection that is outside of its range.
Definition: JException.hh:162
const JDateAndTime& JSYSTEM::JDateAndTime::operator() ( ) const
inline

Set date and time.

Returns
date and time

Definition at line 199 of file JSystem/JDate.hh.

200  {
201  set();
202 
203  return *this;
204  }
void set() const
Set to actual time.
void JSYSTEM::JDateAndTime::set ( ) const
inline

Set to actual time.

Definition at line 210 of file JSystem/JDate.hh.

211  {
212  time(&ts);
213 
214  tp = localtime(&ts);
215  }
void JSYSTEM::JDateAndTime::set ( const time_t  t1) const
inline

Set to given time.

Parameters
t1time

Definition at line 223 of file JSystem/JDate.hh.

224  {
225  ts = t1;
226  tp = localtime(&t1);
227  }
double JSYSTEM::JDateAndTime::getElapsedTime ( const JDateAndTime object) const
inline

Get elapsed time since given date and time.

Parameters
objectdate and time
Returns
time [s]

Definition at line 236 of file JSystem/JDate.hh.

237  {
238  return difftime(this->ts, object.ts);
239  }

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  out,
const JDateAndTime object 
)
friend

Write date and time to output.

Parameters
outoutput stream
objectdate and time
Returns
output stream

Definition at line 249 of file JSystem/JDate.hh.

250  {
251  return out << object.toString();
252  }

Member Data Documentation

time_t JSYSTEM::JDateAndTime::ts
mutableprivate

Definition at line 256 of file JSystem/JDate.hh.

tm* JSYSTEM::JDateAndTime::tp
mutableprivate

Definition at line 257 of file JSystem/JDate.hh.


The documentation for this struct was generated from the following file: