Dv::Duration Class Reference

Class representing a duration. More...

#include <period.h>

List of all members.

Public Member Functions

 Duration (size_t years, size_t months, size_t seconds)
 Rather inconvenient, the static functions below are probably more useful.
Duration operator+ (const Duration &d) const
 Add two duration: separately add the differen second/month/year units.
Duration operator+= (const Duration &d)
 Add a duration to a duration: separately adds the differen second/month/year units.
size_t years () const
 Number of years of duration.
size_t months () const
 Number of months of duration.
size_t seconds () const
 Number of seconds of duration.
std::string str () const
 Return string representation of duration.

Static Public Member Functions

static Duration mins (size_t mins, size_t secs=0)
 Convenience replacements for constructor.
static Duration hrs (size_t hrs, size_t mins=0, size_t secs=0)
 Convenience replacements for constructor.
static Duration days (size_t days, size_t hrs=0, size_t mins=0, size_t secs=0)
 Convenience replacements for constructor.
static Duration weeks (size_t wks, size_t days=0, size_t hrs=0, size_t mins=0, size_t secs=0)
 Convenience replacements for constructor.
static Duration months (size_t months)
 Convenience replacements for constructor.
static Duration years (size_t years, size_t months=0)
 Convenience replacements for constructor.

Private Attributes

size_t years_
size_t months_
unsigned long seconds_

Friends

std::ostream & operator<< (std::ostream &os, const Duration &u)
 Write d.str().

Detailed Description

Class representing a duration.

This is intended for administrative applications, e.g. adding a duration of 24 hrs to a Date will result in the next day, same time, even if a daylight savings time switch happens in the period.

There are 3 incompatible units:

Definition at line 22 of file period.h.


Constructor & Destructor Documentation

Dv::Duration::Duration ( size_t  years,
size_t  months,
size_t  seconds 
) [inline]

Rather inconvenient, the static functions below are probably more useful.

Definition at line 25 of file period.h.


Member Function Documentation

static Duration Dv::Duration::mins ( size_t  mins,
size_t  secs = 0 
) [static]

Convenience replacements for constructor.

static Duration Dv::Duration::hrs ( size_t  hrs,
size_t  mins = 0,
size_t  secs = 0 
) [static]

Convenience replacements for constructor.

static Duration Dv::Duration::days ( size_t  days,
size_t  hrs = 0,
size_t  mins = 0,
size_t  secs = 0 
) [static]

Convenience replacements for constructor.

static Duration Dv::Duration::weeks ( size_t  wks,
size_t  days = 0,
size_t  hrs = 0,
size_t  mins = 0,
size_t  secs = 0 
) [static]

Convenience replacements for constructor.

static Duration Dv::Duration::months ( size_t  months  )  [static]

Convenience replacements for constructor.

static Duration Dv::Duration::years ( size_t  years,
size_t  months = 0 
) [static]

Convenience replacements for constructor.

Duration Dv::Duration::operator+ ( const Duration d  )  const

Add two duration: separately add the differen second/month/year units.

Duration Dv::Duration::operator+= ( const Duration d  ) 

Add a duration to a duration: separately adds the differen second/month/year units.

size_t Dv::Duration::years (  )  const [inline]

Number of years of duration.

Definition at line 50 of file period.h.

References years_.

size_t Dv::Duration::months (  )  const [inline]

Number of months of duration.

Definition at line 52 of file period.h.

References months_.

size_t Dv::Duration::seconds (  )  const [inline]

Number of seconds of duration.

Definition at line 54 of file period.h.

References seconds_.

std::string Dv::Duration::str (  )  const [inline]

Return string representation of duration.

This has the form

  YY-MM-DD HH:MM:SS

Definition at line 62 of file period.h.

References Dv::tostring().


Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  os,
const Duration u 
) [friend]

Write d.str().


Member Data Documentation

size_t Dv::Duration::years_ [private]

Definition at line 65 of file period.h.

Referenced by years().

size_t Dv::Duration::months_ [private]

Definition at line 66 of file period.h.

Referenced by months().

unsigned long Dv::Duration::seconds_ [private]

Definition at line 67 of file period.h.

Referenced by seconds().


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

dvutil-1.0.10 [ 5 December, 2009]