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

This is the documentation for an old version of Boost. Click here to view this page for the latest version.

Class template gregorian_calendar_base

boost::date_time::gregorian_calendar_base — An implementation of the Gregorian calendar.


template<typename ymd_type_, typename date_int_type_> 
class gregorian_calendar_base {
// types
typedef ymd_type_ ymd_type;  // define a type a date split into components 
typedef ymd_type::month_type month_type;  // define a type for representing months 
typedef ymd_type::day_type day_type;  // define a type for representing days 
typedef ymd_type::year_type year_type;  // Type to hold a stand alone year value (eg: 2002). 
typedef date_int_type_ date_int_type;  // Define the integer type to use for internal calculations. 

// public static functions
static unsigned short day_of_week(const ymd_type &) ;
static int week_number(const ymd_type &) ;
static date_int_type day_number(const ymd_type &) ;
static date_int_type julian_day_number(const ymd_type &) ;
static long modjulian_day_number(const ymd_type &) ;
static ymd_type from_day_number(date_int_type) ;
static ymd_type from_julian_day_number(date_int_type) ;
static ymd_type from_modjulian_day_number(long) ;
static bool is_leap_year(year_type) ;
static unsigned short end_of_month_day(year_type, month_type) ;
static ymd_type epoch() ;
static unsigned short days_in_week() ;


This is a parameterized implementation of a proleptic Gregorian Calendar that can be used in the creation of date systems or just to perform calculations. All the methods of this class are static functions, so the intent is to never create instances of this class.

gregorian_calendar_base public static functions

  1. static unsigned short day_of_week(const ymd_type & ymd) ;
  2. static int week_number(const ymd_type & ymd) ;
  3. static date_int_type day_number(const ymd_type & ymd) ;
  4. static date_int_type julian_day_number(const ymd_type & ymd) ;
  5. static long modjulian_day_number(const ymd_type & ymd) ;
  6. static ymd_type from_day_number(date_int_type) ;
  7. static ymd_type from_julian_day_number(date_int_type) ;
  8. static ymd_type from_modjulian_day_number(long) ;
  9. static bool is_leap_year(year_type) ;
  10. static unsigned short end_of_month_day(year_type y, month_type m) ;
  11. static ymd_type epoch() ;
  12. static unsigned short days_in_week() ;
Copyright 2001-2005 CrystalClear Software, Inc