| Home | Libraries | People | FAQ | More

## Class template date_duration

boost::date_time::date_duration — Duration type with date level resolution.

## Synopsis

    // In header: <boost/date_time/date_duration.hpp>

    template<typename duration_rep_traits>
    class date_duration : private boost::less_than_comparable1< date_duration< duration_rep_traits >, boost::equality_comparable1< date_duration< duration_rep_traits >, boost::addable1< date_duration< duration_rep_traits >, boost::subtractable1< date_duration< duration_rep_traits >, boost::dividable2< date_duration< duration_rep_traits >, int > > > > >
    {
    public:
      // types
      typedef duration_rep_traits::int_type  duration_rep_type;
      typedef duration_rep_traits::impl_type duration_rep;

      // construct/copy/destruct
      explicit date_duration(duration_rep);
      date_duration(special_values);
      date_duration(const date_duration< duration_rep_traits > &);

      // public member functions
      duration_rep get_rep() const;
      special_values as_special() const;
      bool is_special() const;
      duration_rep_type days() const;
      bool operator==(const date_duration &) const;
      bool operator<(const date_duration &) const;
      date_duration & operator-=(const date_duration &);
      date_duration & operator+=(const date_duration &);
      date_duration operator-() const;
      date_duration & operator/=(int);
      bool is_negative() const;

      // public static functions
      static date_duration unit();
    };

## Description

### `date_duration` public construct/copy/destruct

1.     explicit date_duration(duration_rep day_count);

   Construct from a day count.

2.     date_duration(special_values sv);

   construct from special_values - only works when instantiated with `duration_traits_adapted`

3.     date_duration(const date_duration< duration_rep_traits > & other);

   Construct from another `date_duration` (Copy Constructor)

### `date_duration` public member functions

1.     duration_rep get_rep() const;

   returns days_ as it's instantiated type - used for streaming

2.     special_values as_special() const;

3.     bool is_special() const;

4.     duration_rep_type days() const;

   returns days as value, not object.

5.     bool operator==(const date_duration & rhs) const;

   Equality.

6.     bool operator<(const date_duration & rhs) const;

   Less.

7.     date_duration & operator-=(const date_duration & rhs);

   Subtract another duration – result is signed.

8.     date_duration & operator+=(const date_duration & rhs);

   Add a duration – result is signed.

9.     date_duration operator-() const;

   unary- Allows for dd = -date_duration(2); -> dd == -2

10.     date_duration & operator/=(int divisor);

    Division operations on a duration with an integer.

11.     bool is_negative() const;

    return sign information

### `date_duration` public static functions

1.     static date_duration unit();

   Returns the smallest duration – used by to calculate 'end'.