8#ifndef INCLUDED_BDLT_POSIXDATEIMPUTIL
9#define INCLUDED_BDLT_POSIXDATEIMPUTIL
510#include <bdlscm_version.h>
539 k_MAX_SERIAL_DATE = 3652061
543 static const int s_firstCachedYear;
544 static const int s_lastCachedYear;
545 static const int s_firstCachedSerialDate;
546 static const int s_lastCachedSerialDate;
547 static const int s_cachedSerialDate[][13];
548 static const YearMonthDay s_cachedYearMonthDay[];
549 static const char s_cachedDaysInMonth[][13];
644 static void serialToYd(
int *year,
int *dayOfYear,
int serialDay);
700 static void serialToYmd(
int *year,
int *month,
int *day,
int serialDay);
717 static int ydToDay(
int year,
int dayOfYear);
724 static void ydToMd(
int *month,
int *day,
int year,
int dayOfYear);
730 static int ydToMonth(
int year,
int dayOfYear);
776 && (0 != year % 100 || 0 == year % 400 || year <= 1752);
786 if (month < 1 || month > 12 || day < 1) {
790 if (s_firstCachedYear <= year && year <= s_lastCachedYear) {
791 return day <= s_cachedDaysInMonth[year - s_firstCachedYear][month];
802 return (
static_cast<unsigned>(serialDay) - 1) < k_MAX_SERIAL_DATE;
824 int year, month, day;
834 int year, month, day;
844 int year, month, day;
862 ydToMd(month, day, *year, dayOfYear);
871 ydToMd(&month, &day, year, dayOfYear);
881 ydToMd(&month, &day, year, dayOfYear);
#define BSLS_ASSERT_SAFE(X)
Definition bsls_assert.h:1917
#define BSLS_IDENT(str)
BSLS_IDENT() - insert string into .comment binary segment (if supported)
Definition bsls_ident.h:238
Definition bbldc_basicisma30360.h:112
Definition bdlt_posixdateimputil.h:528
static bool isValidSerial(int serialDay)
Definition bdlt_posixdateimputil.h:800
static void serialToYmd(int *year, int *month, int *day, int serialDay)
static void ydToMd(int *month, int *day, int year, int dayOfYear)
static int serialToYear(int serialDay)
static int serialToYearNoCache(int serialDay)
Definition bdlt_posixdateimputil.h:840
static int serialToMonth(int serialDay)
static int ymdToSerial(int year, int month, int day)
static int ymdToDayOfWeek(int year, int month, int day)
Definition bdlt_posixdateimputil.h:896
static bool isValidYearMonthDay(int year, int month, int day)
Definition bdlt_posixdateimputil.h:782
static int serialToDayNoCache(int serialDay)
Definition bdlt_posixdateimputil.h:820
static bool isValidYearMonthDayNoCache(int year, int month, int day)
static bool isValidYearDay(int year, int dayOfYear)
static int ydToDay(int year, int dayOfYear)
Definition bdlt_posixdateimputil.h:866
static int serialToDay(int serialDay)
static void serialToYmdNoCache(int *year, int *month, int *day, int serialDay)
Definition bdlt_posixdateimputil.h:850
static int ydToSerial(int year, int dayOfYear)
static int numLeapYears(int year1, int year2)
static bool isLeapYear(int year)
Definition bdlt_posixdateimputil.h:766
static int serialToMonthNoCache(int serialDay)
Definition bdlt_posixdateimputil.h:830
static int serialToDayOfWeek(int serialDay)
static int ydToMonth(int year, int dayOfYear)
Definition bdlt_posixdateimputil.h:876
static void serialToYd(int *year, int *dayOfYear, int serialDay)
static int serialToDayOfYear(int serialDay)
Definition bdlt_posixdateimputil.h:808
static int ymdToDayOfYear(int year, int month, int day)
static int lastDayOfMonth(int year, int month)
static int ydToDayOfWeek(int year, int dayOfYear)
Definition bdlt_posixdateimputil.h:888
static int ymdToSerialNoCache(int year, int month, int day)