BDE 4.14.0 Production release
Loading...
Searching...
No Matches
bdlt::ProlepticDateImpUtil Struct Reference

#include <bdlt_prolepticdateimputil.h>

Static Public Member Functions

static bool isLeapYear (int year)
 
static int lastDayOfMonth (int year, int month)
 
static int numLeapYears (int year1, int year2)
 
static bool isValidSerial (int serialDay)
 
static bool isValidYearDay (int year, int dayOfYear)
 
static bool isValidYearMonthDay (int year, int month, int day)
 
static bool isValidYearMonthDayNoCache (int year, int month, int day)
 
static int ydToSerial (int year, int dayOfYear)
 
static int ymdToSerial (int year, int month, int day)
 
static int ymdToSerialNoCache (int year, int month, int day)
 
static int serialToDayOfYear (int serialDay)
 
static void serialToYd (int *year, int *dayOfYear, int serialDay)
 
static int ymdToDayOfYear (int year, int month, int day)
 
static int serialToDay (int serialDay)
 
static int serialToDayNoCache (int serialDay)
 
static int serialToMonth (int serialDay)
 
static int serialToMonthNoCache (int serialDay)
 
static int serialToYear (int serialDay)
 
static int serialToYearNoCache (int serialDay)
 
static void serialToYmd (int *year, int *month, int *day, int serialDay)
 
static void serialToYmdNoCache (int *year, int *month, int *day, int serialDay)
 
static int ydToDay (int year, int dayOfYear)
 
static void ydToMd (int *month, int *day, int year, int dayOfYear)
 
static int ydToMonth (int year, int dayOfYear)
 
static int serialToDayOfWeek (int serialDay)
 
static int ydToDayOfWeek (int year, int dayOfYear)
 
static int ymdToDayOfWeek (int year, int month, int day)
 

Detailed Description

This struct provides a namespace for a suite of pure functions that perform low-level operations on date values in a variety of formats: year/month/day, year/day-of-year, and serial date. Dates in the range [0001/01/01 .. 9999/12/31] that are valid per the proleptic Gregorian calendar are supported, with serial date 1 (3652059) corresponding to 0001/01/01 (9999/12/31). Note that all of the functions, whether or not implemented in terms of a static cache, are stateless, and, as such, are inherently thread-safe.

Member Function Documentation

◆ isLeapYear()

bool bdlt::ProlepticDateImpUtil::isLeapYear ( int  year)
inlinestatic

Return true if the specified year is a leap year, and false otherwise. The behavior is undefined unless 1 <= year <= 9999.

◆ isValidSerial()

bool bdlt::ProlepticDateImpUtil::isValidSerial ( int  serialDay)
inlinestatic

Return true if the specified serialDay represents a valid date value, and false otherwise. Note that valid date values are (as fully defined in the component-level documentation) in the range [1 .. 3652059].

◆ isValidYearDay()

static bool bdlt::ProlepticDateImpUtil::isValidYearDay ( int  year,
int  dayOfYear 
)
static

Return true if the specified year and dayOfYear represents a valid date value, and false otherwise. Note that valid date values are (as fully defined in the component-level documentation) in the range [0001/01 .. 9999/366].

◆ isValidYearMonthDay()

bool bdlt::ProlepticDateImpUtil::isValidYearMonthDay ( int  year,
int  month,
int  day 
)
inlinestatic

Return true if the specified year, month, and day represents a valid date value, and false otherwise. Note that valid date values are (as fully defined in the component-level documentation) in the range [0001/01/01 .. 9999/12/31].

◆ isValidYearMonthDayNoCache()

static bool bdlt::ProlepticDateImpUtil::isValidYearMonthDayNoCache ( int  year,
int  month,
int  day 
)
static

Return true if the specified year, month, and day represents a valid date value, and false otherwise. Note that valid date values are (as fully defined in the component-level documentation) in the range [0001/01/01 .. 9999/12/31]. Also note that this function is guaranteed not to use any date-cache optimizations.

◆ lastDayOfMonth()

static int bdlt::ProlepticDateImpUtil::lastDayOfMonth ( int  year,
int  month 
)
static

Return the last day of the specified month in the specified year. The behavior is undefined unless 1 <= year <= 9999 and 1 <= month <= 12. Note that the value returned will be in the range [28 .. 31].

◆ numLeapYears()

static int bdlt::ProlepticDateImpUtil::numLeapYears ( int  year1,
int  year2 
)
static

Return the number of leap years occurring between the specified year1 and year2, inclusive. The behavior is undefined unless 1 <= year1 <= 9999, 1 <= year2 <= 9999, and year1 <= year2.

◆ serialToDay()

static int bdlt::ProlepticDateImpUtil::serialToDay ( int  serialDay)
static

Return the day (of the month) of the date value indicated by the specified serialDay. The behavior is undefined unless isValidSerial(serialDay) returns true.

◆ serialToDayNoCache()

int bdlt::ProlepticDateImpUtil::serialToDayNoCache ( int  serialDay)
inlinestatic

Return the day (of the month) of the date value indicated by the specified serialDay. The behavior is undefined unless isValidSerial(serialDay) returns true. Note that this function is guaranteed not to use any date-cache optimizations.

◆ serialToDayOfWeek()

int bdlt::ProlepticDateImpUtil::serialToDayOfWeek ( int  serialDay)
inlinestatic

Return, as an integer (with 1 = SUN, 2 = MON, ..., 7 = SAT), the day (of the week) of the date value indicated by the specified serialDay. The behavior is undefined unless isValidSerial(serialDay) returns true.

◆ serialToDayOfYear()

int bdlt::ProlepticDateImpUtil::serialToDayOfYear ( int  serialDay)
inlinestatic

Return the day of the year of the date value indicated by the specified serialDay. The behavior is undefined unless isValidSerial(serialDay) returns true.

◆ serialToMonth()

static int bdlt::ProlepticDateImpUtil::serialToMonth ( int  serialDay)
static

Return the month of the date value indicated by the specified serialDay. The behavior is undefined unless isValidSerial(serialDay) returns true.

◆ serialToMonthNoCache()

int bdlt::ProlepticDateImpUtil::serialToMonthNoCache ( int  serialDay)
inlinestatic

Return the month of the date value indicated by the specified serialDay. The behavior is undefined unless isValidSerial(serialDay) returns true. Note that this function is guaranteed not to use any date-cache optimizations.

◆ serialToYd()

static void bdlt::ProlepticDateImpUtil::serialToYd ( int *  year,
int *  dayOfYear,
int  serialDay 
)
static

Load, into the specified year and dayOfYear, the year-day representation of the date value indicated by the specified serialDay. The behavior is undefined unless isValidSerial(serialDay) returns true.

◆ serialToYear()

static int bdlt::ProlepticDateImpUtil::serialToYear ( int  serialDay)
static

Return the year of the date value indicated by the specified serialDay. The behavior is undefined unless isValidSerial(serialDay) returns true.

◆ serialToYearNoCache()

int bdlt::ProlepticDateImpUtil::serialToYearNoCache ( int  serialDay)
inlinestatic

Return the year of the date value indicated by the specified serialDay. The behavior is undefined unless isValidSerial(serialDay) returns true. Note that this function is guaranteed not to use any date-cache optimizations.

◆ serialToYmd()

static void bdlt::ProlepticDateImpUtil::serialToYmd ( int *  year,
int *  month,
int *  day,
int  serialDay 
)
static

Load, into the specified year, month, and day, the date value indicated by the specified serialDay. The behavior is undefined unless isValidSerial(serialDay) returns true.

◆ serialToYmdNoCache()

void bdlt::ProlepticDateImpUtil::serialToYmdNoCache ( int *  year,
int *  month,
int *  day,
int  serialDay 
)
inlinestatic

Load, into the specified year, month, and day, the date value indicated by the specified serialDay. The behavior is undefined unless isValidSerial(serialDay) returns true. Note that this function is guaranteed not to use any date-cache-optimizations.

◆ ydToDay()

int bdlt::ProlepticDateImpUtil::ydToDay ( int  year,
int  dayOfYear 
)
inlinestatic

Return the day (of the month) of the date value indicated by the specified year and dayOfYear. The behavior is undefined unless isValidYearDay(year, dayOfYear) returns true.

◆ ydToDayOfWeek()

int bdlt::ProlepticDateImpUtil::ydToDayOfWeek ( int  year,
int  dayOfYear 
)
inlinestatic

Return, as an integer (with 1 = SUN, 2 = MON, ..., 7 = SAT), the day (of the week) of the date value indicated by the specified year and dayOfYear. The behavior is undefined unless isValidYearDay(year, dayOfYear) returns true.

◆ ydToMd()

static void bdlt::ProlepticDateImpUtil::ydToMd ( int *  month,
int *  day,
int  year,
int  dayOfYear 
)
static

Load, into the specified month and day, the (partial) calendar date representation of the date value indicated by the specified year and dayOfYear. The behavior is undefined unless isValidYearDay(year, dayOfYear) returns true.

◆ ydToMonth()

int bdlt::ProlepticDateImpUtil::ydToMonth ( int  year,
int  dayOfYear 
)
inlinestatic

Return the month of the date value indicated by the specified year and dayOfYear. The behavior is undefined unless isValidYearDay(year, dayOfYear) returns true.

◆ ydToSerial()

static int bdlt::ProlepticDateImpUtil::ydToSerial ( int  year,
int  dayOfYear 
)
static

Return the serial date representation of the date value indicated by the specified year and dayOfYear. The behavior is undefined unless isValidYearDay(year, dayOfYear) returns true.

◆ ymdToDayOfWeek()

int bdlt::ProlepticDateImpUtil::ymdToDayOfWeek ( int  year,
int  month,
int  day 
)
inlinestatic

Return, as an integer (with 1 = SUN, 2 = MON, ..., 7 = SAT), the day (of the week) of the date value indicated by the specified year, month, and day. The behavior is undefined unless isValidYearMonthDay(year, month, day) returns true.

◆ ymdToDayOfYear()

static int bdlt::ProlepticDateImpUtil::ymdToDayOfYear ( int  year,
int  month,
int  day 
)
static

Return the day of the year of the date value indicated by the specified year, month, and day. The behavior is undefined unless isValidYearMonthDay(year, month, day) returns true.

◆ ymdToSerial()

static int bdlt::ProlepticDateImpUtil::ymdToSerial ( int  year,
int  month,
int  day 
)
static

Return the serial date representation of the date value indicated by the specified year, month, and day. The behavior is undefined unless isValidYearMonthDay(year, month, day) returns true.

◆ ymdToSerialNoCache()

static int bdlt::ProlepticDateImpUtil::ymdToSerialNoCache ( int  year,
int  month,
int  day 
)
static

Return the serial date representation of the date value indicated by the specified year, month, and day. The behavior is undefined unless isValidYearMonthDay(year, month, day) returns true. Note that this function is guaranteed not to use any date-cache optimizations.


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