Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

Click here to view the latest version of this page.
PrevUpHomeNext

Class template dst_calculator

boost::date_time::dst_calculator — Dynamic class used to caluclate dst transition information.

Synopsis

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

template<typename date_type_, typename time_duration_type_> 
class dst_calculator {
public:
  // types
  typedef time_duration_type_ time_duration_type;
  typedef date_type_          date_type;         

  // public static functions
  static time_is_dst_result 
  process_local_dst_start_day(const time_duration_type &, unsigned int, long);
  static time_is_dst_result 
  process_local_dst_end_day(const time_duration_type &, unsigned int, long);
  static time_is_dst_result 
  local_is_dst(const date_type &, const time_duration_type &, 
               const date_type &, const time_duration_type &, 
               const date_type &, const time_duration_type &, 
               const time_duration_type &);
  static time_is_dst_result 
  local_is_dst(const date_type &, const time_duration_type &, 
               const date_type &, unsigned int, const date_type &, 
               unsigned int, long);
};

Description

dst_calculator public static functions

  1. static time_is_dst_result 
    process_local_dst_start_day(const time_duration_type & time_of_day, 
                                unsigned int dst_start_offset_minutes, 
                                long dst_length_minutes);
    Check the local time offset when on dst start day.

    On this dst transition, the time label between the transition boundary and the boudary + the offset are invalid times. If before the boundary then still not in dst.

    Parameters:

    dst_length_minutes

    Number of minutes to adjust clock forward

    dst_start_offset_minutes

    Local day offset for start of dst

    time_of_day

    Time offset in the day for the local time

  2. static time_is_dst_result 
    process_local_dst_end_day(const time_duration_type & time_of_day, 
                              unsigned int dst_end_offset_minutes, 
                              long dst_length_minutes);
    Check the local time offset when on the last day of dst.

    This is the calculation for the DST end day. On that day times prior to the conversion time - dst_length (1 am in US) are still in dst. Times between the above and the switch time are ambiguous. Times after the start_offset are not in dst.

    Parameters:

    dst_end_offset_minutes

    Local time of day for end of dst

    time_of_day

    Time offset in the day for the local time

  3. static time_is_dst_result 
    local_is_dst(const date_type & current_day, 
                 const time_duration_type & time_of_day, 
                 const date_type & dst_start_day, 
                 const time_duration_type & dst_start_offset, 
                 const date_type & dst_end_day, 
                 const time_duration_type & dst_end_offset, 
                 const time_duration_type & dst_length_minutes);
    Calculates if the given local time is dst or not.

    Determines if the time is really in DST or not. Also checks for invalid and ambiguous.

    Parameters:

    current_day

    The day to check for dst

    dst_end_day

    Ending day of dst for the given locality

    dst_end_offset

    Time offset within day given in dst for dst boundary

    dst_start_day

    Starting day of dst for the given locality

    dst_start_offset

    Time offset within day for dst boundary

    time_of_day

    Time offset within the day to check

  4. static time_is_dst_result 
    local_is_dst(const date_type & current_day, 
                 const time_duration_type & time_of_day, 
                 const date_type & dst_start_day, 
                 unsigned int dst_start_offset_minutes, 
                 const date_type & dst_end_day, 
                 unsigned int dst_end_offset_minutes, long dst_length_minutes);
    Calculates if the given local time is dst or not.

    Determines if the time is really in DST or not. Also checks for invalid and ambiguous.

    Parameters:

    current_day

    The day to check for dst

    dst_end_day

    Ending day of dst for the given locality

    dst_end_offset_minutes

    Offset within day given in dst for dst boundary (eg 120 for US which is 02:00:00)

    dst_length_minutes

    Length of dst adjusment (eg: 60 for US)

    dst_start_day

    Starting day of dst for the given locality

    dst_start_offset_minutes

    Offset within day for dst boundary (eg 120 for US which is 02:00:00)

    time_of_day

    Time offset within the day to check


PrevUpHomeNext