\hypertarget{xbdate_8h_source}{}\doxysection{xbdate.\+h} \label{xbdate_8h_source}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbdate.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.3/src/include/xbdate.h}} \mbox{\hyperlink{xbdate_8h}{Go to the documentation of this file.}} \begin{DoxyCode}{0} \DoxyCodeLine{1 \textcolor{comment}{/* xbdate.h}} \DoxyCodeLine{2 \textcolor{comment}{}} \DoxyCodeLine{3 \textcolor{comment}{XBase64 Software Library}} \DoxyCodeLine{4 \textcolor{comment}{}} \DoxyCodeLine{5 \textcolor{comment}{Copyright (c) 1997,2003,2014,2022 Gary A Kunkel}} \DoxyCodeLine{6 \textcolor{comment}{}} \DoxyCodeLine{7 \textcolor{comment}{The xb64 software library is covered under the terms of the GPL Version 3, 2007 license.}} \DoxyCodeLine{8 \textcolor{comment}{}} \DoxyCodeLine{9 \textcolor{comment}{Email Contact:}} \DoxyCodeLine{10 \textcolor{comment}{}} \DoxyCodeLine{11 \textcolor{comment}{ XDB-\/devel@lists.sourceforge.net}} \DoxyCodeLine{12 \textcolor{comment}{ XDB-\/users@lists.sourceforge.net}} \DoxyCodeLine{13 \textcolor{comment}{}} \DoxyCodeLine{14 \textcolor{comment}{*/}} \DoxyCodeLine{15 } \DoxyCodeLine{16 } \DoxyCodeLine{17 \textcolor{preprocessor}{\#ifndef \_\_XB\_XBDATE\_H\_\_}} \DoxyCodeLine{18 \textcolor{preprocessor}{\#define \_\_XB\_XBDATE\_H\_\_}} \DoxyCodeLine{19 } \DoxyCodeLine{20 \textcolor{preprocessor}{\#ifdef CMAKE\_COMPILER\_IS\_GNUCC}} \DoxyCodeLine{21 \textcolor{preprocessor}{\#pragma interface}} \DoxyCodeLine{22 \textcolor{preprocessor}{\#endif}} \DoxyCodeLine{23 } \DoxyCodeLine{24 } \DoxyCodeLine{25 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespacexb}{xb}}\{} \DoxyCodeLine{26 } \DoxyCodeLine{27 \textcolor{preprocessor}{\#define XB\_FMT\_WEEK 1}} \DoxyCodeLine{28 \textcolor{preprocessor}{\#define XB\_FMT\_MONTH 2}} \DoxyCodeLine{29 \textcolor{preprocessor}{\#define XB\_FMT\_YEAR 3}} \DoxyCodeLine{30 } \DoxyCodeLine{31 \textcolor{comment}{// next value is added to the date calculation to match dbase calculation}} \DoxyCodeLine{32 \textcolor{comment}{// first valid dbase date is 01/01/0001}} \DoxyCodeLine{33 \textcolor{preprocessor}{\#define JUL\_OFFSET 1721425L}} \DoxyCodeLine{34 } \DoxyCodeLine{35 } \DoxyCodeLine{37 } \DoxyCodeLine{62 \textcolor{keyword}{class }XBDLLEXPORT \mbox{\hyperlink{classxb_1_1xbDate}{xbDate}} : \textcolor{keyword}{public} \mbox{\hyperlink{classxb_1_1xbSsv}{xbSsv}} \{} \DoxyCodeLine{63 \textcolor{keyword}{public}:} \DoxyCodeLine{64 } \DoxyCodeLine{65 \mbox{\hyperlink{classxb_1_1xbDate}{xbDate}}();} \DoxyCodeLine{66 \mbox{\hyperlink{classxb_1_1xbDate}{xbDate}}( \textcolor{keyword}{const} \textcolor{keywordtype}{char} * Date8 );} \DoxyCodeLine{67 \mbox{\hyperlink{classxb_1_1xbDate}{xbDate}}( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&Date8 );} \DoxyCodeLine{68 \mbox{\hyperlink{classxb_1_1xbDate}{xbDate}}( xbInt32 lJulDate );} \DoxyCodeLine{69 \mbox{\hyperlink{classxb_1_1xbDate}{\string~xbDate}}();} \DoxyCodeLine{70 } \DoxyCodeLine{71 \textcolor{keywordtype}{void} operator=( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbDate}{xbDate}} \&d );} \DoxyCodeLine{72 \textcolor{keywordtype}{void} operator+=( xbInt32 i );} \DoxyCodeLine{73 \textcolor{keywordtype}{void} operator-\/=( xbInt32 i );} \DoxyCodeLine{74 \textcolor{keywordtype}{void} operator++( xbInt32 i );} \DoxyCodeLine{75 \textcolor{keywordtype}{void} operator-\/-\/( xbInt32 i );} \DoxyCodeLine{76 } \DoxyCodeLine{77 xbInt32 operator-\/( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbDate}{xbDate}} \& ) \textcolor{keyword}{const};} \DoxyCodeLine{78 \textcolor{keyword}{const} \textcolor{keywordtype}{char} * operator-\/( xbInt32 i );} \DoxyCodeLine{79 \textcolor{keyword}{const} \textcolor{keywordtype}{char} * operator+( xbInt32 i );} \DoxyCodeLine{80 } \DoxyCodeLine{81 \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} operator==( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbDate}{xbDate}} \& ) \textcolor{keyword}{const};} \DoxyCodeLine{82 \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} operator!=( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbDate}{xbDate}} \& ) \textcolor{keyword}{const};} \DoxyCodeLine{83 \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} operator< ( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbDate}{xbDate}} \& ) \textcolor{keyword}{const};} \DoxyCodeLine{84 \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} operator> ( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbDate}{xbDate}} \& ) \textcolor{keyword}{const};} \DoxyCodeLine{85 \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} operator<=( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbDate}{xbDate}} \& ) \textcolor{keyword}{const};} \DoxyCodeLine{86 \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} operator>=( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbDate}{xbDate}} \& ) \textcolor{keyword}{const};} \DoxyCodeLine{87 } \DoxyCodeLine{88 xbInt16 CalcRollingCenturyForYear( xbInt16 year ) \textcolor{keyword}{const};} \DoxyCodeLine{89 xbInt16 CenturyOf() \textcolor{keyword}{const};} \DoxyCodeLine{90 xbInt16 CharDayOf( \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sOutCharDay );} \DoxyCodeLine{91 xbInt16 CharMonthOf( \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sOutCharMonth );} \DoxyCodeLine{92 \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} DateIsValid ( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sDate8 ) \textcolor{keyword}{const};} \DoxyCodeLine{93 xbInt16 DayOf( xbInt16 iFormat ) \textcolor{keyword}{const};} \DoxyCodeLine{94 xbInt16 CTOD( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sCtodInDate );} \DoxyCodeLine{95 \textcolor{comment}{// xbInt16 FormatDate( const char *sFmtIn, xbString \&sFmtOut );}} \DoxyCodeLine{96 xbInt16 FormatDate( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFmtIn, \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sFmtOut );} \DoxyCodeLine{97 \textcolor{keyword}{const} \textcolor{keywordtype}{char} *Str() \textcolor{keyword}{const};} \DoxyCodeLine{98 \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} IsLeapYear( xbInt16 iYear ) \textcolor{keyword}{const};} \DoxyCodeLine{99 \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} IsLeapYear() \textcolor{keyword}{const};} \DoxyCodeLine{100 xbInt32 JulianDays() \textcolor{keyword}{const};} \DoxyCodeLine{101 xbInt16 JulToDate8( xbInt32 lJulDate );} \DoxyCodeLine{102 xbInt16 LastDayOfMonth();} \DoxyCodeLine{103 xbInt16 MonthOf() \textcolor{keyword}{const};} \DoxyCodeLine{104 xbInt16 Set( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&Date8 );} \DoxyCodeLine{105 xbInt16 Sysdate();} \DoxyCodeLine{106 xbInt16 YearOf() \textcolor{keyword}{const};} \DoxyCodeLine{107 } \DoxyCodeLine{108 \textcolor{preprocessor}{\#ifdef XB\_DEBUG\_SUPPORT}} \DoxyCodeLine{109 \textcolor{keywordtype}{void} Dump( \textcolor{keyword}{const} \textcolor{keywordtype}{char} * title );} \DoxyCodeLine{110 \textcolor{keywordtype}{void} DumpDateTables();} \DoxyCodeLine{111 \textcolor{preprocessor}{\#endif}} \DoxyCodeLine{112 } \DoxyCodeLine{113 \textcolor{keyword}{private}:} \DoxyCodeLine{114 \textcolor{keywordtype}{void} SetDateTables();} \DoxyCodeLine{115 \mbox{\hyperlink{classxb_1_1xbString}{xbString}} sDate8; \textcolor{comment}{/* CCYYMMDD date format ie; 20140718 */}} \DoxyCodeLine{116 } \DoxyCodeLine{117 \textcolor{keyword}{static} \textcolor{keywordtype}{int} iAggregatedDaysInMonths[2][13];} \DoxyCodeLine{118 \textcolor{keyword}{static} \textcolor{keywordtype}{int} iDaysInMonths[2][13];} \DoxyCodeLine{119 \};} \DoxyCodeLine{120 } \DoxyCodeLine{121 \} \textcolor{comment}{/* namespace */}} \DoxyCodeLine{122 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/*\_\_XB\_XBDATE\_H\_\_ */}\textcolor{preprocessor}{}} \DoxyCodeLine{123 } \end{DoxyCode}