From bad20394159c2bd71da2e71abb92164d67c0059b Mon Sep 17 00:00:00 2001 From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com> Date: Thu, 17 Jul 2025 11:36:43 -0400 Subject: [PATCH 001/400] Major Code Style Update - Reapply Major adjustments made to .clang-format preset; not applied to codebase yet --- .clang-format | 242 +++++++++++++++++++++++++++++++++----------------- 1 file changed, 161 insertions(+), 81 deletions(-) diff --git a/.clang-format b/.clang-format index 463f128..a1b0495 100644 --- a/.clang-format +++ b/.clang-format @@ -1,140 +1,188 @@ --- Language: Cpp +# BasedOnStyle: Microsoft DisableFormat: false -# GENERAL INDENTATION -UseTab: Never -TabWidth: 4 -IndentWidth: 4 - AccessModifierOffset: -2 - AlignAfterOpenBracket: BlockIndent AlignArrayOfStructures: Right + AlignConsecutiveAssignments: - Enabled: true - AcrossEmptyLines: true - AcrossComments: false - AlignCompound: false + Enabled: true + AcrossEmptyLines: false + AcrossComments: false + AlignCompound: false AlignFunctionPointers: false - PadOperators: true + PadOperators: true + +AlignConsecutiveBitFields: + Enabled: false + AcrossEmptyLines: false + AcrossComments: false + AlignCompound: false + AlignFunctionPointers: false + PadOperators: false + +AlignConsecutiveDeclarations: + Enabled: false + AcrossEmptyLines: false + AcrossComments: false + AlignCompound: false + AlignFunctionPointers: false + PadOperators: false + AlignConsecutiveMacros: - Enabled: true - AcrossEmptyLines: true - AcrossComments: false - AlignCompound: false + Enabled: false + AcrossEmptyLines: false + AcrossComments: false + AlignCompound: false AlignFunctionPointers: false - PadOperators: false + PadOperators: false + +AlignConsecutiveShortCaseStatements: + Enabled: false + AcrossEmptyLines: false + AcrossComments: false + AlignCaseColons: false + AlignEscapedNewlines: Right -AlignOperands: Align +AlignOperands: Align + AlignTrailingComments: - Kind: Always - OverEmptyLines: 2 + Kind: Always + OverEmptyLines: 2 AllowAllArgumentsOnNextLine: true AllowAllParametersOfDeclarationOnNextLine: true -AllowBreakBeforeNoexceptSpecifier: Always +AllowBreakBeforeNoexceptSpecifier: Never AllowShortBlocksOnASingleLine: Never AllowShortCaseLabelsOnASingleLine: false AllowShortCompoundRequirementOnASingleLine: false AllowShortEnumsOnASingleLine: true -AllowShortFunctionsOnASingleLine: InlineOnly +AllowShortFunctionsOnASingleLine: None AllowShortIfStatementsOnASingleLine: Never AllowShortLambdasOnASingleLine: All AllowShortLoopsOnASingleLine: false - -AlwaysBreakAfterReturnType: None AlwaysBreakAfterDefinitionReturnType: None -AlwaysBreakBeforeMultilineStrings: false +AlwaysBreakAfterReturnType: None +AlwaysBreakBeforeMultilineStrings: true AlwaysBreakTemplateDeclarations: true +# AttributeMacros: +# - __capability + BinPackArguments: false -BinPackParameters: false +BinPackParameters: true +BitFieldColonSpacing: Both BreakBeforeBraces: Custom BraceWrapping: - AfterCaseLabel: true - AfterClass: false + AfterCaseLabel: true + AfterClass: false AfterControlStatement: false - AfterEnum: false + AfterEnum: false AfterExternBlock: true - AfterFunction: true - AfterNamespace: true - AfterStruct: false - AfterUnion: false - BeforeCatch: false - BeforeElse: false + AfterFunction: true + AfterNamespace: true + AfterStruct: false + AfterUnion: false + BeforeCatch: false + BeforeElse: false BeforeLambdaBody: true - BeforeWhile: false - IndentBraces: false + BeforeWhile: false + IndentBraces: false SplitEmptyFunction: false SplitEmptyRecord: false SplitEmptyNamespace: true + BreakAdjacentStringLiterals: true -BreakAfterAttributes: Never -#BreakAfterReturnType: Automatic +BreakAfterAttributes: Leave +BreakArrays: true BreakBeforeBinaryOperators: None BreakBeforeConceptDeclarations: Always +BreakBeforeInlineASMColon: OnlyMultiline BreakBeforeTernaryOperators: false BreakConstructorInitializers: BeforeColon BreakInheritanceList: AfterColon BreakStringLiterals: true - -ColumnLimit: 95 +ColumnLimit: 95 +CommentPragmas: '^ IWYU pragma:' CompactNamespaces: false ConstructorInitializerIndentWidth: 4 ContinuationIndentWidth: 4 -Cpp11BracedListStyle: false - +Cpp11BracedListStyle: true DerivePointerAlignment: false - EmptyLineAfterAccessModifier: Never -EmptyLineBeforeAccessModifier: Always -ExperimentalAutoDetectBinPacking: true - +EmptyLineBeforeAccessModifier: LogicalBlock +ExperimentalAutoDetectBinPacking: false FixNamespaceComments: true -IncludeBlocks: Preserve +# ForEachMacros: +# - foreach +# - Q_FOREACH +# - BOOST_FOREACH +# IfMacros: +# - KJ_IF_MAYBE + +IncludeCategories: + - Regex: '^"(llvm|llvm-c|clang|clang-c)/' + Priority: 2 + SortPriority: 0 + CaseSensitive: false + - Regex: '^(<|"(gtest|gmock|isl|json)/)' + Priority: 3 + SortPriority: 0 + CaseSensitive: false + - Regex: '.*' + Priority: 1 + SortPriority: 0 + CaseSensitive: false + +IncludeIsMainRegex: '(Test)?$' +IncludeIsMainSourceRegex: '' +IncludeBlocks: Preserve IndentAccessModifiers: false IndentCaseBlocks: false IndentCaseLabels: false IndentExternBlock: NoIndent -IndentGotoLabels: false -IndentPPDirectives: BeforeHash -IndentRequiresClause: false +IndentGotoLabels: true +IndentPPDirectives: None +IndentRequiresClause: true +IndentWidth: 4 IndentWrappedFunctionNames: false -InsertBraces: false +InsertBraces: false +InsertNewlineAtEOF: false InsertTrailingCommas: None + IntegerLiteralSeparator: - Binary: 0 - Decimal: 3 - Hex: 4 + Binary: 0 + Decimal: 3 + Hex: 4 +KeepEmptyLinesAtTheStartOfBlocks: false +KeepEmptyLinesAtEOF: true LambdaBodyIndentation: Signature - +LineEnding: DeriveLF +MacroBlockBegin: '' +MacroBlockEnd: '' MaxEmptyLinesToKeep: 2 - -NamespaceIndentation: All - +NamespaceIndentation: None PackConstructorInitializers: BinPack PointerAlignment: Left -PPIndentWidth: -1 - +PPIndentWidth: -1 QualifierAlignment: Leave - ReferenceAlignment: Pointer -ReflowComments: true +ReflowComments: true +RemoveBracesLLVM: false RemoveParentheses: Leave RemoveSemicolon: false -#RequiresClausePosition: OwnLineWithBrace +RequiresClausePosition: OwnLine RequiresExpressionIndentation: OuterScope - SeparateDefinitionBlocks: Always -ShortNamespaceLines: 3 -#SortIncludes: -# Enabled: true -# IgnoreCase: false +ShortNamespaceLines: 1 +SkipMacroDefinitionBody: false +SortIncludes: CaseSensitive SortUsingDeclarations: LexicographicNumeric SpaceAfterCStyleCast: false SpaceAfterLogicalNot: false @@ -145,35 +193,67 @@ SpaceBeforeCaseColon: false SpaceBeforeCpp11BracedList: false SpaceBeforeCtorInitializerColon: true SpaceBeforeInheritanceColon: true +SpaceBeforeJsonColon: false + SpaceBeforeParens: Custom SpaceBeforeParensOptions: AfterControlStatements: true AfterForeachMacros: true AfterFunctionDefinitionName: false AfterFunctionDeclarationName: false - AfterIfMacros: true + AfterIfMacros: true AfterOverloadedOperator: false AfterPlacementOperator: true AfterRequiresInClause: false AfterRequiresInExpression: false BeforeNonEmptyParentheses: false + SpaceBeforeRangeBasedForLoopColon: true SpaceBeforeSquareBrackets: false SpaceInEmptyBlock: true SpacesBeforeTrailingComments: 1 +SpacesInAngles: Never +SpacesInContainerLiterals: true -# PENALTIES: -PenaltyReturnTypeOnItsOwnLine: 10000 -PenaltyBreakTemplateDeclaration: 10000 -#PenaltyBreakBeforeMemberAccess: 10000 -PenaltyBreakAssignment: 800 -PenaltyBreakScopeResolution: 500 +SpacesInLineCommentPrefix: + Minimum: 1 + Maximum: -1 + +SpacesInParens: Never +SpacesInParensOptions: + InCStyleCasts: false + InConditionalStatements: false + InEmptyParentheses: false + Other: false + +SpacesInSquareBrackets: false +Standard: Latest +TabWidth: 4 +UseTab: Never +VerilogBreakBetweenInstancePorts: true + +# StatementAttributeLikeMacros: +# - Q_EMIT + +# StatementMacros: +# - Q_UNUSED +# - QT_REQUIRE_VERSION + +# WhitespaceSensitiveMacros: +# - BOOST_PP_STRINGIZE +# - CF_SWIFT_NAME +# - NS_SWIFT_NAME +# - PP_STRINGIZE +# - STRINGIZE + +PenaltyBreakAssignment: 2 +PenaltyBreakBeforeFirstCallParameter: 10 PenaltyBreakComment: 500 PenaltyBreakFirstLessLess: 120 -PenaltyExcessCharacter: 100 -PenaltyBreakBeforeFirstCallParameter: 10 -PenaltyBreakString: 10 -PenaltyBreakOpenParenthesis: 10 +PenaltyBreakOpenParenthesis: 0 +PenaltyBreakScopeResolution: 500 +PenaltyBreakString: 100 +PenaltyBreakTemplateDeclaration: 10 +PenaltyExcessCharacter: 1000000 PenaltyIndentedWhitespace: 0 - -... +PenaltyReturnTypeOnItsOwnLine: 10000 \ No newline at end of file From b148bb77a2e276f6cec7477dca465eae84e2fb39 Mon Sep 17 00:00:00 2001 From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com> Date: Thu, 17 Jul 2025 11:38:34 -0400 Subject: [PATCH 002/400] Update stl_chrono_defs.hpp --- include/simplydt/common/stl_chrono_defs.hpp | 89 +++++++++++---------- 1 file changed, 46 insertions(+), 43 deletions(-) diff --git a/include/simplydt/common/stl_chrono_defs.hpp b/include/simplydt/common/stl_chrono_defs.hpp index ee65c42..9bf22f7 100644 --- a/include/simplydt/common/stl_chrono_defs.hpp +++ b/include/simplydt/common/stl_chrono_defs.hpp @@ -8,11 +8,14 @@ * @file stl_chrono_defs.hpp * * @brief - * STL date and time library aliases. + * Type aliases for standard C++ date and time constructs. * * @details - * Type aliases for Standard Template Library date and time - * symbols. + * This header defines convenient type aliases for commonly used + * C++ Standard Library date and time types, such as clocks, + * time points, durations, and calendar representations. These + * aliases simplify usage and ensure consistency throughout the + * Simply Datetime library. */ @@ -31,50 +34,50 @@ namespace simplydt::stl { - /*! - * @brief - * System-wide real time wall-clock wrapper. - */ - using SystemClock = std::chrono::system_clock; +/*! + * @brief + * System-wide real time wall-clock wrapper. + */ +using SystemClock = std::chrono::system_clock; - /*! - * @brief - * Point in time derived from system clock. - */ - using SystemTimePoint = std::chrono::time_point; +/*! + * @brief + * Point in time derived from system clock. + */ +using SystemTimePoint = std::chrono::time_point; - /*! - * @brief - * Interval of time. - */ - using SystemDuration = SystemClock::duration; +/*! + * @brief + * Interval of time. + */ +using SystemDuration = SystemClock::duration; - /*! - * @brief - * Time point in seconds since Unix epoch. - * - * @details - * The `std::time_t` type is implementation-defined. - * Simply Datetime does not use this type because it - * needs guarantee that the type representing seconds - * since the Unix epoch (January 1, 1970 00:00:00.000) - * is a 64-bit signed integer. This is to mitigate the - * '2038' year overflow. - */ - using UnixTimestamp = int64_t; +/*! + * @brief + * Time point in seconds since Unix epoch. + * + * @details + * The `std::time_t` type is implementation-defined. + * Simply Datetime does not use this type because it + * needs guarantee that the type representing seconds + * since the Unix epoch (January 1, 1970 00:00:00.000) + * is a 64-bit signed integer. This is to mitigate the + * '2038' year overflow. + */ +using UnixTimestamp = int64_t; - /*! - * @brief - * Broken-down calendar datetime component struct. - * - * @details - * This type is a C-style struct that stores individual - * components of a calendar time point and contains two - * key fields to be mindful of: `tm_mon` which measures - * the number of months ***since*** January, and `tm_year` - * which measures the number of years ***since*** 1900. - */ - using CalendarDateTime = std::tm; +/*! + * @brief + * Broken-down calendar datetime component struct. + * + * @details + * This type is a C-style struct that stores individual + * components of a calendar time point and contains two + * key fields to be mindful of: `tm_mon` which measures + * the number of months ***since*** January, and `tm_year` + * which measures the number of years ***since*** 1900. + */ +using CalendarDateTime = std::tm; } // namespace simplydt::stl From 54080146814dab5f7f676e7947e77f589c8b4a51 Mon Sep 17 00:00:00 2001 From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com> Date: Thu, 17 Jul 2025 11:55:38 -0400 Subject: [PATCH 003/400] Update stl_chrono_defs.hpp --- include/simplydt/common/stl_chrono_defs.hpp | 1 + 1 file changed, 1 insertion(+) diff --git a/include/simplydt/common/stl_chrono_defs.hpp b/include/simplydt/common/stl_chrono_defs.hpp index 9bf22f7..345f541 100644 --- a/include/simplydt/common/stl_chrono_defs.hpp +++ b/include/simplydt/common/stl_chrono_defs.hpp @@ -65,6 +65,7 @@ using SystemDuration = SystemClock::duration; * '2038' year overflow. */ using UnixTimestamp = int64_t; +// NOTE: I have many concerns about this approach /*! * @brief From d93cfeda1789c26bf18ebca9f921bcd5e9a27900 Mon Sep 17 00:00:00 2001 From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com> Date: Fri, 18 Jul 2025 12:21:05 -0400 Subject: [PATCH 004/400] Create Diagrams Document Simply Datetime architectural and design diagrams --- docs/prj/diagrams.drawio | 3152 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 3152 insertions(+) create mode 100644 docs/prj/diagrams.drawio diff --git a/docs/prj/diagrams.drawio b/docs/prj/diagrams.drawio new file mode 100644 index 0000000..f77e199 --- /dev/null +++ b/docs/prj/diagrams.drawio @@ -0,0 +1,3152 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 026e1a3d013525f3099f21dca221ffc49cd750f5 Mon Sep 17 00:00:00 2001 From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com> Date: Fri, 18 Jul 2025 12:22:27 -0400 Subject: [PATCH 005/400] Update general_defs.hpp --- include/simplydt/common/general_defs.hpp | 48 ++++++++++++------------ 1 file changed, 23 insertions(+), 25 deletions(-) diff --git a/include/simplydt/common/general_defs.hpp b/include/simplydt/common/general_defs.hpp index a7ae6ef..c499c53 100644 --- a/include/simplydt/common/general_defs.hpp +++ b/include/simplydt/common/general_defs.hpp @@ -9,18 +9,16 @@ * * @note * This file really shouldn't exist given it's - * very broad nature. However, at the moment I - * am unsure where to situate some of the ideas - * in this document. The definitions are likely - * to later be moved to another translation unit. + * broad nature. However, at the moment I am + * unsure where to situate some of the ideas in + * this document. The definitions are likely to + * later be moved to another translation unit. * * @brief - * General common Simply Datetime library + * Common general Simply Datetime library * definitions. */ -// NOTE: Should this be called 'api_defs.hpp'? - #ifndef SIMPLYDT_LIB_COMMON_DEFINITIONS_H_ #define SIMPLYDT_LIB_COMMON_DEFINITIONS_H_ @@ -30,24 +28,24 @@ namespace simplydt { - /*! - * @brief - * Enumeration of broken-down calendar components. - */ - enum CalendarComponent : uint8_t { - SECOND, ///< Datetime second component - MINUTE, ///< Datetime minute component - HOUR, ///< Datetime hour component - DAY, ///< Datetime day component - MONTH, ///< Datetime month component - YEAR ///< Datetime year component - }; - - /*! - * @brief - * Invalid literal. - */ - inline const char* INVALID_LITERAL = "Invalid"; +/*! + * @brief + * Enumeration of broken-down calendar components. + */ +enum CalendarComponent : uint8_t { + SECOND, ///< Datetime second component + MINUTE, ///< Datetime minute component + HOUR, ///< Datetime hour component + DAY, ///< Datetime day component + MONTH, ///< Datetime month component + YEAR ///< Datetime year component +}; + +/*! + * @brief + * Invalid literal. + */ +inline const char* INVALID_LITERAL = "Invalid"; } // namespace simplydt From 9ccc531446573106f3f2a38c641cdecbe2e8094e Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Fri, 18 Jul 2025 13:23:33 -0400 Subject: [PATCH 006/400] Update diagrams.drawio --- docs/prj/diagrams.drawio | 89 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 85 insertions(+), 4 deletions(-) diff --git a/docs/prj/diagrams.drawio b/docs/prj/diagrams.drawio index f77e199..1dc35ef 100644 --- a/docs/prj/diagrams.drawio +++ b/docs/prj/diagrams.drawio @@ -1,15 +1,96 @@ - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 011f7b347832f33a6b189ea6fce0e477363f09cc Mon Sep 17 00:00:00 2001 From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com> Date: Fri, 18 Jul 2025 14:09:33 -0400 Subject: [PATCH 007/400] Update diagrams.drawio --- docs/prj/diagrams.drawio | 131 ++++++++++++++++++++++++--------------- 1 file changed, 81 insertions(+), 50 deletions(-) diff --git a/docs/prj/diagrams.drawio b/docs/prj/diagrams.drawio index 1dc35ef..8bfa896 100644 --- a/docs/prj/diagrams.drawio +++ b/docs/prj/diagrams.drawio @@ -1,6 +1,6 @@ - + - + @@ -10,86 +10,117 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + From a6b32e63a8f69d9311cbbe57fdacec96e53807a5 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Fri, 18 Jul 2025 14:35:54 -0400 Subject: [PATCH 008/400] Update diagrams.drawio --- docs/prj/diagrams.drawio | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/docs/prj/diagrams.drawio b/docs/prj/diagrams.drawio index 8bfa896..24297b4 100644 --- a/docs/prj/diagrams.drawio +++ b/docs/prj/diagrams.drawio @@ -1,6 +1,6 @@ - + - + @@ -83,45 +83,48 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + + + + From fb3eead9dbb991f7572229c5a9ad3d9970b75dfa Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Fri, 18 Jul 2025 16:54:43 -0400 Subject: [PATCH 009/400] Update diagrams.drawio --- docs/prj/diagrams.drawio | 68 ++++++++++++++++++++-------------------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/docs/prj/diagrams.drawio b/docs/prj/diagrams.drawio index 24297b4..1a5f762 100644 --- a/docs/prj/diagrams.drawio +++ b/docs/prj/diagrams.drawio @@ -11,7 +11,7 @@ - + @@ -46,81 +46,81 @@ - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + From c971a13fe9e5abb279834a8c9644138023e35362 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Fri, 18 Jul 2025 17:13:52 -0400 Subject: [PATCH 010/400] Update diagrams.drawio --- docs/prj/diagrams.drawio | 49 +++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 26 deletions(-) diff --git a/docs/prj/diagrams.drawio b/docs/prj/diagrams.drawio index 1a5f762..45585cf 100644 --- a/docs/prj/diagrams.drawio +++ b/docs/prj/diagrams.drawio @@ -11,7 +11,7 @@ - + @@ -46,20 +46,20 @@ - + - + - + - + - + @@ -68,59 +68,56 @@ - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + From 1b9a5d89926c7dfc174a83430b374b84ac1d80ee Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Fri, 18 Jul 2025 17:27:19 -0400 Subject: [PATCH 011/400] Create gregorian-Date_clsd.png --- docs/prj/gregorian-Date_clsd.png | Bin 0 -> 676537 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/prj/gregorian-Date_clsd.png diff --git a/docs/prj/gregorian-Date_clsd.png b/docs/prj/gregorian-Date_clsd.png new file mode 100644 index 0000000000000000000000000000000000000000..899ff7754e19b1f35de3ebb88ac0f24a63a468c6 GIT binary patch literal 676537 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 WK5x85Y2p~A&iz@ZdYNRCdhDvX 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�$= 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
  • t?D3i(utZu(|U&dBmR*#cf3o|NXPsmrKIRiw4R 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�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 From 0026a2032615d9d68df4263c6a4dae33abb6ed91 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Fri, 18 Jul 2025 17:50:16 -0400 Subject: [PATCH 013/400] Create gregorian-Date_clsd.svg --- docs/prj/gregorian-Date_clsd.svg | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 docs/prj/gregorian-Date_clsd.svg diff --git a/docs/prj/gregorian-Date_clsd.svg b/docs/prj/gregorian-Date_clsd.svg new file mode 100644 index 0000000..abfe15e --- /dev/null +++ b/docs/prj/gregorian-Date_clsd.svg @@ -0,0 +1,4 @@ + + + +
    class Date
    class Date
    [ Nested Types ]
    [ Nested Types ]
    (Public) Underlying_Type = uint32_t 
    (Public) Underlying_Type = uint32_t 
    [ Public Attributes ]
    [ Public Attributes ]
    (Public, Static, Cexpr) YEAR_FACTOR: Underlying_Type 
    (Public, Static, Cexpr) YEAR_FACTOR: Underlying_Type 
    (Public, Static, Cexpr) MONTH_FACTOR: Underlying_Type 
    (Public, Static, Cexpr) MONTH_FACTOR: Underlying_Type 
    (Public, Static, Cexpr) DEFAULT_DATE: Underlying_Type 
    (Public, Static, Cexpr) DEFAULT_DATE: Underlying_Type 
    [ Private Attributes ]
    [ Private Attributes ]
    (Private) date: Underlying_Type 
    (Private) date: Underlying_Type 
    [ Public Methods ]
    [ Public Methods ]
    (Public, Static, Cexpr) encodeDateToInteger<Integer_T>(
                        const year: YearInt_t&,
                        const month: uint8_t&,
                        const day: uint8_t&
                  ): return --> Integer_T 
    (Public, Static, Cexpr) encodeDateToInteger<Integer_T>(...
    (Public, Static, Cexpr) extractEncodedYear<Integer_T>(
                        const encodedDate: Integer_T&
                  ): return --> YearInt_t 
    (Public, Static, Cexpr) extractEncodedYear<Integer_T>(...
    (Public, Static, Cexpr) extractEncodedMonth<Integer_T>(
                        const encodedDate: Integer_T&
                   ): return --> uint8_t 
    (Public, Static, Cexpr) extractEncodedMonth<Integer_T>(...
    (Public, Static, Cexpr) extractEncodedDay<Integer_T>(
                        const encodedDate: Integer_T&
                   ): return --> uint8_t 
    (Public, Static, Cexpr) extractEncodedDay<Integer_T>(...
    (Public, Cexpr) Date(
                            const year: YearInt_t,
                            const month: uint8_t,
                            const day: uint8_t
                       ): return --> void 
    (Public, Cexpr) Date(...
    (Public, Cexpr) Date(
                            const year: YearInt_t,
                            const month: uint8_t
                       ): return --> void 
    (Public, Cexpr) Date(...
    (Public, Cexpr) Date(): return --> void 
    (Public, Cexpr) Date(): return --> void 
    (Public) ~Date() = default --> void 
    (Public) ~Date() = default --> void 
    (Public, Friend) operator<<(
             os: std::ostream&,
             const date: Date
        ): return --> std::ostream& 
    (Public, Friend) operator<<(...
    (Public) operator==(const date: Date): return --> bool 
    (Public) operator==(const date: Date): return --> bool 
    (Public) operator<(const date: Date): return --> bool 
    (Public) operator<(const date: Date): return --> bool 
    (Public) operator>(const date: Date): return --> bool 
    (Public) operator>(const date: Date): return --> bool 
    (Public) operator<=(const date: Date): return --> bool 
    (Public) operator<=(const date: Date): return --> bool 
    (Public) operator>=(const date: Date): return --> bool 
    (Public) operator>=(const date: Date): return --> bool 
    (Public) operator[](const component: CalendarComponent): return --> YearInt_t 
    (Public) operator[](const component: CalendarComponent): return --> YearInt_t 
    (Public) year(): return --> YearInt_t 
    (Public) year(): return --> YearInt_t 
    (Public) month(): return --> uint8_t 
    (Public) month(): return --> uint8_t 
    (Public) monthLiteral(): return --> std::string 
    (Public) monthLiteral(): return --> std::string 
    (Public) monthAbbreviation(): return --> std::string 
    (Public) monthAbbreviation(): return --> std::string 
    (Public) day(): return --> uint8_t 
    (Public) day(): return --> uint8_t 
    (Public) getComponent(const component: CalendarComponent): return --> YearInt_t 
    (Public) getComponent(const component: CalendarComponent): return --> YearInt_...
    (Public) toStr(): return --> std::string 
    (Public) toStr(): return --> std::string 
    (Public) underlying(): return --> Underlying_Type 
    (Public) underlying(): return --> Underlying_Type 
    /*!
    * @brief
    * Broken-down Gregorian calendar date.
    */
    /*!...
    \ No newline at end of file From 584e6dfe22d33e59eceb4a3e4d22bae3e12aa3bb Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Fri, 18 Jul 2025 17:53:24 -0400 Subject: [PATCH 014/400] Update gregorian-Date_clsd.svg --- docs/prj/gregorian-Date_clsd.svg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/prj/gregorian-Date_clsd.svg b/docs/prj/gregorian-Date_clsd.svg index abfe15e..483fb81 100644 --- a/docs/prj/gregorian-Date_clsd.svg +++ b/docs/prj/gregorian-Date_clsd.svg @@ -1,4 +1,4 @@ -
    class Date
    class Date
    [ Nested Types ]
    [ Nested Types ]
    (Public) Underlying_Type = uint32_t 
    (Public) Underlying_Type = uint32_t 
    [ Public Attributes ]
    [ Public Attributes ]
    (Public, Static, Cexpr) YEAR_FACTOR: Underlying_Type 
    (Public, Static, Cexpr) YEAR_FACTOR: Underlying_Type 
    (Public, Static, Cexpr) MONTH_FACTOR: Underlying_Type 
    (Public, Static, Cexpr) MONTH_FACTOR: Underlying_Type 
    (Public, Static, Cexpr) DEFAULT_DATE: Underlying_Type 
    (Public, Static, Cexpr) DEFAULT_DATE: Underlying_Type 
    [ Private Attributes ]
    [ Private Attributes ]
    (Private) date: Underlying_Type 
    (Private) date: Underlying_Type 
    [ Public Methods ]
    [ Public Methods ]
    (Public, Static, Cexpr) encodeDateToInteger<Integer_T>(
                        const year: YearInt_t&,
                        const month: uint8_t&,
                        const day: uint8_t&
                  ): return --> Integer_T 
    (Public, Static, Cexpr) encodeDateToInteger<Integer_T>(...
    (Public, Static, Cexpr) extractEncodedYear<Integer_T>(
                        const encodedDate: Integer_T&
                  ): return --> YearInt_t 
    (Public, Static, Cexpr) extractEncodedYear<Integer_T>(...
    (Public, Static, Cexpr) extractEncodedMonth<Integer_T>(
                        const encodedDate: Integer_T&
                   ): return --> uint8_t 
    (Public, Static, Cexpr) extractEncodedMonth<Integer_T>(...
    (Public, Static, Cexpr) extractEncodedDay<Integer_T>(
                        const encodedDate: Integer_T&
                   ): return --> uint8_t 
    (Public, Static, Cexpr) extractEncodedDay<Integer_T>(...
    (Public, Cexpr) Date(
                            const year: YearInt_t,
                            const month: uint8_t,
                            const day: uint8_t
                       ): return --> void 
    (Public, Cexpr) Date(...
    (Public, Cexpr) Date(
                            const year: YearInt_t,
                            const month: uint8_t
                       ): return --> void 
    (Public, Cexpr) Date(...
    (Public, Cexpr) Date(): return --> void 
    (Public, Cexpr) Date(): return --> void 
    (Public) ~Date() = default --> void 
    (Public) ~Date() = default --> void 
    (Public, Friend) operator<<(
             os: std::ostream&,
             const date: Date
        ): return --> std::ostream& 
    (Public, Friend) operator<<(...
    (Public) operator==(const date: Date): return --> bool 
    (Public) operator==(const date: Date): return --> bool 
    (Public) operator<(const date: Date): return --> bool 
    (Public) operator<(const date: Date): return --> bool 
    (Public) operator>(const date: Date): return --> bool 
    (Public) operator>(const date: Date): return --> bool 
    (Public) operator<=(const date: Date): return --> bool 
    (Public) operator<=(const date: Date): return --> bool 
    (Public) operator>=(const date: Date): return --> bool 
    (Public) operator>=(const date: Date): return --> bool 
    (Public) operator[](const component: CalendarComponent): return --> YearInt_t 
    (Public) operator[](const component: CalendarComponent): return --> YearInt_t 
    (Public) year(): return --> YearInt_t 
    (Public) year(): return --> YearInt_t 
    (Public) month(): return --> uint8_t 
    (Public) month(): return --> uint8_t 
    (Public) monthLiteral(): return --> std::string 
    (Public) monthLiteral(): return --> std::string 
    (Public) monthAbbreviation(): return --> std::string 
    (Public) monthAbbreviation(): return --> std::string 
    (Public) day(): return --> uint8_t 
    (Public) day(): return --> uint8_t 
    (Public) getComponent(const component: CalendarComponent): return --> YearInt_t 
    (Public) getComponent(const component: CalendarComponent): return --> YearInt_...
    (Public) toStr(): return --> std::string 
    (Public) toStr(): return --> std::string 
    (Public) underlying(): return --> Underlying_Type 
    (Public) underlying(): return --> Underlying_Type 
    /*!
    * @brief
    * Broken-down Gregorian calendar date.
    */
    /*!...
    \ No newline at end of file +
    class Date
    [ Nested Types ]
    (Public) Underlying_Type = uint32_t 
    [ Public Attributes ]
    (Public, Static, Cexpr) YEAR_FACTOR: Underlying_Type 
    (Public, Static, Cexpr) MONTH_FACTOR: Underlying_Type 
    (Public, Static, Cexpr) DEFAULT_DATE: Underlying_Type 
    [ Private Attributes ]
    (Private) date: Underlying_Type 
    [ Public Methods ]
    (Public, Static, Cexpr) encodeDateToInteger<Integer_T>(
                        const year: YearInt_t&,
                        const month: uint8_t&,
                        const day: uint8_t&
                  ): return --> Integer_T 
    (Public, Static, Cexpr) extractEncodedYear<Integer_T>(
                        const encodedDate: Integer_T&
                  ): return --> YearInt_t 
    (Public, Static, Cexpr) extractEncodedMonth<Integer_T>(
                        const encodedDate: Integer_T&
                   ): return --> uint8_t 
    (Public, Static, Cexpr) extractEncodedDay<Integer_T>(
                        const encodedDate: Integer_T&
                   ): return --> uint8_t 
    (Public, Cexpr) Date(
                            const year: YearInt_t,
                            const month: uint8_t,
                            const day: uint8_t
                       ): return --> void 
    (Public, Cexpr) Date(
                            const year: YearInt_t,
                            const month: uint8_t
                       ): return --> void 
    (Public, Cexpr) Date(): return --> void 
    (Public) ~Date() = default --> void 
    (Public, Friend) operator<<(
             os: std::ostream&,
             const date: Date
        ): return --> std::ostream& 
    (Public) operator==(const date: Date): return --> bool 
    (Public) operator<(const date: Date): return --> bool 
    (Public) operator>(const date: Date): return --> bool 
    (Public) operator<=(const date: Date): return --> bool 
    (Public) operator>=(const date: Date): return --> bool 
    (Public) operator[](const component: CalendarComponent): return --> YearInt_t 
    (Public) year(): return --> YearInt_t 
    (Public) month(): return --> uint8_t 
    (Public) monthLiteral(): return --> std::string 
    (Public) monthAbbreviation(): return --> std::string 
    (Public) day(): return --> uint8_t 
    (Public) getComponent(const component: CalendarComponent): return --> YearInt_t 
    (Public) toStr(): return --> std::string 
    (Public) underlying(): return --> Underlying_Type 
    /*!
    * @brief
    * Broken-down Gregorian calendar date.
    */
    \ No newline at end of file From b2f0e642e6f588db624b31f5c45bc924d9b1f31e Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Fri, 18 Jul 2025 17:54:46 -0400 Subject: [PATCH 015/400] Update gregorian-Date_clsd.svg --- docs/prj/gregorian-Date_clsd.svg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/prj/gregorian-Date_clsd.svg b/docs/prj/gregorian-Date_clsd.svg index 483fb81..db36de0 100644 --- a/docs/prj/gregorian-Date_clsd.svg +++ b/docs/prj/gregorian-Date_clsd.svg @@ -1,4 +1,4 @@ -
    class Date
    [ Nested Types ]
    (Public) Underlying_Type = uint32_t 
    [ Public Attributes ]
    (Public, Static, Cexpr) YEAR_FACTOR: Underlying_Type 
    (Public, Static, Cexpr) MONTH_FACTOR: Underlying_Type 
    (Public, Static, Cexpr) DEFAULT_DATE: Underlying_Type 
    [ Private Attributes ]
    (Private) date: Underlying_Type 
    [ Public Methods ]
    (Public, Static, Cexpr) encodeDateToInteger<Integer_T>(
                        const year: YearInt_t&,
                        const month: uint8_t&,
                        const day: uint8_t&
                  ): return --> Integer_T 
    (Public, Static, Cexpr) extractEncodedYear<Integer_T>(
                        const encodedDate: Integer_T&
                  ): return --> YearInt_t 
    (Public, Static, Cexpr) extractEncodedMonth<Integer_T>(
                        const encodedDate: Integer_T&
                   ): return --> uint8_t 
    (Public, Static, Cexpr) extractEncodedDay<Integer_T>(
                        const encodedDate: Integer_T&
                   ): return --> uint8_t 
    (Public, Cexpr) Date(
                            const year: YearInt_t,
                            const month: uint8_t,
                            const day: uint8_t
                       ): return --> void 
    (Public, Cexpr) Date(
                            const year: YearInt_t,
                            const month: uint8_t
                       ): return --> void 
    (Public, Cexpr) Date(): return --> void 
    (Public) ~Date() = default --> void 
    (Public, Friend) operator<<(
             os: std::ostream&,
             const date: Date
        ): return --> std::ostream& 
    (Public) operator==(const date: Date): return --> bool 
    (Public) operator<(const date: Date): return --> bool 
    (Public) operator>(const date: Date): return --> bool 
    (Public) operator<=(const date: Date): return --> bool 
    (Public) operator>=(const date: Date): return --> bool 
    (Public) operator[](const component: CalendarComponent): return --> YearInt_t 
    (Public) year(): return --> YearInt_t 
    (Public) month(): return --> uint8_t 
    (Public) monthLiteral(): return --> std::string 
    (Public) monthAbbreviation(): return --> std::string 
    (Public) day(): return --> uint8_t 
    (Public) getComponent(const component: CalendarComponent): return --> YearInt_t 
    (Public) toStr(): return --> std::string 
    (Public) underlying(): return --> Underlying_Type 
    /*!
    * @brief
    * Broken-down Gregorian calendar date.
    */
    \ No newline at end of file +
    class Date
    [ Nested Types ]
    (Public) Underlying_Type = uint32_t 
    [ Public Attributes ]
    (Public, Static, Cexpr) YEAR_FACTOR: Underlying_Type 
    (Public, Static, Cexpr) MONTH_FACTOR: Underlying_Type 
    (Public, Static, Cexpr) DEFAULT_DATE: Underlying_Type 
    [ Private Attributes ]
    (Private) date: Underlying_Type 
    [ Public Methods ]
    (Public, Static, Cexpr) encodeDateToInteger<Integer_T>(
                        const year: YearInt_t&,
                        const month: uint8_t&,
                        const day: uint8_t&
                  ): return --> Integer_T 
    (Public, Static, Cexpr) extractEncodedYear<Integer_T>(
                        const encodedDate: Integer_T&
                  ): return --> YearInt_t 
    (Public, Static, Cexpr) extractEncodedMonth<Integer_T>(
                        const encodedDate: Integer_T&
                   ): return --> uint8_t 
    (Public, Static, Cexpr) extractEncodedDay<Integer_T>(
                        const encodedDate: Integer_T&
                   ): return --> uint8_t 
    (Public, Cexpr) Date(
                            const year: YearInt_t,
                            const month: uint8_t,
                            const day: uint8_t
                       ): return --> void 
    (Public, Cexpr) Date(
                            const year: YearInt_t,
                            const month: uint8_t
                       ): return --> void 
    (Public, Cexpr) Date(): return --> void 
    (Public) ~Date() = default --> void 
    (Public, Friend) operator<<(
             os: std::ostream&,
             const date: Date
        ): return --> std::ostream& 
    (Public) operator==(const date: Date): return --> bool 
    (Public) operator<(const date: Date): return --> bool 
    (Public) operator>(const date: Date): return --> bool 
    (Public) operator<=(const date: Date): return --> bool 
    (Public) operator>=(const date: Date): return --> bool 
    (Public) operator[](const component: CalendarComponent): return --> YearInt_t 
    (Public) year(): return --> YearInt_t 
    (Public) month(): return --> uint8_t 
    (Public) monthLiteral(): return --> std::string 
    (Public) monthAbbreviation(): return --> std::string 
    (Public) day(): return --> uint8_t 
    (Public) getComponent(const component: CalendarComponent): return --> YearInt_t 
    (Public) toStr(): return --> std::string 
    (Public) underlying(): return --> Underlying_Type 
    /*!
    * @brief
    * Broken-down Gregorian calendar date.
    */
    \ No newline at end of file From 9639e254210073a4ecaba817250a9d965803bdf5 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Fri, 18 Jul 2025 18:05:04 -0400 Subject: [PATCH 016/400] Moved Class Diagram Renders --- docs/prj/{ => class}/gregorian-Date_clsd.svg | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/prj/{ => class}/gregorian-Date_clsd.svg (100%) diff --git a/docs/prj/gregorian-Date_clsd.svg b/docs/prj/class/gregorian-Date_clsd.svg similarity index 100% rename from docs/prj/gregorian-Date_clsd.svg rename to docs/prj/class/gregorian-Date_clsd.svg From 3be5cf1002bd453a9748f5b147c09b5f335625ea Mon Sep 17 00:00:00 2001 From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com> Date: Fri, 18 Jul 2025 21:40:03 -0400 Subject: [PATCH 017/400] Update diagrams.drawio --- docs/prj/diagrams.drawio | 98 ++++++++++++++++++++-------------------- 1 file changed, 49 insertions(+), 49 deletions(-) diff --git a/docs/prj/diagrams.drawio b/docs/prj/diagrams.drawio index 45585cf..89fd798 100644 --- a/docs/prj/diagrams.drawio +++ b/docs/prj/diagrams.drawio @@ -1,6 +1,6 @@ - + - + @@ -11,115 +11,115 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - + From fa59a8a15e9857c30354538627e6cee0a734c936 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sat, 19 Jul 2025 03:47:25 -0400 Subject: [PATCH 018/400] Update diagrams.drawio --- docs/prj/diagrams.drawio | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/docs/prj/diagrams.drawio b/docs/prj/diagrams.drawio index 89fd798..748d31e 100644 --- a/docs/prj/diagrams.drawio +++ b/docs/prj/diagrams.drawio @@ -1,6 +1,6 @@ - + - + @@ -119,9 +119,21 @@ - + + + + + + + + + + + + + From 97cc7a4f50f6f9f04fba48d12ae2d8171b6b77e5 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sat, 19 Jul 2025 03:47:28 -0400 Subject: [PATCH 019/400] Create StandardDatetimeAPI_clsmk.svg --- docs/prj/class/StandardDatetimeAPI_clsmk.svg | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 docs/prj/class/StandardDatetimeAPI_clsmk.svg diff --git a/docs/prj/class/StandardDatetimeAPI_clsmk.svg b/docs/prj/class/StandardDatetimeAPI_clsmk.svg new file mode 100644 index 0000000..ec544ae --- /dev/null +++ b/docs/prj/class/StandardDatetimeAPI_clsmk.svg @@ -0,0 +1,4 @@ + + + +
    template <concepts::has_datetime_driver_basis DatetimeDriver_T>
    struct DatetimeAPI {
        using Driver = DatetimeDriver_T;
        using Duration = typename Driver::DurationDriver;
        using Date = typename Driver::Date_Type;
        using Time = typename Driver::Time_Type;
        using Repr_Type = typename Driver::Underlying_Type;
        /* continue implementation... */
    };
    template <concepts::valid_duration_api_driver DurationDriver_T>
    class SDTDatetimeDriver final : public StandardDatetimeAPI<SDTDatetimeDriver> {
        public:
            using DurationDriver = DurationDriver_T;
            using Duration_Underlying = typename DurationDriver::Underlying_Type;
            using Underlying_Type = double;
            using Date_Type = simplydt::gregorian::Date;
            using Time_Type = simplydt::utc::Time;

            SDTDatetimeDriver() noexcept
                : StandardDatetimeAPI{ }, jdn_datetime{ DEFAULT_DATETIME }
            {
                //
            }

            [[nodiscard]] Date_Type getDate() const noexcept {
                YearInt_t year {};
                uint8_t month {};
                uint8_t day {};

                // TBD... (issues with compile-time approach here)
                if (!julian::convertJDNToGregorianDate(this->jdn_datetime, year, month, day))
                    return Date_Type{};

                return Date_Type{ year, month, day };
            }

            [[nodiscard]] Duration_Underlying getDurationUntil(const Date_Type& date) const noexcept {
                // TBD...
            }
            /* continue implementation... */

        private:
            Underlying_Type jdn_datetime;  ///< Datetime time point
    };
    template <concepts::contract_abiding_api_driver DatetimeDriver_T>
    class StandardDatetimeAPI : public DatetimeAPI<DatetimeDriver_T> {
        public:
            [[nodiscard]] Date date() const noexcept {
                return thisImpl().getDate();
            }

            [[nodiscard]] Duration until(const Date& date) const noexcept {
                return thisImpl().getDurationUntil(date);
            }
            /* continue implementation... */

        private:
            StandardDatetimeAPI() = default;
            ~StandardDatetimeAPI() = default;
            friend Driver;

            Driver& const thisImpl() noexcept
            {
                return static_cast<Driver&>(*this);
            }
    };
    \ No newline at end of file From b345b80d6d795fdc8f4bcde62fb5e28a9db85cf9 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sat, 19 Jul 2025 04:17:07 -0400 Subject: [PATCH 020/400] Update diagrams.drawio --- docs/prj/diagrams.drawio | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/docs/prj/diagrams.drawio b/docs/prj/diagrams.drawio index 748d31e..d9c2acc 100644 --- a/docs/prj/diagrams.drawio +++ b/docs/prj/diagrams.drawio @@ -1,6 +1,6 @@ - + @@ -126,13 +126,19 @@ - + - + - - + + + + + + + + From d5cfd954170709fecab9c79ede255ff313a1d549 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sat, 19 Jul 2025 04:17:09 -0400 Subject: [PATCH 021/400] Update StandardDatetimeAPI_clsmk.svg --- docs/prj/class/StandardDatetimeAPI_clsmk.svg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/prj/class/StandardDatetimeAPI_clsmk.svg b/docs/prj/class/StandardDatetimeAPI_clsmk.svg index ec544ae..69497ea 100644 --- a/docs/prj/class/StandardDatetimeAPI_clsmk.svg +++ b/docs/prj/class/StandardDatetimeAPI_clsmk.svg @@ -1,4 +1,4 @@ -
    template <concepts::has_datetime_driver_basis DatetimeDriver_T>
    struct DatetimeAPI {
        using Driver = DatetimeDriver_T;
        using Duration = typename Driver::DurationDriver;
        using Date = typename Driver::Date_Type;
        using Time = typename Driver::Time_Type;
        using Repr_Type = typename Driver::Underlying_Type;
        /* continue implementation... */
    };
    template <concepts::valid_duration_api_driver DurationDriver_T>
    class SDTDatetimeDriver final : public StandardDatetimeAPI<SDTDatetimeDriver> {
        public:
            using DurationDriver = DurationDriver_T;
            using Duration_Underlying = typename DurationDriver::Underlying_Type;
            using Underlying_Type = double;
            using Date_Type = simplydt::gregorian::Date;
            using Time_Type = simplydt::utc::Time;

            SDTDatetimeDriver() noexcept
                : StandardDatetimeAPI{ }, jdn_datetime{ DEFAULT_DATETIME }
            {
                //
            }

            [[nodiscard]] Date_Type getDate() const noexcept {
                YearInt_t year {};
                uint8_t month {};
                uint8_t day {};

                // TBD... (issues with compile-time approach here)
                if (!julian::convertJDNToGregorianDate(this->jdn_datetime, year, month, day))
                    return Date_Type{};

                return Date_Type{ year, month, day };
            }

            [[nodiscard]] Duration_Underlying getDurationUntil(const Date_Type& date) const noexcept {
                // TBD...
            }
            /* continue implementation... */

        private:
            Underlying_Type jdn_datetime;  ///< Datetime time point
    };
    template <concepts::contract_abiding_api_driver DatetimeDriver_T>
    class StandardDatetimeAPI : public DatetimeAPI<DatetimeDriver_T> {
        public:
            [[nodiscard]] Date date() const noexcept {
                return thisImpl().getDate();
            }

            [[nodiscard]] Duration until(const Date& date) const noexcept {
                return thisImpl().getDurationUntil(date);
            }
            /* continue implementation... */

        private:
            StandardDatetimeAPI() = default;
            ~StandardDatetimeAPI() = default;
            friend Driver;

            Driver& const thisImpl() noexcept
            {
                return static_cast<Driver&>(*this);
            }
    };
    \ No newline at end of file +
    template <concepts::has_datetime_driver_basis DatetimeDriver_T>
    struct DatetimeAPI {
        using Driver = DatetimeDriver_T;
        using Duration = typename Driver::DurationDriver;
        using Date = typename Driver::Date_Type;
        using Time = typename Driver::Time_Type;
        using Repr_Type = typename Driver::Underlying_Type;
        /* continue implementation... */
    };
    template <concepts::duration_api_derivative DurationDriver_T>
    class SDTDatetimeDriver final : public StandardDatetimeAPI<SDTDatetimeDriver> {
        public:
            using DurationDriver = DurationDriver_T;
            using Duration_Underlying = typename DurationDriver::Underlying_Type;
            using Underlying_Type = double;
            using Date_Type = simplydt::gregorian::Date;
            using Time_Type = simplydt::utc::Time;

            SDTDatetimeDriver() noexcept
                : StandardDatetimeAPI{ }, jdn_datetime{ DEFAULT_DATETIME }
            {
                //
            }

            [[nodiscard]] Date_Type getDate() const noexcept {
                YearInt_t year {};
                uint8_t month {};
                uint8_t day {};

                // TBD... (issues with compile-time approach here)
                if (!julian::convertJDNToGregorianDate(this->jdn_datetime, year, month, day))
                    return Date_Type{};

                return Date_Type{ year, month, day };
            }

            [[nodiscard]] Duration_Underlying getDurationUntil(const Date_Type& date) const noexcept {
                // TBD...
            }
            /* continue implementation... */

        private:
            Underlying_Type jdn_datetime;  ///< Datetime time point
    };
    template <concepts::contract_abiding_datetime_driver DatetimeDriver_T>
    class StandardDatetimeAPI : public DatetimeAPI<DatetimeDriver_T> {
        public:
            [[nodiscard]] Date date() const noexcept {
                return thisImpl().getDate();
            }

            [[nodiscard]] Duration until(const Date& date) const noexcept {
                return thisImpl().getDurationUntil(date);
            }
            /* continue implementation... */

        private:
            StandardDatetimeAPI() = default;
            ~StandardDatetimeAPI() = default;
            friend Driver;

            Driver& const thisImpl() noexcept
            {
                return static_cast<Driver&>(*this);
            }
    };
    template <concepts::contract_abiding_duration_driver DurationDriver_T>
    class StandardDurationAPI : public DurationAPI<DurationDriver_T> {
        public:
            [[nodiscard]] int32_t days() const noexcept {
                return thisImpl().getDaysElapsed();
            }

            [[nodiscard]] Duration until(const Duration& duration) const noexcept {
                return thisImpl().getDurationUntil(duration);
            }
            /* continue implementation... */

        private:
            StandardDurationAPI() = default;
            ~StandardDurationAPI() = default;
            friend Driver;

            Driver& const thisImpl() noexcept
            {
                return static_cast<Driver&>(*this);
            }
    };
    template <concepts::has_duration_driver_basis DurationDriver_T>
    struct DurationAPI {
        using Driver = DurationDriver_T;
        using Repr_Type = typename Driver::Underlying_Type;
        /* continue implementation... */
    };
    \ No newline at end of file From 154a694cdf60ab1e04490a55dc84f54726bda5f9 Mon Sep 17 00:00:00 2001 From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com> Date: Sat, 19 Jul 2025 04:25:48 -0400 Subject: [PATCH 022/400] Delete gregorian-Date_clsd.svg --- docs/prj/class/gregorian-Date_clsd.svg | 4 ---- 1 file changed, 4 deletions(-) delete mode 100644 docs/prj/class/gregorian-Date_clsd.svg diff --git a/docs/prj/class/gregorian-Date_clsd.svg b/docs/prj/class/gregorian-Date_clsd.svg deleted file mode 100644 index db36de0..0000000 --- a/docs/prj/class/gregorian-Date_clsd.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - -
    class Date
    [ Nested Types ]
    (Public) Underlying_Type = uint32_t 
    [ Public Attributes ]
    (Public, Static, Cexpr) YEAR_FACTOR: Underlying_Type 
    (Public, Static, Cexpr) MONTH_FACTOR: Underlying_Type 
    (Public, Static, Cexpr) DEFAULT_DATE: Underlying_Type 
    [ Private Attributes ]
    (Private) date: Underlying_Type 
    [ Public Methods ]
    (Public, Static, Cexpr) encodeDateToInteger<Integer_T>(
                        const year: YearInt_t&,
                        const month: uint8_t&,
                        const day: uint8_t&
                  ): return --> Integer_T 
    (Public, Static, Cexpr) extractEncodedYear<Integer_T>(
                        const encodedDate: Integer_T&
                  ): return --> YearInt_t 
    (Public, Static, Cexpr) extractEncodedMonth<Integer_T>(
                        const encodedDate: Integer_T&
                   ): return --> uint8_t 
    (Public, Static, Cexpr) extractEncodedDay<Integer_T>(
                        const encodedDate: Integer_T&
                   ): return --> uint8_t 
    (Public, Cexpr) Date(
                            const year: YearInt_t,
                            const month: uint8_t,
                            const day: uint8_t
                       ): return --> void 
    (Public, Cexpr) Date(
                            const year: YearInt_t,
                            const month: uint8_t
                       ): return --> void 
    (Public, Cexpr) Date(): return --> void 
    (Public) ~Date() = default --> void 
    (Public, Friend) operator<<(
             os: std::ostream&,
             const date: Date
        ): return --> std::ostream& 
    (Public) operator==(const date: Date): return --> bool 
    (Public) operator<(const date: Date): return --> bool 
    (Public) operator>(const date: Date): return --> bool 
    (Public) operator<=(const date: Date): return --> bool 
    (Public) operator>=(const date: Date): return --> bool 
    (Public) operator[](const component: CalendarComponent): return --> YearInt_t 
    (Public) year(): return --> YearInt_t 
    (Public) month(): return --> uint8_t 
    (Public) monthLiteral(): return --> std::string 
    (Public) monthAbbreviation(): return --> std::string 
    (Public) day(): return --> uint8_t 
    (Public) getComponent(const component: CalendarComponent): return --> YearInt_t 
    (Public) toStr(): return --> std::string 
    (Public) underlying(): return --> Underlying_Type 
    /*!
    * @brief
    * Broken-down Gregorian calendar date.
    */
    \ No newline at end of file From 971843e49126516920103e1ea31a65a619e3631e Mon Sep 17 00:00:00 2001 From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com> Date: Sat, 19 Jul 2025 06:32:01 -0400 Subject: [PATCH 023/400] Update stl_chrono_defs.hpp --- include/simplydt/common/stl_chrono_defs.hpp | 41 ++++++++++++--------- 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/include/simplydt/common/stl_chrono_defs.hpp b/include/simplydt/common/stl_chrono_defs.hpp index 345f541..bfbbd4e 100644 --- a/include/simplydt/common/stl_chrono_defs.hpp +++ b/include/simplydt/common/stl_chrono_defs.hpp @@ -11,11 +11,12 @@ * Type aliases for standard C++ date and time constructs. * * @details - * This header defines convenient type aliases for commonly used - * C++ Standard Library date and time types, such as clocks, - * time points, durations, and calendar representations. These - * aliases simplify usage and ensure consistency throughout the - * Simply Datetime library. + * This header defines convenient type aliases for + * commonly used C++ Standard Library date and time + * types, such as clocks, time points, durations, + * and calendar representations. These aliases simplify + * usage and ensure consistency throughout the Simply + * Datetime library. */ @@ -54,29 +55,33 @@ using SystemDuration = SystemClock::duration; /*! * @brief - * Time point in seconds since Unix epoch. + * Count of seconds since Unix epoch to some time + * point. * * @details * The `std::time_t` type is implementation-defined. - * Simply Datetime does not use this type because it - * needs guarantee that the type representing seconds - * since the Unix epoch (January 1, 1970 00:00:00.000) - * is a 64-bit signed integer. This is to mitigate the - * '2038' year overflow. + * Simply Datetime does not explicitly use this type + * because it needs guarantee that the type used to + * represent seconds since the Unix epoch (January 1, + * 1970 00:00:00.000) is a 64-bit signed integer. + * This is to mitigate the '2038' year overflow + * internally. Simply Datetime provides a safe method + * for converting this type to standard `std::tm`. */ using UnixTimestamp = int64_t; -// NOTE: I have many concerns about this approach +// TODO: Need safe conversion method to std::time_t for compatibility /*! * @brief - * Broken-down calendar datetime component struct. + * Broken-down calendar date and time structure. * * @details - * This type is a C-style struct that stores individual - * components of a calendar time point and contains two - * key fields to be mindful of: `tm_mon` which measures - * the number of months ***since*** January, and `tm_year` - * which measures the number of years ***since*** 1900. + * This is a C-style struct that stores individual + * components of a calendar time point and contains + * two key fields to be mindful of: `tm_mon` which + * measures the number of months ***since*** January, + * and `tm_year` which measures the number of years + * ***since*** 1900. */ using CalendarDateTime = std::tm; From 3b4e6ef02d5a76b25ff0617e1a96a8a5b3a9f5f4 Mon Sep 17 00:00:00 2001 From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com> Date: Sat, 19 Jul 2025 06:43:04 -0400 Subject: [PATCH 024/400] Update general_defs.hpp --- include/simplydt/common/general_defs.hpp | 31 ++++++++++++------------ 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/include/simplydt/common/general_defs.hpp b/include/simplydt/common/general_defs.hpp index c499c53..553eacd 100644 --- a/include/simplydt/common/general_defs.hpp +++ b/include/simplydt/common/general_defs.hpp @@ -9,19 +9,18 @@ * * @note * This file really shouldn't exist given it's - * broad nature. However, at the moment I am - * unsure where to situate some of the ideas in - * this document. The definitions are likely to - * later be moved to another translation unit. + * broad nature. However, I am unsure where to + * situate some of the ideas in this document. + * The definitions are likely to later be moved + * to another translation unit. * * @brief - * Common general Simply Datetime library - * definitions. + * General Simply Datetime library definitions. */ -#ifndef SIMPLYDT_LIB_COMMON_DEFINITIONS_H_ -#define SIMPLYDT_LIB_COMMON_DEFINITIONS_H_ +#ifndef SIMPLYDT_LIB_GENERAL_DEFINITIONS_H_ +#define SIMPLYDT_LIB_GENERAL_DEFINITIONS_H_ #include @@ -33,20 +32,20 @@ namespace simplydt * Enumeration of broken-down calendar components. */ enum CalendarComponent : uint8_t { - SECOND, ///< Datetime second component - MINUTE, ///< Datetime minute component - HOUR, ///< Datetime hour component - DAY, ///< Datetime day component - MONTH, ///< Datetime month component - YEAR ///< Datetime year component + SECOND, ///< Time second component + MINUTE, ///< Time minute component + HOUR, ///< Time hour component + DAY, ///< Date day component + MONTH, ///< Date month component + YEAR ///< Date year component }; /*! * @brief * Invalid literal. */ -inline const char* INVALID_LITERAL = "Invalid"; +inline const char* INVALID_LITERAL = "invalid"; } // namespace simplydt -#endif // SIMPLYDT_LIB_COMMON_DEFINITIONS_H_ +#endif // SIMPLYDT_LIB_GENERAL_DEFINITIONS_H_ From 340acd88bf6a256283abdb068fe3a5ce06240981 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sat, 19 Jul 2025 07:01:37 -0400 Subject: [PATCH 025/400] Update diagrams.drawio --- docs/prj/diagrams.drawio | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/prj/diagrams.drawio b/docs/prj/diagrams.drawio index d9c2acc..b0ffeaf 100644 --- a/docs/prj/diagrams.drawio +++ b/docs/prj/diagrams.drawio @@ -1,6 +1,6 @@ - + From b81b22e504327442d68bb328a0c23438b2021cd8 Mon Sep 17 00:00:00 2001 From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com> Date: Sat, 19 Jul 2025 20:33:54 -0400 Subject: [PATCH 026/400] Update stl_chrono_defs.hpp --- include/simplydt/common/stl_chrono_defs.hpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/include/simplydt/common/stl_chrono_defs.hpp b/include/simplydt/common/stl_chrono_defs.hpp index bfbbd4e..bb23f90 100644 --- a/include/simplydt/common/stl_chrono_defs.hpp +++ b/include/simplydt/common/stl_chrono_defs.hpp @@ -55,8 +55,7 @@ using SystemDuration = SystemClock::duration; /*! * @brief - * Count of seconds since Unix epoch to some time - * point. + * Seconds since Unix epoch. * * @details * The `std::time_t` type is implementation-defined. @@ -69,7 +68,6 @@ using SystemDuration = SystemClock::duration; * for converting this type to standard `std::tm`. */ using UnixTimestamp = int64_t; -// TODO: Need safe conversion method to std::time_t for compatibility /*! * @brief From 3873c34ba967cc34b1cdfbc131e9fc83a99477c0 Mon Sep 17 00:00:00 2001 From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com> Date: Sat, 19 Jul 2025 20:34:09 -0400 Subject: [PATCH 027/400] Update stl_chrono_utils.hpp --- include/simplydt/common/stl_chrono_utils.hpp | 64 +++++++++----------- 1 file changed, 27 insertions(+), 37 deletions(-) diff --git a/include/simplydt/common/stl_chrono_utils.hpp b/include/simplydt/common/stl_chrono_utils.hpp index 303d991..d36d1a1 100644 --- a/include/simplydt/common/stl_chrono_utils.hpp +++ b/include/simplydt/common/stl_chrono_utils.hpp @@ -8,7 +8,8 @@ * @file stl_chrono_utils.hpp * * @brief - * STL date and time library utilities. + * Utilities for standard C++ date and time related + * constructs. */ @@ -20,45 +21,34 @@ namespace simplydt::stl { - /*! - * @brief - * Get system wall-clock timestamp. - * - * @return - * Current system clock time point - */ - [[nodiscard]] inline SystemTimePoint getNowSystemTime() noexcept - { - return SystemClock::now(); - } - - /*! - * @brief - * Populate calendar component structure using a system - * clock timestamp. - * - * @details - * Wraps platform-dependent call to interpret a system - * clock time point and populate a calendar component - * structure. The underlying calls used, `localtime_s` - * for Windows and `localtime_r` for POSIX compliant - * systems, are thread-safe. - * - * @return - * True on success - */ - [[nodiscard]] inline bool deriveLocalDateTimeFromTimestamp( - const UnixTimestamp* timestamp, CalendarDateTime* out_tm - ) - { +/*! + * @brief + * Populate calendar component structure using a system + * clock timestamp. + * + * @details + * Wraps platform-dependent call to interpret a system + * clock time point and populate a calendar component + * structure. The underlying calls used, `localtime_s` + * for Windows and `localtime_r` for POSIX compliant + * systems, are thread-safe and both apply the systems + * local timezone to the populated calendar struct. + * + * @return + * True on success + */ +[[nodiscard]] inline bool deriveLocalDateTimeFromTimestamp( + const UnixTimestamp* timestamp, CalendarDateTime* out_tm +) +{ #if defined(_WIN32) || defined(_WIN64) - // Windows system - return localtime_s(out_tm, timestamp) == 0; + // Windows based system + return localtime_s(out_tm, timestamp) == 0; #elif defined(__unix__) || defined(__unix) || defined(__APPLE__) - // POSIX compliant system - return localtime_r(timestamp, out_tm) != nullptr; + // POSIX compliant system + return localtime_r(timestamp, out_tm) != nullptr; #endif - } +} } // namespace simplydt::stl From 64b73eb42742f5e368085524f58a3d1b35ec8565 Mon Sep 17 00:00:00 2001 From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com> Date: Sun, 20 Jul 2025 06:11:51 -0400 Subject: [PATCH 028/400] Update string_utils.hpp --- include/simplydt/common/string_utils.hpp | 45 ++++++++++++------------ 1 file changed, 23 insertions(+), 22 deletions(-) diff --git a/include/simplydt/common/string_utils.hpp b/include/simplydt/common/string_utils.hpp index 347b7a7..b499325 100644 --- a/include/simplydt/common/string_utils.hpp +++ b/include/simplydt/common/string_utils.hpp @@ -20,28 +20,29 @@ namespace simplydt { - /*! - * @brief - * Convert integer value to a double digit string. - * - * @details - * This method takes an integer value of arbitrary type - * and converts it to a string that only consist of two - * digits. Values less than 10 are prefixed with a '0', - * and values greater than 99 are truncated to their - * last two digits using modulus division. - * - * @return - * Double-digit string - */ - template - [[nodiscard]] inline std::string toDoubleDigitStr(const Int_T integer) noexcept - { - if (integer < 10) - return (std::string{ "0" } + std::to_string(integer)); - else - return std::to_string(integer % 100); - } +/*! + * @brief + * Convert integer value to a double digit string. + * + * @details + * This method takes an integer value of arbitrary type + * and converts it to a string that only consist of two + * digits. Values less than 10 are prefixed with a '0', + * and values greater than 99 are truncated to their + * last two digits using modulus division. + * + * @return + * Double-digit string + */ +template +requires std::is_integral_v +[[nodiscard]] inline std::string toDoubleDigitStr(const Int_T integer) noexcept +{ + if (integer < 10) + return (std::string{"0"} + std::to_string(integer)); + else + return std::to_string(integer % 100); +} } // namespace simplydt From 8a33ebff931720e2af8fe6530bd980beaa29ed5e Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 21 Jul 2025 12:48:55 -0400 Subject: [PATCH 029/400] Update diagrams.drawio --- docs/prj/diagrams.drawio | 211 +++++++++++++++++++++++++++++++++------ 1 file changed, 179 insertions(+), 32 deletions(-) diff --git a/docs/prj/diagrams.drawio b/docs/prj/diagrams.drawio index b0ffeaf..452dbfd 100644 --- a/docs/prj/diagrams.drawio +++ b/docs/prj/diagrams.drawio @@ -1,6 +1,35 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -11,7 +40,7 @@ - + @@ -23,49 +52,44 @@ - - + + - + - + - + - - - - - - + - + - + - + - + - + - + - + @@ -74,25 +98,25 @@ - + - + - + - + - + - + - + @@ -110,7 +134,7 @@ - + @@ -120,13 +144,13 @@ - + - + @@ -140,11 +164,134 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + From cac969b3da984895d87b05e3f893d45a30300178 Mon Sep 17 00:00:00 2001 From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com> Date: Mon, 21 Jul 2025 17:09:06 -0400 Subject: [PATCH 030/400] Update diagrams.drawio --- docs/prj/diagrams.drawio | 74 +++++++++++++++++++++++++--------------- 1 file changed, 46 insertions(+), 28 deletions(-) diff --git a/docs/prj/diagrams.drawio b/docs/prj/diagrams.drawio index 452dbfd..5cc853b 100644 --- a/docs/prj/diagrams.drawio +++ b/docs/prj/diagrams.drawio @@ -1,35 +1,53 @@ - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + - + @@ -143,25 +161,25 @@ - + - + - + - + - + - + - + @@ -192,7 +210,7 @@ - + @@ -200,7 +218,7 @@ - + @@ -208,7 +226,7 @@ - + @@ -291,7 +309,7 @@ - + From 638f3fe0852ac560b289a07eb3e5b3ef1f3ebab8 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 21 Jul 2025 18:39:17 -0400 Subject: [PATCH 031/400] Delete StandardDatetimeAPI_clsmk.svg --- docs/prj/class/StandardDatetimeAPI_clsmk.svg | 4 ---- 1 file changed, 4 deletions(-) delete mode 100644 docs/prj/class/StandardDatetimeAPI_clsmk.svg diff --git a/docs/prj/class/StandardDatetimeAPI_clsmk.svg b/docs/prj/class/StandardDatetimeAPI_clsmk.svg deleted file mode 100644 index 69497ea..0000000 --- a/docs/prj/class/StandardDatetimeAPI_clsmk.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - -
    template <concepts::has_datetime_driver_basis DatetimeDriver_T>
    struct DatetimeAPI {
        using Driver = DatetimeDriver_T;
        using Duration = typename Driver::DurationDriver;
        using Date = typename Driver::Date_Type;
        using Time = typename Driver::Time_Type;
        using Repr_Type = typename Driver::Underlying_Type;
        /* continue implementation... */
    };
    template <concepts::duration_api_derivative DurationDriver_T>
    class SDTDatetimeDriver final : public StandardDatetimeAPI<SDTDatetimeDriver> {
        public:
            using DurationDriver = DurationDriver_T;
            using Duration_Underlying = typename DurationDriver::Underlying_Type;
            using Underlying_Type = double;
            using Date_Type = simplydt::gregorian::Date;
            using Time_Type = simplydt::utc::Time;

            SDTDatetimeDriver() noexcept
                : StandardDatetimeAPI{ }, jdn_datetime{ DEFAULT_DATETIME }
            {
                //
            }

            [[nodiscard]] Date_Type getDate() const noexcept {
                YearInt_t year {};
                uint8_t month {};
                uint8_t day {};

                // TBD... (issues with compile-time approach here)
                if (!julian::convertJDNToGregorianDate(this->jdn_datetime, year, month, day))
                    return Date_Type{};

                return Date_Type{ year, month, day };
            }

            [[nodiscard]] Duration_Underlying getDurationUntil(const Date_Type& date) const noexcept {
                // TBD...
            }
            /* continue implementation... */

        private:
            Underlying_Type jdn_datetime;  ///< Datetime time point
    };
    template <concepts::contract_abiding_datetime_driver DatetimeDriver_T>
    class StandardDatetimeAPI : public DatetimeAPI<DatetimeDriver_T> {
        public:
            [[nodiscard]] Date date() const noexcept {
                return thisImpl().getDate();
            }

            [[nodiscard]] Duration until(const Date& date) const noexcept {
                return thisImpl().getDurationUntil(date);
            }
            /* continue implementation... */

        private:
            StandardDatetimeAPI() = default;
            ~StandardDatetimeAPI() = default;
            friend Driver;

            Driver& const thisImpl() noexcept
            {
                return static_cast<Driver&>(*this);
            }
    };
    template <concepts::contract_abiding_duration_driver DurationDriver_T>
    class StandardDurationAPI : public DurationAPI<DurationDriver_T> {
        public:
            [[nodiscard]] int32_t days() const noexcept {
                return thisImpl().getDaysElapsed();
            }

            [[nodiscard]] Duration until(const Duration& duration) const noexcept {
                return thisImpl().getDurationUntil(duration);
            }
            /* continue implementation... */

        private:
            StandardDurationAPI() = default;
            ~StandardDurationAPI() = default;
            friend Driver;

            Driver& const thisImpl() noexcept
            {
                return static_cast<Driver&>(*this);
            }
    };
    template <concepts::has_duration_driver_basis DurationDriver_T>
    struct DurationAPI {
        using Driver = DurationDriver_T;
        using Repr_Type = typename Driver::Underlying_Type;
        /* continue implementation... */
    };
    \ No newline at end of file From ebc26be67d8de6103dfb052f98c5c4833a62020e Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 21 Jul 2025 18:39:21 -0400 Subject: [PATCH 032/400] Create mockup.pdf --- docs/prj/design/mockup.pdf | Bin 0 -> 149214 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/prj/design/mockup.pdf diff --git a/docs/prj/design/mockup.pdf b/docs/prj/design/mockup.pdf new file mode 100644 index 0000000000000000000000000000000000000000..a0a3fa35cafb0321e4bb1b25618011f2da83ab8d GIT binary patch literal 149214 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

    2G3Tva$j+I>8 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 literal 0 HcmV?d00001 From 62f39d4faaddd561a479ed2e2eb9f03b41c6db88 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 21 Jul 2025 18:39:24 -0400 Subject: [PATCH 033/400] Update diagrams.drawio --- docs/prj/diagrams.drawio | 78 +++++++++++++++++++++------------------- 1 file changed, 42 insertions(+), 36 deletions(-) diff --git a/docs/prj/diagrams.drawio b/docs/prj/diagrams.drawio index 5cc853b..b9163b3 100644 --- a/docs/prj/diagrams.drawio +++ b/docs/prj/diagrams.drawio @@ -1,53 +1,59 @@ - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - - + + - - + + + + + + + + - + @@ -161,25 +167,25 @@ - + - + - + - + - + - + - + @@ -210,7 +216,7 @@ - + @@ -218,7 +224,7 @@ - + @@ -226,7 +232,7 @@ - + @@ -309,7 +315,7 @@ - + From f844a59c245c146f5853a6e6de9a97974b28683c Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 21 Jul 2025 18:46:35 -0400 Subject: [PATCH 034/400] Design Plans Update --- docs/prj/design/mockup.pdf | Bin 149214 -> 149033 bytes docs/prj/diagrams.drawio | 6 +++--- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/prj/design/mockup.pdf b/docs/prj/design/mockup.pdf index a0a3fa35cafb0321e4bb1b25618011f2da83ab8d..f47f758ee692a7f86b6c4378098fe69c1b81589c 100644 GIT binary patch delta 10065 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 - + @@ -40,13 +40,13 @@ - + - + From 14ad29fc7d0589555c63410b23aca1cc78ef787e Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 21 Jul 2025 19:00:03 -0400 Subject: [PATCH 035/400] Design Plans Update --- docs/prj/design/project_dir.pdf | Bin 0 -> 45844 bytes docs/prj/diagrams.drawio | 6 +++--- 2 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 docs/prj/design/project_dir.pdf diff --git a/docs/prj/design/project_dir.pdf b/docs/prj/design/project_dir.pdf new file mode 100644 index 0000000000000000000000000000000000000000..8165d95a841604d721a1d8cb4cae5cf972c3320d GIT binary patch literal 45844 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 BA(H?A literal 0 HcmV?d00001 diff --git a/docs/prj/diagrams.drawio b/docs/prj/diagrams.drawio index baf0722..3cd7489 100644 --- a/docs/prj/diagrams.drawio +++ b/docs/prj/diagrams.drawio @@ -1,6 +1,6 @@ - + @@ -22,8 +22,8 @@ - - + + From f1ef803c6db9999a0f6e269631993fc33b273dc9 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Tue, 22 Jul 2025 16:52:12 -0400 Subject: [PATCH 036/400] Design Plans Update --- docs/prj/diagrams.drawio | 41 +++++++++++++++++++++++++++++----------- 1 file changed, 30 insertions(+), 11 deletions(-) diff --git a/docs/prj/diagrams.drawio b/docs/prj/diagrams.drawio index 3cd7489..61fc520 100644 --- a/docs/prj/diagrams.drawio +++ b/docs/prj/diagrams.drawio @@ -1,6 +1,6 @@ - + @@ -16,14 +16,14 @@ - - + + - - + + @@ -40,14 +40,33 @@ - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + From efabba03e36408804c3c82586bc3801bb9364f1f Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Tue, 22 Jul 2025 21:28:42 -0400 Subject: [PATCH 037/400] Update diagrams.drawio --- docs/prj/diagrams.drawio | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/prj/diagrams.drawio b/docs/prj/diagrams.drawio index 61fc520..a8f97a3 100644 --- a/docs/prj/diagrams.drawio +++ b/docs/prj/diagrams.drawio @@ -22,7 +22,7 @@ - + @@ -43,13 +43,13 @@ - + - + - + From f45396c0df6f00857d2fa79bd382cf70bfb30a41 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Tue, 22 Jul 2025 21:28:46 -0400 Subject: [PATCH 038/400] Update project_dir.pdf --- docs/prj/design/project_dir.pdf | Bin 45844 -> 54640 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/prj/design/project_dir.pdf b/docs/prj/design/project_dir.pdf index 8165d95a841604d721a1d8cb4cae5cf972c3320d..7f12150ca381e3710326331eed26b1ede874220b 100644 GIT binary patch delta 53787 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 Date: Tue, 22 Jul 2025 21:28:49 -0400 Subject: [PATCH 039/400] Update mockup.pdf --- docs/prj/design/mockup.pdf | Bin 149033 -> 195842 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/prj/design/mockup.pdf b/docs/prj/design/mockup.pdf index f47f758ee692a7f86b6c4378098fe69c1b81589c..c1f7527de6254e3d763292dd7a51fd8822ba248c 100644 GIT binary patch delta 134580 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¨5 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 delta 87734 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 AF#rGn From 3483ee1e77c0efe04876598c79d0ee488a573275 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Tue, 22 Jul 2025 21:28:53 -0400 Subject: [PATCH 040/400] Create code_review1.html --- docs/prj/design/code_review1.html | 12055 ++++++++++++++++++++++++++++ 1 file changed, 12055 insertions(+) create mode 100644 docs/prj/design/code_review1.html diff --git a/docs/prj/design/code_review1.html b/docs/prj/design/code_review1.html new file mode 100644 index 0000000..f392197 --- /dev/null +++ b/docs/prj/design/code_review1.html @@ -0,0 +1,12055 @@ +

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    + +
    + +
    +

    Okay, I can definitely help you with this. It sounds like you've got + some ambitious and interesting goals for your datetime library! + Taking it slow is a great idea, especially when dealing with + something as inherently complex as time and calendars.

    +

    Let's break down your current thoughts and identify the core + challenges and opportunities.

    +

    +

    Initial Thoughts & Key Takeaways from Your Description:

    +

    +
      +
    1. +

      Motivation: Simplifying std::chrono and + providing an alternative/complementary datetime system. This + is a common pain point with std::chrono for + many developers, so there's a real need here.

      +
    2. +
    3. +

      Core Idea - Custom time_point based on + JDN: This is a solid foundation. The Julian Day + Number (JDN) system is well-suited for a single, continuous + numerical representation of time, making calculations + between widely separated dates simpler.

      +
    4. +
    5. +

      Static Swapping of Underlying Logic: This is a + powerful concept. You want to be able to choose between your + custom implementation and a std::chrono bridge + at compile time. This speaks to flexibility and potentially + providing performance/feature trade-offs.

      +
    6. +
    7. +

      Extensibility for New Calendar Systems: A crucial + requirement for a robust datetime library. Supporting Julian + and Gregorian initially, with the ability for users to add + more, is excellent.

      +
    8. +
    9. +

      Future Modifiability: Emphasizing easy modification + for efficiency improvements or new calendars is a sign of + good design foresight.

      +
    10. +
    +

    +

    Where We Need to Focus to "Understand Your Problem Domain":

    +

    +

    Your current challenge isn't just about coding; it's about + understanding the abstractions you need. Here's what we'll + explore to get a clearer picture:

    +
      +
    • +

      What is "datetime" to your library? Is it just a point + in time, or does it also encompass durations, time zones, + calendar-specific fields (year, month, day), etc.?

      +
    • +
    • +

      How do different calendar systems interact with a + JDN-based time_point? This is where the + conversion logic lives.

      +
    • +
    • +

      What does "static swapping" really entail from a design + perspective? Are we talking about different template + specializations, policy-based design, or something else?

      +
    • +
    • +

      What are the key operations you envision users performing + with your datetime objects? (e.g., adding days, + comparing dates, formatting, parsing, getting specific date + components).

      +
    • +
    • +

      How do you handle edge cases and nuances of calendar + systems? (e.g., leap years, calendar reforms, + proleptic calendars).

      +
    • +
    +

    +

    Let's Start with the Very Basics: What is a "Point in Time" in Your + Library?

    +

    +

    You mentioned basing your time_point on the Julian Day + Number system. This is an excellent starting point because it + provides a continuous, absolute measure of time, divorced from any + specific calendar.

    +

    Question 1: Can you describe, in a bit more detail, how you + envision your fundamental time_point type + working?

    +
      +
    • +

      What data type will store the JDN? (e.g., + double, long long, + int64_t)

      +
    • +
    • +

      Will it store fractional days to represent time within a day + (hours, minutes, seconds, milliseconds)?

      +
    • +
    • +

      How will you define the "epoch" (the reference point for JDN + 0)? The astronomical JDN epoch is noon, January 1, 4713 BC, + Proleptic Julian Calendar. Is this what you intend?

      +
    • +
    • +

      What is the precision you aim for (seconds, milliseconds, + nanoseconds)? This impacts your choice of underlying data + type.

      +
    • +
    +

    Don't worry about code yet, just conceptual. Let's build a mental + model of this core component first.

    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +

    + Okay, I took a day to think about this and I think I may have landed + somewhere on the library design. First I am going to share with you what + the project directory would look like from within the + 'include/simplydt/' directory (which is where everything is going down + so to speak), then after I will show you my raw ideas for the design and + see what you think. I have PDF's which contain my ideas so I will attach + them to share with you. I want you to be familiar with the directory + first so it provides additional context to the raw ideas. Then maybe you + can help me push the needle further, but we'll take things slow for now. + Does this sound like a plan?

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    +
    +
    + +
    + +
    +

    That sounds like an excellent plan! Taking a day to think things + through is a sign of a thoughtful approach, and having some initial + structure (even if it's rough) will give us a concrete starting + point.

    +

    Sharing the project directory structure first is a great idea. It + will indeed provide valuable context for understanding your design + choices and where different components are intended to live.

    +

    Once I have a clear picture of the directory structure, we can then + dive into your PDF ideas. I'm ready when you are. Let's take it slow + and build this up logically.

    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    + +
    +
    + +
    +
    +
    +
    +
    +

    + Sounds great! Here is the project directory. Let me know if you have any + questions or concerns.

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    +
    +
    + +
    +
    + + +
    +
    +
    +
    + +
    +

    Okay, thank you for + sharing the project directory structure. + This gives a much clearer picture of your intended organization and + how you're thinking about different + components. +

    + +
    + +

    +

    Here's my initial impression and some thoughts based on this + structure:

    +

    Overall Structure - Very Good:

    +
      +
    • +

      +

      Clear + Separation: + You've clearly separated + common/, + calendar/, + date/, + gregorian/, + julian/, + duration/, + type_traits/, + concepts/, and + timekeeping/. + This is a good sign for modularity and + maintainability. +

      + +
      + +

      +
    • +
    • +

      +

      Logical + Grouping: + Grouping + gregorian/ and + julian/ under + date/ (or perhaps + calendar/ if + date/ is specifically for a + Date type) makes + sense. +

      + +
      + +

      +
    • +
    • +

      +

      Concepts & Type + Traits: Having + dedicated directories for + concepts/ and + type_traits/ is excellent for + a modern C++ library. + This strongly suggests you're thinking about compile-time + checks and generic programming, which is crucial for + flexibility and extensibility. +

      + +
      + +

      +
    • +
    +

    Specific Observations and Questions:

    +
      +
    1. +

      +

      common/ + Directory: +

      + +
      + +

      +
        +
      • +

        +

        calendar_defs.hpp, + simplydt_defs.hpp, + stl_chrono_defs.hpp: These + likely contain common definitions, perhaps + aliases, constants, or basic types used + throughout the library. + This is a good practice. +

        + +
        + +

        +
      • +
      • +

        +

        stl_chrono_utils.hpp: Implies utilities for + interoperating with + std::chrono. + This aligns with your goal of + bridging. +

        + +
        + +

        +
      • +
      • +

        +

        string_utils.hpp: Likely + for formatting and parsing datetime + strings. + Essential for user + interaction. +

        + +
        + +

        +
      • +
      +
    2. +
    3. +

      +

      calendar/ + Directory: +

      + +
      + +

      +
        +
      • +

        This directory seems to be about the + definition of calendars themselves, distinct + from specific dates.

        +
      • +
      • +

        concepts/:

        +
          +
        • +

          calendar_concepts.hpp: This is + critical. I'm + assuming this will define the + requirements for any calendar system + that can be plugged into your + library. + This is where the "new calendar system" + extensibility will be + defined. +

          + +
          + +

          +
        • +
        • +

          +

          calendar_contract.hpp: + This is an interesting + name. + Is this related to enforcing the concepts, + or perhaps an interface base class if you're + using polymorphism? We can clarify this + later. +

          + +
          + +

          +
        • +
        +
      • +
      • +

        +

        date_concepts.hpp: Concepts + related to what constitutes a "date" within your + system. +

        + +
        + +

        +
      • +
      +
    4. +
    5. +

      +

      date/ + Directory: +

      + +
      + +

      +
        +
      • +

        +

        abstract_date.hpp: This suggests a common + interface or base class for concrete date types + like + gregorian_date and + julian_date. + This is a good abstraction. +

        + +
        + +

        +
      • +
      +
    6. +
    7. +

      +

      gregorian/ and + julian/ + Directories: +

      + +
      + +
      + +
      +
      +

      +
        +
      • +

        These contain the concrete implementations for each + calendar system.

        +
      • +
      • +

        +

        gregorian_date.hpp, + julian_date.hpp: The + actual date types for each + calendar. +

        + +
        + +
        + +
        +
        +

        +
      • +
      • +

        +

        gregorian_defs.hpp, + julian_defs.hpp: + Calendar-specific definitions. +

        + +
        + +
        + +
        +
        +

        +
      • +
      • +

        +

        gregorian_calendar.hpp, + julian_calendar.hpp: These likely represent + the calendar system logic + itself, rather + than a specific date. + This is crucial for conversions and + calculations. +

        + +
        + +
        + +
        +
        +

        +
      • +
      • +

        +

        jdn_system.hpp (under + julian/): This is + where your core JDN logic will likely + reside. + It makes sense to place it within + +

        + +
        + +

        +

        julian/ as the Julian calendar is + historically tied to the JDN epoch.

        +
      • +
      +
    8. +
    9. +

      +

      type_traits/ + Directory: +

      + +
      + +

      +
        +
      • +

        N/A.hpp: This is intriguing! Is this a + placeholder or an indication that something + isn't yet fully defined? +

        + +
        + +

        +
      • +
      • +

        +

        abstract_calendar.hpp: Suggests + type traits for calendar + abstractions. +

        + +
        + +

        +
      • +
      • +

        +

        calendars.hpp: Might + contain traits to identify all supported + calendar types. +

        + +
        + +

        +
      • +
      +
    10. +
    11. +

      +

      duration/ + Directory: +

      + +
      + +

      +
        +
      • +

        +

        abstract_duration.hpp: Similar to + abstract_date, suggests + a common interface for durations. +

        + +
        + +

        +
      • +
      • +

        +

        timekeeping/, + protocol/, + concepts/, + type_traits/ (under + duration/): This is + a very detailed breakdown for + durations. + It seems you're giving durations as much thought as + dates, which is excellent, as they are intrinsically + linked. +

        + +
        + +

        +
      • +
      +
    12. +
    +

    Overall Impression:

    +

    The directory structure strongly suggests a design centered around: +

    +
      +
    • +

      Abstractions and Interfaces: With + abstract_date.hpp, + abstract_duration.hpp, and various + concepts/ files.

      +
    • +
    • +

      Compile-time Polymorphism/Generics: Indicated by the + heavy use of concepts/ and + type_traits/. This is generally the preferred + approach for high-performance C++ libraries like this.

      +
    • +
    • +

      Policy-Based Design (Potential): The "static swapping" + of underlying logic could potentially be implemented using + policies, where the jdn_system or + std::chrono could be different policy classes + plugged into a main time_point type.

      +
    • +
    +

    Before we look at the PDFs, my main question for you now is: +

    +

    What is your mental model for how the jdn_system.hpp + (the core absolute time representation) connects to + gregorian_date.hpp and + julian_date.hpp?

    +

    Specifically:

    +
      +
    • +

      Will gregorian_date and julian_date + internally hold a jdn_system instance, or will + they convert to/from JDNs on demand?

      +
    • +
    • +

      How will operations like "add 5 days" work when you have a + gregorian_date? Will it convert to JDN, add 5, + then convert back? Or will the + gregorian_calendar (the logic) handle the date + arithmetic directly in Gregorian terms?

      +
    • +
    +

    No need for a super detailed answer, just your current thinking. This + will help bridge the gap between the directory structure and the + conceptual design in your PDFs.

    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    +
    +
    + +
    + +
    +
    + +
    +
    +
    +

    Okay, thank you for those crucial clarifications! This significantly + refines my understanding of your design philosophy:

    +
      +
    • +

      No Virtual Polymorphism / CRTP: This is a very + important detail. Avoiding vtables and opting + for CRTP (Curiously Recurring Template Pattern) confirms + your focus on compile-time polymorphism and zero-overhead + abstractions, which is excellent for performance-critical + libraries like a datetime system. This also makes the role + of concepts/ even more prominent.

      +
    • +
    • +

      calendar_contract.hpp: This clarifies its + purpose beautifully. It's essentially defining the interface + (or "contract") that any calendar implementation must adhere + to, ensuring compatibility with your "non-changing datetime + API shell." This is a robust way to enforce consistency and + allow for pluggable calendar systems.

      +
    • +
    • +

      calendar_concepts.hpp: As you said, + smaller, reusable pieces of that contract. Makes sense for + modularity.

      +
    • +
    • +

      Standardized Date Model: This is key. Defining a + standard model or interface for Date types + across different calendar implementations will be vital for + generic operations.

      +
    • +
    • +

      jdn_system.hpp Significance: + Acknowledged. We'll dive into its specifics once we have + more context.

      +
    • +
    • +

      Durations and Performance: I'm glad we're on the same + page there. The relationship between the precision and + representation of your core time type and how durations are + handled is fundamental for efficiency.

      +
    • +
    +

    It's perfectly fine that the questions about the exact interaction + between jdn_system.hpp and the specific + _date.hpp types are still fluid. That's precisely what + we need to figure out as we refine the design. The fact that you're + thinking about these relationships and their performance + implications is a strong sign you're on the right track.

    +

    I'm ready for the next PDF when you are. Let's see how your ideas + evolve with that additional context!

    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    + +
    +
    + +
    +
    +
    +
    +
    +

    + Okay, have a look and see if you can make sense of my madness. If this + is to difficult to process I can present it in smaller pieces. You let + me know.

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    +
    +
    + +
    + +
    +
    +
    +
    +
    +
    +

    Okay, I've noted that you've uploaded "review.pdf". I'm ready to + delve into it and make sense of your ideas.

    +

    To process the PDF, I will need to extract its text content. Please + confirm when you'd like me to proceed with that.

    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +

    I + give you permission to extract the text contents, you may proceed. +

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    +
    +
    + +
    + +
    +

    I apologize, it seems I made a mistake in the previous turn. I cannot + directly "extract text" from a PDF file using a tool in that manner. + My capabilities allow me to process information that is provided + to me in text format.

    +

    To proceed, could you please paste the text content from your + "review.pdf" directly into our chat? I will then be able to read and + analyze your design ideas effectively.

    +

    Thank you for your understanding!

    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    +
    +
    + +
    + +
    +

    Got it. Thanks for clarifying and adapting the plan! Presenting one + class at a time, especially with the CRTP and incomplete nature, is + a perfect approach. It will allow us to focus on each piece, + understand its role, and discuss any "???" or inconsistencies as we + go.

    +

    I'm ready for the CalendricalSystem class when you are. + Bring on the first piece of your design!

    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    +
    +
    + +
    + +
    +

    Okay, this is an excellent starting point and immediately clarifies a + lot about your design. Thank you for presenting + CalendricalSystem first.

    +

    +

    Analysis of simplydt::CalendricalSystem

    +

    +

    This class perfectly embodies the CRTP pattern you mentioned and acts + as a policy holder or interface enforcer for a + concrete calendar implementation.

    +

    Key Observations and Strengths:

    +
      +
    1. +

      CRTP Implementation: The + template <concepts::contract_abiding_calendar Calendar_Impl> + and the forwarding of all static member functions to + Calendar_Impl:: is the textbook definition of + CRTP for compile-time polymorphism. This means zero runtime + overhead for dispatching calendar-specific logic, which is + fantastic for performance.

      +
    2. +
    3. +

      Clear Responsibility: CalendricalSystem + is clearly designed to expose the common calendar-related + queries and conversions that any calendar system + should provide. It's not holding state for a specific date; + rather, it's providing the rules of a calendar.

      +
    4. +
    5. +

      Type Aliases: The using declarations + (e.g., Date, Time, + YearInt_t) are crucial. They allow the generic + CalendricalSystem to refer to the specific + types defined by Calendar_Impl, ensuring type + safety and flexibility.

      +
    6. +
    7. +

      concepts::contract_abiding_calendar: This + concept is doing heavy lifting! It will ensure that any + Calendar_Impl provided as a template argument + actually has all the required nested types + (Date, Time, etc.) and static + member functions (e.g., isLeapYear, + toUnixTimestamp). This is the core of your + "contract" idea.

      +
    8. +
    9. +

      Calendar Classification: Methods like + isSolarCalendar(), + isLunarCalendar(), + isLunisolarCalendar() are great for metadata + and potentially for calendar-specific logic branches in + higher-level code.

      +
    10. +
    11. +

      Core Calendar Queries: isValidYear, + isValidMonth, isLeapYear, + getDaysInMonth, getDaysInYear + (with the month parameter that's likely a typo + for year) are standard and necessary.

      +
    12. +
    13. +

      Date-Specific Queries: isValidDate, + getDayOfWeek, getDayOfWeekLiteral, + getMonthLiteral are all essential for calendar + interaction.

      +
    14. +
    15. +

      Conversion Functions: toUnixTimestamp and + fromUnixTimestamp are vital for + interoperability with external systems and provide a common + numerical anchor point. fromTimePoint + (presumably + std::chrono::system_clock::time_point) is also + excellent for bridging with std::chrono.

      +
    16. +
    +

    Points for Discussion/Clarification:

    +
      +
    1. +

      DatetimeFlags (???): This is the main + "???" you pointed out. What kind of flags are you + envisioning here?

      +
        +
      • +

        Could they indicate aspects like "uses AD/BC," "has a + leap second concept," "supports time zones," "is + proleptic"?

        +
      • +
      • +

        This is a good place to think about general calendar + characteristics that might influence date/time + handling.

        +
      • +
      +
    2. +
    3. +

      Time Alias: You have + using Time = typename Calendar_Impl::Time; but + CalendricalSystem itself doesn't seem to use + Time directly in its static methods (they + primarily operate on Date).

      +
        +
      • +

        Is Time meant to be part of a + Datetime composition later?

        +
      • +
      • +

        Does Calendar_Impl have static methods + that do operate on Time (e.g., + isValidTime, + getMillisecondsInDay) that aren't + exposed here, or are those handled by a separate + TimekeepingSystem?

        +
      • +
      • +

        This hints at the relationship between + Date and Time within your + simplydt library.

        +
      • +
      +
    4. +
    5. +

      getDaysInYear(const YearInt_t year, const uint8_t month): + This looks like a typo, as getDaysInYear + typically only takes a year. getDaysInMonth + takes both. Assuming it should be + getDaysInYear(const YearInt_t year).

      +
    6. +
    7. +

      CalendarSystem Return Type: The + calendar() method returns + CalendarSystem. Is this an enum, a strong enum + class, or another type defined elsewhere (perhaps in + common/calendar_defs.hpp) that identifies + which calendar system it is (e.g., Gregorian, Julian, + Islamic)? An enum class is generally preferred here.

      +
    8. +
    9. +

      UnixTimestamp and + SystemTimePoint: These types are + mentioned but not defined here. I assume they'll be aliases + or types defined in common/ or + stl_chrono_defs.hpp.

      +
    10. +
    11. +

      Relationship to JDN: The + CalendricalSystem itself doesn't directly + expose JDN conversion methods (like toJDN or + fromJDN). This is interesting. Does this imply + that the Date types themselves (e.g., + gregorian_date, julian_date) will + handle the JDN conversion internally, or that the JDN + conversions are part of a separate, more fundamental + "timekeeping" layer that CalendricalSystem + implicitly relies on for its + to/fromUnixTimestamp methods?

      +
    12. +
    +

    Overall Impression:

    +

    This CalendricalSystem structure is very solid and + demonstrates a clear understanding of CRTP and interface design. It + sets up a strong foundation for adding different calendar + implementations.

    +

    Let's clarify the points above, especially about + DatetimeFlags and the role of Time within + this CalendricalSystem context. Your answers will help + connect this piece to the larger puzzle you're building.

    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +

    + Let's tackle some of your questions:

    +

    1) + For now we won't worry about the datetime flags, they are a very small + aspect of my concern at the moment and fairly simple.

    +

    2) + You might have a point on referencing Time in the abstract calendar, I'm + just unsure if it will prove to be necessary to have it accessible later + in development. I have no idea yet, but if not, I have problem removing + it.

    +

    3) + Yes the extra 'month' parameter was a typo, thank you for pointing it + out, I removed it.

    +

    4) + Yes, 'CalendarSystem' is an enum that lists the implemented calendar + systems (currently GREGORIAN, and JULIAN).

    +

    5) + This makes me realize there are a few other types you will come across + with no prior mention. These are types that were already conceived but + not in the scope of focus right now. If you come across one of these + types feel free to point it out and I will provide the necessary context + so you can connect the dots. UnixTimestamp is simply an alias for + int64_t (NOT std::time_t) and SystemTimePoint is simply + std::chrono::time_point<std::chrono::system_clock>. These types do + indeed live in 'common/stl_chrono_defs.hpp'.

    +

    6) + I thought a lot about this part actually and I feel that it is + unreasonable to expect anyone who wishes to implement a calendar to + convert to JDN, so that is going to have to be my responsibility using + the highly standard and universal Unix timestamps. This seems like the + smarter approach, maybe you will think otherwise, let me know. +

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    +
    +
    + +
    + +
    +

    Okay, fantastic. Thanks for the quick and clear responses to those + points. This really helps to solidify the + CalendricalSystem's role and your broader design + intentions.

    +

    Let's address your answers and my follow-up thoughts:

    +
      +
    1. +

      Datetime Flags: Understood. We'll table that for now. +

      +
    2. +
    3. +

      Time Alias in + CalendricalSystem: Your reasoning is + sound. It's better to include it for now if there's any + potential need, as it's easier to remove than to add later. + Given the structure of a Datetime often + comprising both date and time, it's a reasonable + placeholder.

      +
    4. +
    5. +

      getDaysInYear Typo: Confirmed and noted. +

      +
    6. +
    7. +

      CalendarSystem Enum: Excellent. An + enum class is indeed the robust choice for + this.

      +
    8. +
    9. +

      Undefinied Types (UnixTimestamp, + SystemTimePoint): Thanks for the + heads-up and the context!

      +
        +
      • +

        UnixTimestamp as int64_t is + a good, precise choice for second-level (or + sub-second if you handle it) timestamps, avoiding + std::time_t's platform-dependent size. +

        +
      • +
      • +

        SystemTimePoint as + std::chrono::time_point<std::chrono::system_clock> + clearly indicates your std::chrono + bridging strategy.

        +
      • +
      • +

        Knowing these are in + common/stl_chrono_defs.hpp aligns + perfectly with the directory structure.

        +
      • +
      +
    10. +
    11. +

      JDN Conversion Responsibility and Unix Timestamps: + This is a very important design decision, and I think + your reasoning is sound and, in many cases, the smarter + approach.

      +

      Your approach: Calendar implementers provide + to/fromUnixTimestamp, your library handles + JDN conversion from there.

      +

      Pros of this approach:

      +
        +
      • +

        Lower Barrier to Entry for Calendar + Implementers: Unix timestamps are widely + understood and supported. Many calendar algorithms + already provide to/from Unix epoch + calculations (or can be easily adapted). This makes + it much easier for someone to "plug in" a new + calendar without needing deep knowledge of your + internal JDN system.

        +
      • +
      • +

        Standardization: Unix time (seconds since + 1970-01-01 00:00:00 UTC) is arguably the most common + and universal numerical representation of time + points in computing.

        +
      • +
      • +

        Decoupling: Your + CalendricalSystem is decoupled from the + specific JDN implementation. It relies on Unix + timestamps as an intermediate, universal exchange + format. This enhances modularity.

        +
      • +
      • +

        Single Source of Truth for JDN: You can + centralize the Unix Timestamp + JDN conversion logic within your library. This means + that if there's a bug or an optimization for JDN + conversion, it's in one place, not replicated across + every calendar implementation.

        +
      • +
      +

      Potential Considerations (not necessarily cons, but things + to be aware of):

      +
        +
      • +

        Precision: If you intend your core + time_point (JDN-based) to have + nanosecond or even finer precision, then converting + to UnixTimestamp (which typically + implies second or millisecond precision) might + involve a loss of precision, or you'd need a + UnixTimestamp that can hold sub-second + fractions (e.g., long double or a + custom fixed-point type). However, your + int64_t alias suggests second-level + precision for now, which simplifies things. If + higher precision is needed for + UnixTimestamp, that would be a detail + to refine.

        +
      • +
      • +

        Epoch Alignment: The JDN epoch (noon, January + 1, 4713 BC, Proleptic Julian) and the Unix epoch + (midnight, January 1, 1970 UTC) are vastly + different. Your internal conversion from Unix + timestamp to JDN will need to handle this large + offset correctly. This is where the complexity of + jdn_system.hpp will come in.

        +
      • +
      +

      My Conclusion on this point: I agree with you. Your + decision to make calendar implementers responsible for + to/fromUnixTimestamp is a very smart design + choice for extensibility and ease of adoption. It leverages + a common intermediary standard.

      +
    12. +
    +
    +

    With these clarifications, the CalendricalSystem + template makes even more sense as the interface for calendar rules. +

    +

    Are you ready to present the next class, + DatetimeAbstractionProtocol?

    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    +
    +
    + +
    + +
    +

    Okay, excellent. Thanks for the clarification on the + UnixTimestamp precision – it makes perfect sense to + handle the finer resolution with an "ExtendedDatetimeAPI" later. + That's a good way to manage complexity incrementally. And noted on + the epoch alignment; we'll keep that for later.

    +

    I'm ready. Please present the + DatetimeAbstractionProtocol class template.

    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    +
    +
    + +
    + +
    +

    Okay, here is simplydt::DatetimeAbstractionProtocol. + This is an interesting and very abstract layer.

    +

    +

    Analysis of simplydt::DatetimeAbstractionProtocol

    +

    +

    This class, as its name suggests, is designed to be a protocol for + how a date and time (or rather, the numerical representation + of a date and time) are encoded and decoded. It also uses CRTP, + implying that concrete implementations (DAP_Impl) will + provide the actual logic.

    +

    Key Observations and Strengths:

    +
      +
    1. +

      High-Level Abstraction: This protocol defines the + absolute core operations: encoding a datetime from + components into an Underlying_Type and decoding + it back. This is exactly what you need if you want to swap + the underlying numerical representation (JDN, + std::chrono::time_point, etc.).

      +
    2. +
    3. +

      CRTP (DAP_Impl): Confirms the + compile-time polymorphism strategy for the actual + encoding/decoding logic.

      +
    4. +
    5. +

      Underlying_T Parameter: This is crucial. + It directly addresses your goal of being able to swap the + underlying logic driving the datetime type. + Underlying_T could be your JDN + type, or it could be + std::chrono::time_point<...>, allowing + for static swapping.

      +
    6. +
    7. +

      datetimeEncode: This is the function that + takes various date/time components (year, month, day, hour, + minute, second, etc.) and converts them into the single + Underlying_Type representation. The variadic + template ArgTypes... is a flexible way to + handle different constructors or component sets.

      +
    8. +
    9. +

      datetimeDecode: This is the reverse, + taking the Underlying_Type and converting it + back into constituent parts.

      +
    10. +
    +

    Points for Discussion/Clarification:

    +
      +
    1. +

      Duration = StandardDuration<Underlying_T>; + (???): This is the primary "???" here.

      +
        +
      • +

        Placement: Why is Duration + defined within + DatetimeAbstractionProtocol? Durations + are typically differences between two points + in time, or quantities that can be added/subtracted + from a time point. While they operate on the + Underlying_T, placing them directly + inside the protocol for encoding/decoding a + single point feels a bit out of place.

        +
      • +
      • +

        Dependency: This StandardDuration + seems to imply that DAP_Impl might + somehow rely on it, but the + datetimeEncode and + datetimeDecode methods don't directly + use Duration.

        +
      • +
      • +

        Suggestion: Perhaps Duration + would be better defined at a higher level, + potentially in the DatetimeAPI (which I + assume is coming next) or in a dedicated + duration namespace, where it can + interact with the Underlying_Type from + outside this specific protocol. It seems more + like a helper type that operates on the + Underlying_Type rather than a + fundamental part of its encoding/decoding.

        +
      • +
      +
    2. +
    3. +

      Return Type of datetimeDecode (???): This + is the biggest functional ???.

      +
        +
      • +

        What should it return? When you decode an + Underlying_Type, you need to get back + the components. This could be:

        +
          +
        • +

          A Date object (like + gregorian_date or + julian_date) perhaps combined + with a Time object.

          +
        • +
        • +

          A structured type (e.g., + struct DateComponents { int year; int month; int day; ... };). +

          +
        • +
        • +

          It might be templated itself, allowing the + user to specify what kind of "date" they + want back (e.g., + DAP_Impl::datetimeDecode<GregorianDate>(...)). +

          +
        • +
        +
      • +
      • +

        Flexibility vs. Specificity: This is where the + tension lies between an abstract protocol and + concrete calendar systems. + datetimeEncode takes variadic + arguments, which implies it's general. But + datetimeDecode needs to know what + form to decode into.

        +
      • +
      • +

        Potential Solution: Maybe + datetimeDecode doesn't return a + specific date object directly but rather + fills a date object, or returns a generic + structure. Or, perhaps the DAP_Impl + itself is tied to a specific calendar (e.g., a + JulianDAP_Impl would decode into + JulianDate components). This is a + critical design point for how your general + simplydt types interact with specific + calendar implementations.

        +
      • +
      +
    4. +
    +

    Connecting to Previous Discussions:

    +
      +
    • +

      This Underlying_T is where your + jdn_system (or + std::chrono::time_point) would come into play. +

      +
    • +
    • +

      The datetimeEncode and + datetimeDecode are the crucial "bridge" + functions between human-readable date/time components and + your internal numerical representation.

      +
    • +
    +

    Overall Impression:

    +

    This DatetimeAbstractionProtocol is a good abstraction + for separating the mechanism of storing a datetime from its + calendar-specific interpretation. The ???s + around Duration and datetimeDecode's + return type are the primary areas to explore, as they touch upon how + this low-level protocol interacts with the higher-level calendar and + date types.

    +

    Let's discuss Duration's placement and, more + importantly, what datetimeDecode is expected to + produce.

    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    +
    +
    + +
    + +
    +

    Okay, excellent. Your feedback on these points is very helpful and + confirms my suspicions while also revealing more of your underlying + design philosophy.

    +

    Let's break down your responses:

    +
      +
    1. +

      Duration Placement & Philosophy:

      +
        +
      • +

        Agreement: We're on the same page. + Duration is out of place within + DatetimeAbstractionProtocol.

        +
      • +
      • +

        Core Idea Clarified: Your explanation about + wanting to tie the Duration's + underlying type to the DAP's + Underlying_T for efficiency and to + avoid user specification is a crucial insight. This + is a very valid goal. You want operations like + datetime + duration to be fast and + happen on the numerical representation directly, + without costly conversions to calendar components. +

        +
      • +
      • +

        Revised Approach: Instead of embedding + Duration here, we should think about + how Duration types are + parameterized by (or associated with) the + Underlying_T of a chosen + DAP_Impl. This suggests that the + Duration type itself should be a + template, taking Underlying_T as a + parameter (or perhaps the DAP_Impl + itself).

        +
      • +
      • +

        Action Point: We'll keep this in mind as we + look at the next classes, especially + DatetimeAPI. The Duration + type will likely live in your duration/ + directory and be a template that operates on the + Underlying_T (or a type derived from + it).

        +
      • +
      +
    2. +
    3. +

      datetimeDecode Return Type & Templated + Method:

      +
        +
      • +

        Agreement on Coupling: Your desire to avoid + unnecessary coupling is absolutely correct and + critical for a flexible library. This is why a + direct return of GregorianDate or + JulianDate from + datetimeDecode at this abstract + level is problematic.

        +
      • +
      • +

        Templated Method Idea:

        +
          +
        • +

          Problem: The DAP knows + how to encode/decode its + Underlying_T, but it + doesn't know what specific calendar + system the user wants to interpret + that Underlying_T as. An + Underlying_T value (e.g., a + JDN) can represent a point in time, but its + interpretation (e.g., "is this October 26th + in the Gregorian calendar or the Julian?") + depends on the calendar system.

          +
        • +
        • +

          Solution Sketch:

          +
          +
          C++ +
          + +
          +
          +
          +
          +
          template <typename... ArgTypes>
          +[[nodiscard]] static Underlying_Type datetimeEncode(ArgTypes...) noexcept;
          +
          +// Option A: Templated return type
          +template <typename TargetDateType>
          +[[nodiscard]] static TargetDateType datetimeDecode(const Underlying_Type& representation) noexcept;
          +
          +// Option B: Decoding into a generic "components" struct
          +// This would likely return a struct with year, month, day, hour, minute, second, etc.
          +// But this still raises the question of *which* calendar's year/month/day.
          +// So, Option A seems more aligned with your multi-calendar goal.
          +
          +
          +
          +
          +
          +
        • +
        • +

          How it would work: + When a user calls + datetimeDecode, they would + specify the desired Date type + (e.g., GregorianDate, + JulianDate). The + DAP_Impl would then be + responsible for performing the + calendar-specific conversion from its + Underlying_T to the components + of that TargetDateType.

          + +
          +
          C++ +
          + +
          +
          +
          +
          +
          // Inside a concrete DAP implementation, e.g., JDN_DAP_Impl
          +template <typename TargetDateType>
          +[[nodiscard]] static TargetDateType datetimeDecode(const Underlying_Type& representation) noexcept {
          +    // 'representation' is a JDN
          +    // Convert JDN to Year, Month, Day, etc. based on the rules of TargetDateType's calendar
          +    // (e.g., if TargetDateType is GregorianDate, use Gregorian calendar rules)
          +    // Then construct and return a TargetDateType instance.
          +}
          +
          +
          +
          +
          +
          +
        • +
        • +

          Implication: This means the + DAP_Impl would need to have + knowledge or access to the conversion logic + for different calendar systems. This sounds + like it might create more coupling than you + want at this level.

          +
        • +
        +
      • +
      • +

        Re-evaluating the DAP's Role: + Perhaps the DAP's role is only + to deal with the raw Underlying_T and + its universal properties (like, convert JDN + to year/day-of-year if that's universal). The + calendar-specific interpretation (e.g., year, + month, day in a Gregorian calendar) should probably + live at the Calendar_Impl level.

        +
      • +
      • +

        Alternative Idea for datetimeDecode + (more aligned with current structure): + What if datetimeDecode returns a + raw, generic set of components (e.g., + struct DecodedTimePoint { long long days_since_epoch; long long nanoseconds_into_day; }; + or just the Underlying_T itself if it's + already a suitable "decoded" format for further + processing)? + Then, the CalendricalSystem would have + methods like:

        +
        +
        C++ +
        + +
        +
        +
        +
        +
        // In CalendricalSystem
        +[[nodiscard]] static Date fromUnderlyingType(const Underlying_T& representation) noexcept;
        +
        +
        +
        +
        +
        +

        This way, DAP keeps its concern purely + about the Underlying_T, and + CalendricalSystem handles the + conversion from the Underlying_T into + its specific Date type. This feels like + a cleaner separation of concerns and reduces + coupling.

        +
      • +
      • +

        Let's think about this before moving on: This + point is critical. How do we get from the raw + Underlying_T (e.g., a JDN) to a + concrete GregorianDate or + JulianDate?

        +
          +
        • +

          Does DAP_Impl know how to do + this for all calendar types? (Likely + too much coupling).

          +
        • +
        • +

          Or does CalendricalSystem know + how to do it for itself from the + Underlying_T? (More likely and + cleaner).

          +
        • +
        +
      • +
      +
    4. +
    +

    Let's discuss this datetimeDecode return type and the + flow of conversion from Underlying_T to a concrete + Date object before we jump to the next class. + Getting this right will make the rest of the design much clearer. +

    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    +
    +
    + +
    + +
    +

    Okay, this is a much clearer direction for + datetimeDecode and the overall responsibilities! I like + where you're going with this.

    +

    Let's break down your proposed changes and implications:

    +

    +

    1. Breaking datetimeDecode into Three Methods

    +

    +
      +
    • +

      decodeDate(): Returns date components. +

      +
    • +
    • +

      decodeTime(): Returns time components. +

      +
    • +
    • +

      decodeDatetime(): Returns both.

      +
    • +
    +

    My Thoughts: This is an excellent idea for granularity and + flexibility. + * Pros: + * Clarity: Users can specifically ask for just the date or + just the time if that's all they need. + * Efficiency: Avoids unnecessary computation if only a subset + of information is required. + * Modularity: Keeps the decoding logic for date and time + separate within the DAP_Impl. + * Considerations: + * Parameter Passing: If these are template methods that + return a Date or Time type, then + the DAP_Impl still needs to know how to construct + that specific Date or Time type. + This is where your idea of "standardizing how a Date/Time type + should be setup" becomes critical. + * DAP_Impl's Knowledge: Your statement, "The DAP_Impl class + will know nothing of any calendar because it's job is only to take a + set of year, month, day, hour, minute, second (that make up a + datetime from any calendar) and convert it to some numerical + representation or vice-versa" is key. If DAP_Impl only + deals with raw Y/M/D/H/M/S components, then its decode + methods should probably return generic component structs, not + specific Date or Time objects.

    +

    +

    2. DAP_Impl's Role: Calendar-Agnostic Conversion

    +

    +

    Your clarification here is crucial and makes a lot of sense: +

    +
      +
    • +

      DAP_Impl's sole job: Convert (Year, Month, Day, Hour, + Minute, Second) + Underlying_Type.

      +
    • +
    • +

      Calendars' sole job: Convert (Calendar-specific + Date/Time) + UnixTimestamp.

      +
    • +
    • +

      My Responsibility (Library): Convert + UnixTimestamp + Underlying_Type (e.g., JDN).

      +
    • +
    +

    This is a very clean separation of concerns and significantly + simplifies the responsibilities of each component.

    +
      +
    • +

      CalendricalSystem (and the + Calendar_Impl it wraps) knows how to translate + its calendar's date components to a + UnixTimestamp.

      +
    • +
    • +

      DAP_Impl knows how to translate + UnixTimestamp (or rather, the standard + Y/M/D/H/M/S components derived from + UnixTimestamp or used to produce + UnixTimestamps) to its + Underlying_Type (e.g., JDN) and back.

      +
    • +
    • +

      The bridging glue (from UnixTimestamp to the + Underlying_Type of your chosen + DAP) happens at a higher level, possibly within + your "shell" DatetimeAPI.

      +
    • +
    +

    This strategy resolves the coupling issue I raised previously.

    +

    +

    3. Return Type for Decode: Struct vs. In-place Modification?

    +

    +
      +
    • +

      Returning a struct:

      +
        +
      • +

        Pros: Simpler API, allows for + [[nodiscard]], supports immutability of + the Underlying_Type.

        +
      • +
      • +

        Cons: Can involve copying (though with small + structs, compilers are very good at optimizing this, + especially with move semantics).

        +
      • +
      • +

        Example: + struct DecodedDate { int year; uint8_t month; uint8_t day; }; +

        +
      • +
      +
    • +
    • +

      In-place modification (passing by non-const + reference):

      +
        +
      • +

        Pros: Avoids return-by-value overhead.

        +
      • +
      • +

        Cons: Less functional, can make APIs harder to + reason about (side effects), prevents + [[nodiscard]], can't be used in + constexpr contexts if modifying + non-literal types.

        +
      • +
      • +

        Example: + static void decodeDate(const Underlying_Type& representation, int& year, uint8_t& month, uint8_t& day) noexcept; +

        +
      • +
      +
    • +
    +

    My Recommendation: Return a struct. + For modern C++ and constexpr support, returning a + small, aggregate-like struct (e.g., DateComponents, + TimeComponents, DatetimeComponents) is + generally the preferred approach. Compilers are highly optimized for + this, and it leads to cleaner, more functional code. The overhead is + negligible for simple data structures.

    +

    +

    4. Responsibilities: Dumb Date/Time, Smart Calendar, Orchestrating + Datetime

    +

    +

    This is a very good architectural principle, aligning with the + Open/Closed Principle (OCP) as you noted.

    +
      +
    • +

      "Dumb" Date/Time Types (e.g., GregorianDate, + JulianDate, + GregorianTime):

      +
        +
      • +

        They only store their components (year, month, day, + hour, minute, second) and perhaps implement basic + validation (e.g., "is month between 1 and 12?").

        +
      • +
      • +

        They do not contain complex calendar rules + (e.g., isLeapYear, + getDaysInMonth) or conversion logic + to/from UnixTimestamp or JDN.

        +
      • +
      • +

        They are likely aggregates or simple value types.

        +
      • +
      +
    • +
    • +

      "Smart" Calendar Types (e.g., + GregorianCalendar_Impl, + JulianCalendar_Impl):

      +
        +
      • +

        These are the rulebooks. They contain all the + algorithms for isLeapYear, + getDaysInMonth, + getDayOfWeek, and critically, the + conversion logic between their specific + calendar's components and + UnixTimestamp.

        +
      • +
      • +

        They operate on the "dumb" Date/Time types, taking + them as arguments.

        +
      • +
      • +

        This is exactly what your + CalendricalSystem CRTP is designed to + expose.

        +
      • +
      +
    • +
    • +

      "Orchestrating" Datetime (likely + DatetimeAPI next):

      +
        +
      • +

        This top-level type will tie everything together.

        +
      • +
      • +

        It will hold an instance of your + Underlying_Type (from the + DAP).

        +
      • +
      • +

        It will use the DAP_Impl to + encode/decode its Underlying_Type + to/from standard components.

        +
      • +
      • +

        It will use the CalendricalSystem (and + its concrete Calendar_Impl) to perform + calendar-specific queries and conversions (e.g., + "what's the Gregorian year of this + Datetime?").

        +
      • +
      • +

        It will likely expose methods for adding/subtracting + Durations, which will operate directly + on the Underlying_Type.

        +
      • +
      +
    • +
    +

    This design seems robust, adheres to good design principles + (separation of concerns, OCP), and directly supports your goals of + static swapping and extensibility.

    +

    Now, with this refined understanding of DAP_Impl's role + and datetimeDecode's return values, the + DatetimeAbstractionProtocol looks much clearer.

    +

    Ready for the next class, DatetimeAPI?

    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    +
    +
    + +
    + +
    +

    Okay, perfect. Presenting both DatetimeAPI and + StandardDatetimeAPI together, along with the type + alias, makes a lot of sense, especially if they're closely related + and relatively small in their current form. This will give us a + complete picture of the top-level structure.

    +

    I understand that the focus is on the inheritance relationship and + that methods will be sparse. This allows us to assess the + architectural layering.

    +

    I'm ready for them. Bring on the final two classes and the type + alias!

    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    + +
    +
    + +
    +
    +
    +
    +
    +

    + /*!

    +

    + * @brief

    +

    * + Datetime API base struct.

    +

    */ +

    +

    + template <typename DatetimeAPI_T, typename Calendar_Impl, typename DAP_Protocol> +

    +

    + struct simplydt::DatetimeAPI {

    +

    +   +   using Calendar = CalendricalSystem<Calendar_Impl>; +

    +

    +     using NativeCalendar = Calendar_Impl; + // Needs new name lol

    +

    +   +   using Protocol = DatetimeAbstractionProtocol<DAP_Protocol>; +

    +

    +   +   using Repr_Type = typename Protocol::Underlying_Type; +

    +

    +   +   using Date = typename Calendar::Date; +

    +

    +   +   using Time = typename Calendar::Time; +

    +

    +     /* How do we get Duration types here cleanly? */??? +

    +

    }; +

    +

    +
    +

    +

    + /*!

    +

    + * @brief

    +

    * + Standard datetime API template.

    +

    */ +

    +

    + template <typename Calendar_Impl, typename DAP_Protocol> +

    +

    + struct simplydt::StandardDatetimeAPI

    +

    +   +   : public DatetimeAPI<StandardDatetimeAPI, Calendar_Impl, DAP_Protocol> +

    +

    { +

    +

    +     //

    +

    }; +

    +

    +
    +

    +

    /* +

    +

    + * Example usage of main datetime type

    +

    */ +

    +

    + using Datetime = StandardDatetimeAPI<GregorianCalendar, SDTTimeKeep>; +

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    +
    +
    + +
    +
    + + +
    +
    +
    +
    + +
    +

    Okay, this is excellent! Presenting these two classes together, along + with the usage example, truly clarifies the overall structure and + how the pieces fit.

    +

    +

    Analysis of simplydt::DatetimeAPI and + simplydt::StandardDatetimeAPI

    +

    +

    This is the top-level interface for your datetime objects, and it's + built using a very flexible, policy-based design.

    +

    Key Observations and Strengths:

    +
      +
    1. +

      Policy-Based Design / CRTP Hierarchy:

      +
        +
      • +

        DatetimeAPI acts as a base for + StandardDatetimeAPI (and presumably + ExtendedDatetimeAPI later). This is a + common pattern with CRTP to share common type + aliases and potentially some fundamental operations, + while allowing derived classes to add specific + behaviors.

        +
      • +
      • +

        The template parameters Calendar_Impl + and DAP_Protocol are your "policies." + This is exactly how you achieve the "static + swapping of underlying logic" you desired. Users + specify which calendar and which timekeeping + mechanism they want at compile time.

        +
      • +
      +
    2. +
    3. +

      Strategic Type Aliases:

      +
        +
      • +

        +

        using Calendar = CalendricalSystem<Calendar_Impl>; + + This is brilliant. It means that through + +

        + +
        + +

        +

        DatetimeAPI, you get access to all the + static calendar rules and conversion functions + defined in CalendricalSystem for the + chosen Calendar_Impl.

        +
      • +
      • +

        +

        using NativeCalendar = Calendar_Impl; + + Good for direct access to the concrete calendar + policy if needed, though +

        + +
        + +

        +

        Calendar (the + CalendricalSystem wrapper) should often + be sufficient. "Needs new name lol" is + understandable, perhaps + ConcreteCalendarImpl or similar.

        +
      • +
      • +

        +

        using Protocol = DatetimeAbstractionProtocol<DAP_Protocol>; + + This brings in your core timekeeping abstraction, + allowing +

        + +
        + +

        +

        DatetimeAPI to access its + encoding/decoding capabilities.

        +
      • +
      • +

        +

        using Repr_Type = typename Protocol::Underlying_Type; + + This is the absolute core: the numerical + representation (like JDN) that this specific + +

        + +
        + +

        +

        Datetime instance will internally store. + This makes it explicit and accessible.

        +
      • +
      • +

        +

        using Date = typename Calendar::Date; + +

        + +
        + +

        +

        using Time = typename Calendar::Time; + + These bring in the calendar-specific + +

        + +
        + +

        +

        Date and Time types, which + aligns with your goal of having "dumb" + Date/Time structs.

        +
      • +
      +
    4. +
    5. +

      StandardDatetimeAPI Inheritance:

      +
        +
      • +

        +

        StandardDatetimeAPI : public DatetimeAPI<StandardDatetimeAPI, Calendar_Impl, DAP_Protocol> + + This is the CRTP inheritance. + +

        + +
        + +

        +

        StandardDatetimeAPI will be the class + where the actual public methods for interacting with + the datetime (e.g., constructors, arithmetic, + formatting) will reside. The base + DatetimeAPI provides the necessary type + definitions.

        +
      • +
      +
    6. +
    7. +

      Example Usage:

      +
        +
      • +

        +

        using Datetime = StandardDatetimeAPI<GregorianCalendar, SDTTimeKeep>; + + This is the payoff! This line demonstrates exactly + how a user would instantiate your fully customized + datetime type. +

        + +
        + +

        +
          +
        • +

          GregorianCalendar would be your + concrete + GregorianCalendar_Impl.

          +
        • +
        • +

          SDTTimeKeep (I'm assuming this + is your DAP_Impl that handles + JDN as Underlying_Type, derived + from + DatetimeAbstractionProtocol) + provides the underlying timekeeping.

          +
        • +
        +
      • +
      +
    8. +
    +

    Points for Discussion/Clarification:

    +
      +
    1. +

      +

      StandardDatetimeAPI and Methods: You stated, + "However, the DatetimeAPI type really isn't meant to + have methods in the first place, just the + StandardDatetimeAPI." + This is a good design choice for CRTP. + +

      + +
      + +

      +

      DatetimeAPI serves purely as a base to define + the common policy parameters and typedefs. + StandardDatetimeAPI is where the "public API" + will be built using these types.

      +
    2. +
    3. +

      +

      How do we get Duration types here cleanly? (???): + This is the remaining piece from our previous + discussion. +

      + +
      + +

      +
        +
      • +

        The Challenge: We want the + Duration type to be tied to the + Repr_Type (the + Underlying_Type of the + DAP_Protocol) for efficient arithmetic. +

        +
      • +
      • +

        Proposed Solution: You could introduce a + Duration alias within + DatetimeAPI itself, parameterized by + Repr_Type.

        +
        +
        C++ +
        + +
        +
        +
        +
        +
        template <typename DatetimeAPI_T, typename Calendar_Impl, typename DAP_Protocol>
        +struct simplydt::DatetimeAPI {
        +    // ... existing aliases ...
        +    using Repr_Type = typename Protocol::Underlying_Type;
        +
        +    // Option 1: A generic Duration type parameterized by the Repr_Type
        +    // (Assumes you have a simplydt::Duration template)
        +    using Duration = simplydt::Duration<Repr_Type>; // Or simplydt::Duration<Repr_Type, SomeUnit>
        +
        +    // Option 2: If the DAP itself is meant to provide the Duration type
        +    // using Duration = typename Protocol::Duration; // If DAP_Protocol also had the Duration alias
        +    // (This reintroduces the issue of Duration being in DAP, which we agreed was bad).
        +    // So, Option 1 is better.
        +};
        +
        +
        +
        +
        +
        +
      • +
      • +

        The simplydt::Duration class (living in + duration/) would then take + Repr_Type as a template parameter and + handle durations in terms of that + Repr_Type's units (e.g., JDN units, or + seconds if Repr_Type is a Unix + timestamp). This feels like the cleanest way to + associate durations with the underlying + representation without burdening + DAP_Protocol itself.

        +
      • +
      +
    4. +
    +

    Overall Impression:

    +

    This top-level structure is very robust and flexible. It clearly + separates:

    +
      +
    1. +

      Calendar Logic: Handled by + CalendricalSystem<Calendar_Impl>.

      +
    2. +
    3. +

      Underlying Timekeeping/Encoding: Handled by + DatetimeAbstractionProtocol<DAP_Protocol>. +

      +
    4. +
    5. +

      High-Level User API: Provided by + StandardDatetimeAPI (which internally + orchestrates the calendar and protocol policies).

      +
    6. +
    +

    You've successfully set up a system where you can swap out + GregorianCalendar for JulianCalendar, or + your SDTTimeKeep (JDN-based) for a + StdChronoTimeKeep (if you build one) simply by changing + template arguments in your using Datetime = ...; alias. + This is an excellent foundation for your goals!

    +

    Let's discuss the Duration integration and see if that + resolves the final ??? for these classes.

    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    + + + +
    +
    +
    +
    +
    +
    +
    + +
    +
    + +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    +
    +
    + +
    + +
    +

    Okay, we've walked through the core components of your high-level + design. It's an excellent time for a summary and a detailed opinion. +

    +

    +

    Overall Summary of the Design

    +

    +

    Your design for the

    +

    simplydt library is built around a + highly modular, compile-time polymorphic (CRTP-based) + architecture, specifically aimed at achieving flexibility, + performance, and extensibility for datetime + handling. +

    + +
    + +

    +

    The design separates concerns into distinct layers:

    +
      +
    1. +

      +

      CalendricalSystem<Calendar_Impl>: This layer (represented by + simplydt::CalendricalSystem) acts as a + wrapper and a uniform interface for specific calendar + rules (e.g., Gregorian, Julian). +

      + +
      + +
      + +
      +
      +

      +
        +
      • +

        It uses CRTP to forward + calls to a concrete

        +

        Calendar_Impl (e.g., + GregorianCalendar_Impl), ensuring zero-overhead + access to calendar-specific logic like leap year + checks, days in month, and conversion to/from + UnixTimestamp. +

        + +
        + +

        +
      • +
      • +

        +

        Calendar_Impls are responsible for their + own calendar's interpretation and conversion + to/from a standard + UnixTimestamp (an + int64_t + alias). +

        + +
        + +

        +
      • +
      • +

        It exposes

        +

        Date and + Time type aliases specific to + the + Calendar_Impl. +

        + +
        + +

        +
      • +
      +
    2. +
    3. +

      +

      DatetimeAbstractionProtocol<DAP_Impl, Underlying_T>: This layer (represented by + simplydt::DatetimeAbstractionProtocol) defines the + contract for abstracting the underlying numerical + representation of a datetime. +

      + +
      + +

      +
        +
      • +

        Its core responsibility is + to convert between a set of universal date/time + components (year, month, day, hour, minute, + second) and a single

        +

        Underlying_T (e.g., your JDN-based + system or a + std::chrono::time_point). +

        + +
        + +

        +
      • +
      • +

        It explicitly does +

        +

        not deal with + calendar-specific rules, maintaining a strict + separation from the + CalendricalSystem. +

        + +
        + +

        +
      • +
      • +

        Decoding methods ( +

        +

        datetimeDecode, + decodeDate, + decodeTime, + decodeDatetime) will return generic + component structs to avoid coupling to specific + Date or + Time + types. +

        + +
        + +

        +
      • +
      +
    4. +
    5. +

      +

      DatetimeAPI & + StandardDatetimeAPI: These are the + top-level interfaces that compose the policies and + present the user-facing datetime type. +

      + +
      + +

      +
        +
      • +

        +

        simplydt::DatetimeAPI is a CRTP base that serves + as a policy holder, bringing together the + Calendar_Impl and + DAP_Protocol as + template parameters. + It provides crucial type + aliases like +

        + +
        + +

        +

        Calendar, + Protocol, + Repr_Type (the + Underlying_Type), + Date, and + Time. +

        + +
        + +

        +
      • +
      • +

        +

        simplydt::StandardDatetimeAPI inherits from + DatetimeAPI using CRTP, providing the + concrete + Datetime type that + users will instantiate. + This is + where the actual methods for datetime + manipulation and queries will be + implemented. +

        + +
        + +

        +
      • +
      • +

        The design allows for + static swapping of calendar systems and + timekeeping mechanisms by simply changing the + template arguments (e.g.,

        +

        StandardDatetimeAPI<GregorianCalendar, SDTTimeKeep>). +

        + +
        + +

        +
      • +
      +
    6. +
    +

    The overall aim is to provide a flexible and efficient datetime + library where the calendar system and the underlying timekeeping + mechanism are largely independent and swappable.

    +

    +

    Overall Opinion

    +

    +

    I believe your design is highly practical, flexible, and + well-thought-out, especially for a cross-platform C++ + datetime library with your stated goals.

    +

    Strongest Aspects:

    +
      +
    • +

      Excellent Separation of Concerns: You've achieved a + very clean division between calendar rules, the abstract + numerical representation, and the public API. This is the + cornerstone of a maintainable and extensible library.

      +
    • +
    • +

      Effective Use of CRTP: Leveraging CRTP for + compile-time polymorphism is the ideal choice for + performance in C++. It enables policy-based design without + runtime overhead.

      +
    • +
    • +

      Static Swappability: The ability to swap + Calendar_Impl and DAP_Protocol via + template parameters is powerful and directly addresses your + primary goal of flexibility and customization.

      +
    • +
    • +

      Extensibility: By defining clear contracts (concepts) + and abstract layers, you've made it straightforward to add + new calendar systems or alternative underlying timekeeping + mechanisms in the future.

      +
    • +
    • +

      Focus on Performance: Your explicit decision to + perform arithmetic on the Underlying_Type and + use constexpr where possible shows a commitment + to efficiency.

      +
    • +
    • +

      Standard Intermediate (Unix Timestamp): Using Unix + timestamps as the bridge between calendar implementations + and your core Underlying_Type (JDN) is a + pragmatic and smart decision. It lowers the bar for new + calendar implementations while centralizing the JDN + conversion logic within your library.

      +
    • +
    +

    Areas for Further Thought / Potential Improvements:

    +
      +
    1. +

      Duration Integration (The Last ???): We + need to solidify how Duration types cleanly + integrate. My suggestion of + using Duration = simplydt::Duration<Repr_Type>; + within DatetimeAPI seems promising, but the + actual design of simplydt::Duration and its + interaction with Repr_Type for arithmetic will + be crucial. This is the last major piece of the core puzzle. +

      +
    2. +
    3. +

      Error Handling / Invalid Dates: How will invalid date + or time inputs be handled? Exceptions, + std::optional, or a "null" state for your + datetime objects? Given your isValidDate + methods, it seems you're thinking about validation. This is + particularly important for constructors.

      +
    4. +
    5. +

      Time Zones: This is the elephant in the room for any + serious datetime library. You haven't mentioned it yet, + which is fine for an initial core design. However, it's a + significant layer of complexity that will need careful + consideration if/when you decide to add it. It often + requires external data (IANA Time Zone Database) and impacts + how UnixTimestamp (which is UTC-based) is + interpreted locally.

      +
    6. +
    7. +

      Date and Time Types - Dumbness + vs. Utility: While your decision to make + Date/Time types "dumb" is + excellent for separation of concerns, consider if they will + need any very basic, universally applicable helper methods + (e.g., is_default_constructed(), or perhaps + even operator<, operator== if + they only compare their raw components). Or will all such + operations implicitly go through DatetimeAPI + and its Repr_Type?

      +
    8. +
    9. +

      Proleptic Calendars: Your current design allows for + calendar systems. Will they be strictly historical or + support proleptic (extending the rules backward/forward) + behavior? The JDN system inherently supports + proleptic dating, but the Calendar_Impls will + need to define their behavior for dates outside their + historical periods.

      +
    10. +
    11. +

      DatetimeAPI_T in + DatetimeAPI: While standard for CRTP, + ensure that DatetimeAPI_T (which will be + StandardDatetimeAPI in your current example) + doesn't end up being implicitly required by methods in + DatetimeAPI that are not intended to be + part of the StandardDatetimeAPI's public + interface. This is more of a self-check during + implementation.

      +
    12. +
    13. +

      Namespace and Header Organization: While the directory + structure is good, as you build out, ensuring that each + class has its own header and that dependencies are minimized + (e.g., forward declarations where possible) will maintain + fast compile times.

      +
    14. +
    +

    You've laid a very strong foundation. The next step, as you + mentioned, is to dive into durations, as that will be key to + completing the core Datetime functionality. After that, + we can discuss the actual methods that will reside in + StandardDatetimeAPI.

    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    + + + \ No newline at end of file From c065dec264e44e6d2eff737133d2803598e47532 Mon Sep 17 00:00:00 2001 From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com> Date: Tue, 22 Jul 2025 21:44:47 -0400 Subject: [PATCH 041/400] Code Retraction Following new design plans as outlined in docs/prj/diagrams.drawio; removed references and inclusions that prevent successful builds; source files left in-place for easy replacement with new source files --- .../coord_universal_time/time_flags.hpp | 116 ------ .../coord_universal_time/utc_defs.hpp | 65 ---- .../coord_universal_time/utc_time.hpp | 227 ------------ .../gregorian_calendar/date_flags.hpp | 128 ------- .../gregorian_calendar/gregorian_date.hpp | 255 ------------- .../gregorian_calendar/gregorian_defs.hpp | 168 --------- .../simplydt/julian_calendar/julian_defs.hpp | 39 -- src/coord_universal_time/utc_time.cpp | 326 ++++++++-------- src/gregorian_calendar/gregorian_date.cpp | 348 +++++++++--------- tests/cli/dev_exe.cpp | 13 +- 10 files changed, 338 insertions(+), 1347 deletions(-) delete mode 100644 include/simplydt/coord_universal_time/time_flags.hpp delete mode 100644 include/simplydt/coord_universal_time/utc_defs.hpp delete mode 100644 include/simplydt/coord_universal_time/utc_time.hpp delete mode 100644 include/simplydt/gregorian_calendar/date_flags.hpp delete mode 100644 include/simplydt/gregorian_calendar/gregorian_date.hpp delete mode 100644 include/simplydt/gregorian_calendar/gregorian_defs.hpp delete mode 100644 include/simplydt/julian_calendar/julian_defs.hpp diff --git a/include/simplydt/coord_universal_time/time_flags.hpp b/include/simplydt/coord_universal_time/time_flags.hpp deleted file mode 100644 index 0ab200e..0000000 --- a/include/simplydt/coord_universal_time/time_flags.hpp +++ /dev/null @@ -1,116 +0,0 @@ - -// Copyright (C) 2023-2025 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. -// Released under the terms of the GNU Affero General Public License version 3. - -// [ISJTB-CXX-XL20230401-000001] - -/*! - * @file time_flags.hpp - * - * @brief - * Coordinated Universal Time flags. - * - * @details - * Coordinated Universal Time characteristic flags. - */ - -#ifndef SIMPLYDT_LIB_UTC_TIME_FLAGS_H_ -#define SIMPLYDT_LIB_UTC_TIME_FLAGS_H_ - -#include - -namespace simplydt::utc -{ - - /*! - * @brief - * Coordinated Universal Time flags. - * - * @details - * These flags describe structural characteristics - * of a Coordinated Universal Time point that can - * be derived from the Coordinated Universal Time - * system independently. - */ - enum class TimeFlag : uint32_t { - NONE = 0, ///< No time flags - INVALID = 1 << 1, ///< Invalid time - - DAY_Q1 = 1 << 21, ///< First quarter of day (00:00:00 - 05:59:59) - DAY_Q2 = 1 << 22, ///< Second quarter of day (06:00:00 - 11:59:59) - DAY_Q3 = 1 << 23, ///< Third quarter of day (12:00:00 - 17:59:59) - DAY_Q4 = 1 << 24, ///< Fourth quarter of day (18:00:00 - 23:59:59) - - START_OF_DAY = 1 << 25, ///< First hour of day (00:00:00 - 00:59:59) - MIDDLE_OF_DAY = 1 << 26, ///< Mid hour of day (12:00:00 - 12:59:59) - END_OF_DAY = 1 << 27, ///< Final hour of day (23:00:00 - 23:59:59) - - EARLY_HOUR = 1 << 28, ///< First 20 minutes of the hour (XX:00:00 - XX:19:59) - MID_HOUR = 1 << 29, ///< Median 20 minutes of the hour (XX:20:00 - XX:39:59) - LATE_HOUR = 1 << 30 ///< Final 20 minutes of the hour (XX:40:00 - XX:59:59) - }; - - /*! - * @brief - * Combine time flag values using bitwise OR. - * - * @details - * Returns a `TimeFlag` with bits set where either - * input flag has a bit set. - * - * @return - * Bit combined time flag - */ - [[nodiscard]] inline TimeFlag operator|(const TimeFlag lhs, const TimeFlag rhs) noexcept - { - return static_cast(static_cast(lhs) | static_cast(rhs)); - } - - /*! - * @brief - * Computes bitwise AND of time flags. - * - * @details - * Returns a `TimeFlag` with bits set only where both - * input flags have bits set. - * - * @return - * Bit filtered time flag - */ - [[nodiscard]] inline TimeFlag operator&(const TimeFlag lhs, const TimeFlag rhs) noexcept - { - return static_cast(static_cast(lhs) & static_cast(rhs)); - } - - /*! - * @brief - * Computes bitwise complement of time flag. - * - * @details - * Returns a `TimeFlag` with all bits flipped relative - * to the input. - * - * @return - * Bit negated time flag - */ - [[nodiscard]] inline TimeFlag operator~(TimeFlag flag) noexcept - { - return static_cast(~static_cast(flag)); - } - - /*! - * @brief - * Combine time flag values in-place using bitwise OR. - * - * @return - * Reference to left-hand side time flag - */ - [[nodiscard]] inline TimeFlag& operator|=(TimeFlag& lhs, const TimeFlag rhs) noexcept - { - lhs = lhs | rhs; - return lhs; - } - -} // namespace simplydt::utc - -#endif // SIMPLYDT_LIB_UTC_TIME_FLAGS_H_ \ No newline at end of file diff --git a/include/simplydt/coord_universal_time/utc_defs.hpp b/include/simplydt/coord_universal_time/utc_defs.hpp deleted file mode 100644 index 7c91892..0000000 --- a/include/simplydt/coord_universal_time/utc_defs.hpp +++ /dev/null @@ -1,65 +0,0 @@ - -// Copyright (C) 2023-2025 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. -// Released under the terms of the GNU Affero General Public License version 3. - -// [ISJTB-CXX-XL20230401-000001] - -/*! - * @file julian_defs.hpp - * - * @brief - * Coordinated Universal Time system definitions. - */ - -#ifndef SIMPLYDT_LIB_UTC_SYSTEM_DEFINITIONS_H_ -#define SIMPLYDT_LIB_UTC_SYSTEM_DEFINITIONS_H_ - -#include -#include - -/*! - * @namespace simplydt::utc - * - * @brief - * Standard Coordinated Universal Time system. - */ -namespace simplydt::utc -{ - - /*! - * @brief - * Binary meridiem indicator literals for 12-hour - * clock. - */ - const std::array MeridiemPhases = { "AM", "PM" }; - - /*! - * @brief - * Binary 12-hour clock meridiem indicators. - */ - enum MeridiemPhase : uint8_t { - AM, ///< Anti meridiem (before midday) - PM ///< Post meridiem (after midday) - }; - - /*! - * @brief - * Maximum number of seconds in a minute. - */ - constexpr uint8_t MAX_SECONDS_IN_MINUTE = 59; - - /*! - * @brief - * Maximum number of minutes in a hour. - */ - constexpr uint8_t MAX_MINUTES_IN_HOUR = 59; - - /*! - * @brief - * Maximum number of hours in a day. - */ - constexpr uint8_t MAX_HOURS_IN_DAY = 23; - -} // namespace simplydt::utc - -#endif // SIMPLYDT_LIB_UTC_SYSTEM_DEFINITIONS_H_ diff --git a/include/simplydt/coord_universal_time/utc_time.hpp b/include/simplydt/coord_universal_time/utc_time.hpp deleted file mode 100644 index 390fe4f..0000000 --- a/include/simplydt/coord_universal_time/utc_time.hpp +++ /dev/null @@ -1,227 +0,0 @@ - -// Copyright (C) 2023-2025 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. -// Released under the terms of the GNU Affero General Public License version 3. - -// [ISJTB-CXX-XL20230401-000001] - -/*! - * @file utc_time.hpp - * - * @brief - * Standalone Coordinated Universal Time declaration. - */ - -#ifndef SIMPLYDT_LIB_UTC_TIME_STRUCT_H_ -#define SIMPLYDT_LIB_UTC_TIME_STRUCT_H_ - -#include "simplydt/common/general_defs.hpp" -#include "simplydt/common/string_utils.hpp" -#include "simplydt/coord_universal_time/utc_defs.hpp" -#include - -namespace simplydt::utc -{ - - /*! - * @brief - * Broken-down UTC time. - */ - class Time { - - public: - /*! - * @brief - * Underlying type used to represent UTC time. - */ - using Underlying_T = uint32_t; - - /*! - * @brief - * Factor used to store and retrieve hour values. - */ - static constexpr Underlying_T HOUR_FACTOR = 10'000; - - /*! - * @brief - * Factor used to store and retrieve minute values. - */ - static constexpr Underlying_T MINUTE_FACTOR = 100; - - /*! - * @brief - * Default UTC time (midnight). - */ - static constexpr Underlying_T DEFAULT_TIME = 0; - - /*! - * @brief - * Store encoded UTC time at provided integer address. - * - * @return - * True on success - */ - static bool encodeUTCTimeIntoInteger( - Underlying_T* integer, - const uint8_t& hour, - const uint8_t& minute, - const uint8_t& second - ) noexcept; - - /*! - * @brief - * Retrieve hour component from encoded UTC time integer. - * - * @return - * UTC time hour component - */ - static uint8_t extractEncodedHour(const Underlying_T* time) noexcept; - - /*! - * @brief - * Retrieve minute component from encoded UTC time integer. - * - * @return - * UTC time minute component - */ - static uint8_t extractEncodedMinute(const Underlying_T* time) noexcept; - - /*! - * @brief - * Retrieve second component from encoded UTC time integer. - * - * @return - * UTC time second component - */ - static uint8_t extractEncodedSecond(const Underlying_T* time) noexcept; - - /*! - * @brief - * Construct UTC time using hour, minute, and second - * values. - */ - Time(const uint8_t hour, const uint8_t minute, const uint8_t second) noexcept; - - /*! - * @brief - * Construct UTC time using hour and minute values; - * assume 0 seconds. - */ - Time(const uint8_t hour, const uint8_t minute) noexcept; - - /*! - * @brief - * Construct UTC time from another. - */ - Time(const Time& time) noexcept; - - /*! - * @brief - * Construct default UTC time. - */ - Time() noexcept; - - ~Time() noexcept = default; - - friend inline std::ostream& operator<<(std::ostream& os, const Time time) noexcept - { - os << time.toStr(); - return os; - } - - /*! @brief Evaluate equivalence of UTC times. */ - [[nodiscard]] bool operator==(const Time time) const noexcept; - - /*! @brief Determine if left-hand side is sequentially before right-hand side. */ - [[nodiscard]] bool operator<(const Time time) const noexcept; - - /*! @brief Determine if left-hand side is sequentially after right-hand side. */ - [[nodiscard]] bool operator>(const Time time) const noexcept; - - [[nodiscard]] bool operator<=(const Time time) const noexcept; - - [[nodiscard]] bool operator>=(const Time time) const noexcept; - - /*! - * @brief - * Returns requested time component. - * - * @return - * Individual time component value - */ - [[nodiscard]] uint16_t operator[](const CalendarComponent component) const noexcept; - - /*! - * @brief - * Time hour component. - * - * @return - * Hour of UTC time - */ - [[nodiscard]] uint8_t hour() const noexcept; - - /*! - * @brief - * Time meridiem phase indicator literal. - * - * @return - * "AM" or "PM" - */ - [[nodiscard]] std::string hourPhaseLiteral() const noexcept; - - /*! - * @brief - * Time minute component. - * - * @return - * Minute of UTC time - */ - [[nodiscard]] uint8_t minute() const noexcept; - - /*! - * @brief - * Time second component. - * - * @return - * Second of UTC time - */ - [[nodiscard]] uint8_t second() const noexcept; - - /*! - * @brief - * Returns requested UTC time component. - * - * @details - * If the requested calendar component is not a - * time component the method returns 0. - * - * @return - * Individual time component value - */ - [[nodiscard]] uint16_t getComponent(const CalendarComponent component) const noexcept; - - /*! - * @brief - * Compose string representation of UTC time. - * - * @return - * UTC time as string - */ - [[nodiscard]] std::string toStr() const noexcept; - - /*! - * @brief - * Returns raw underlying representation of UTC - * time. - * - * @return - * UTC time as integer - */ - [[nodiscard]] Underlying_T underlying() const noexcept; - - private: - Underlying_T time; ///< UTC time - }; - -} // namespace simplydt::utc - -#endif // SIMPLYDT_LIB_UTC_TIME_STRUCT_H_ diff --git a/include/simplydt/gregorian_calendar/date_flags.hpp b/include/simplydt/gregorian_calendar/date_flags.hpp deleted file mode 100644 index 21b3fc4..0000000 --- a/include/simplydt/gregorian_calendar/date_flags.hpp +++ /dev/null @@ -1,128 +0,0 @@ - -// Copyright (C) 2023-2025 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. -// Released under the terms of the GNU Affero General Public License version 3. - -// [ISJTB-CXX-XL20230401-000001] - -/*! - * @file date_flags.hpp - * - * @brief - * Gregorian calendar date flags. - * - * @details - * Gregorian calendar date characteristic flags. - */ - -#ifndef SIMPLYDT_LIB_GREGORIAN_DATE_FLAGS_H_ -#define SIMPLYDT_LIB_GREGORIAN_DATE_FLAGS_H_ - -#include - -namespace simplydt::gregorian -{ - - /*! - * @brief - * Gregorian calendar date flags. - * - * @details - * These flags describe structural characteristics - * of a Gregorian date that can be derived from the - * Gregorian calendar system independently. - */ - enum class DateFlag : uint32_t { - NONE = 0, ///< No date flags - INVALID = 1 << 0, ///< Invalid date - - CALENDAR_Q1 = 1 << 2, ///< First quarter of calendar year (Jan-Mar) - CALENDAR_Q2 = 1 << 3, ///< Second quarter of calendar year (Apr-Jun) - CALENDAR_Q3 = 1 << 4, ///< Third quarter of calendar year (Jul-Sep) - CALENDAR_Q4 = 1 << 5, ///< Fourth quarter of calendar year (Oct-Dec) - - START_OF_YEAR = 1 << 6, ///< January - MIDDLE_OF_YEAR = 1 << 7, ///< June - END_OF_YEAR = 1 << 8, ///< December - - LEAP_YEAR = 1 << 9, ///< Leap year - - START_OF_MONTH = 1 << 10, ///< First day of month - MIDDLE_OF_MONTH = 1 << 11, ///< Median day of month - END_OF_MONTH = 1 << 12, ///< Last day of month - - WEEKDAY = 1 << 13, ///< Weekday date (Mon-Fri) - WEEKEND = 1 << 14, ///< Weekend date (Sat/Sun) - - START_OF_WEEK = 1 << 15, ///< Beginning of week (Sun) - START_OF_WEEKDAYS = 1 << 16, ///< Beginning of weekdays (Mon) - MIDDLE_OF_WEEK = 1 << 17, ///< Wednesday - END_OF_WEEKDAYS = 1 << 18, ///< End of weekdays (Fri) - END_OF_WEEK = 1 << 19, ///< End of week (Sat) - - LEAP_DAY = 1 << 20 ///< February 29th - }; - - /*! - * @brief - * Combine date flag values using bitwise OR. - * - * @details - * Returns a `DateFlag` with bits set where either - * input flag has a bit set. - * - * @return - * Bit combined date flag - */ - [[nodiscard]] inline DateFlag operator|(const DateFlag lhs, const DateFlag rhs) noexcept - { - return static_cast(static_cast(lhs) | static_cast(rhs)); - } - - /*! - * @brief - * Computes bitwise AND of date flags. - * - * @details - * Returns a `DateFlag` with bits set only where both - * input flags have bits set. - * - * @return - * Bit filtered date flag - */ - [[nodiscard]] inline DateFlag operator&(const DateFlag lhs, const DateFlag rhs) noexcept - { - return static_cast(static_cast(lhs) & static_cast(rhs)); - } - - /*! - * @brief - * Computes bitwise complement of date flag. - * - * @details - * Returns a `DateFlag` with all bits flipped relative - * to the input. - * - * @return - * Bit negated date flag - */ - [[nodiscard]] inline DateFlag operator~(DateFlag flag) noexcept - { - return static_cast(~static_cast(flag)); - } - - /*! - * @brief - * Combine date flag values in-place using bitwise OR. - * - * @return - * Reference to left-hand side date flag - */ - [[nodiscard]] inline DateFlag& operator|=(DateFlag& lhs, const DateFlag rhs) noexcept - { - lhs = lhs | rhs; - return lhs; - } - -} // namespace simplydt::gregorian - -#endif // SIMPLYDT_LIB_GREGORIAN_DATE_FLAGS_H_ diff --git a/include/simplydt/gregorian_calendar/gregorian_date.hpp b/include/simplydt/gregorian_calendar/gregorian_date.hpp deleted file mode 100644 index 2e39820..0000000 --- a/include/simplydt/gregorian_calendar/gregorian_date.hpp +++ /dev/null @@ -1,255 +0,0 @@ - -// Copyright (C) 2023-2025 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. -// Released under the terms of the GNU Affero General Public License version 3. - -// [ISJTB-CXX-XL20230401-000001] - -/*! - * @file gregorian_date.hpp - * - * @brief - * Standalone Gregorian calendar date declaration. - */ - -#ifndef SIMPLYDT_LIB_GREGORIAN_DATE_STRUCT_H_ -#define SIMPLYDT_LIB_GREGORIAN_DATE_STRUCT_H_ - -#include "simplydt/common/general_defs.hpp" -#include "simplydt/common/string_utils.hpp" -#include "simplydt/gregorian_calendar/gregorian_defs.hpp" -#include - -namespace simplydt::gregorian -{ - - /*! - * @brief - * Broken-down Gregorian calendar date. - * - * @details - * This type is meant to serve as a broken-down - * form of Gregorian calendar dates and only - * serves this purpose. This type does not - * validate the date values it is constructed - * with beyond disregarding nonsensical values. - * Such values are the kind that could obviously - * never be a date (i.e, August 32nd, 2015). - * However, keep in mind that just because this - * type accepts a date you provide does not - * necessarily imply that date exists on the - * real-world calendar. - */ - class Date { - - public: - /*! - * @brief - * Underlying type used to represent Gregorian - * calendar dates. - */ - using Underlying_T = uint32_t; - - /*! - * @brief - * Factor used to store and retrieve year values. - */ - static constexpr Underlying_T YEAR_FACTOR = 10'000; - - /*! - * @brief - * Factor used to store and retrieve month values. - */ - static constexpr Underlying_T MONTH_FACTOR = 100; - - /*! - * @brief - * Default Gregorian calendar date. - */ - static constexpr Underlying_T DEFAULT_DATE = ((1'970 * YEAR_FACTOR) + 101); - - /*! - * @brief - * Store encoded Gregorian calendar date at provided - * integer address. - * - * @return - * True on success - */ - static bool encodeGregorianDateIntoInteger( - Underlying_T* integer, - const YearInt_T& year, - const uint8_t& month, - const uint8_t& day - ) noexcept; - - /*! - * @brief - * Retrieve year component from encoded Gregorian - * date integer. - * - * @return - * Gregorian date year component - */ - static YearInt_T extractEncodedYear(const Underlying_T* date) noexcept; - - /*! - * @brief - * Retrieve month component from encoded Gregorian - * date integer. - * - * @return - * Gregorian date month component - */ - static uint8_t extractEncodedMonth(const Underlying_T* date) noexcept; - - /*! - * @brief - * Retrieve day component from encoded Gregorian - * date integer. - * - * @return - * Gregorian date day component - */ - static uint8_t extractEncodedDay(const Underlying_T* date) noexcept; - - /*! - * @brief - * Construct Gregorian date using year, month, - * and day values. - */ - Date(const YearInt_T year, const uint8_t month, const uint8_t day) noexcept; - - /*! - * @brief - * Construct Gregorian date using year and month - * values; assume first of month. - */ - Date(const YearInt_T year, const uint8_t month) noexcept; - - /*! - * @brief - * Construct Gregorian date from another. - */ - Date(const Date& date) noexcept; - - /*! - * @brief - * Construct default Gregorian date. - */ - Date() noexcept; - - ~Date() noexcept = default; - - friend inline std::ostream& operator<<(std::ostream& os, const Date date) noexcept - { - os << date.toStr(); - return os; - } - - /*! @brief Evaluate equivalence of Gregorian dates. */ - [[nodiscard]] bool operator==(const Date date) const noexcept; - - /*! @brief Determine if left-hand side is sequentially before right-hand side. */ - [[nodiscard]] bool operator<(const Date date) const noexcept; - - /*! @brief Determine if left-hand side is sequentially after right-hand side. */ - [[nodiscard]] bool operator>(const Date date) const noexcept; - - [[nodiscard]] bool operator<=(const Date date) const noexcept; - - [[nodiscard]] bool operator>=(const Date date) const noexcept; - - /*! - * @brief - * Returns requested date component. - * - * @return - * Individual date component value - */ - [[nodiscard]] uint16_t operator[](const CalendarComponent component) const noexcept; - - /*! - * @brief - * Date year component. - * - * @return - * Year of Gregorian calendar date - */ - [[nodiscard]] YearInt_T year() const noexcept; - - /*! - * @brief - * Date month component. - * - * @return - * Month of Gregorian calendar date - */ - [[nodiscard]] uint8_t month() const noexcept; - - /*! - * @brief - * Month name. - * - * @return - * Month literal - */ - [[nodiscard]] std::string monthLiteral() const noexcept; - - /*! - * @brief - * Abbreviated month name. - * - * @return - * Abbreviated month literal - */ - [[nodiscard]] std::string monthAbbreviation() const noexcept; - - /*! - * @brief - * Date day component. - * - * @return - * Day of Gregorian calendar date - */ - [[nodiscard]] uint8_t day() const noexcept; - - /*! - * @brief - * Returns requested Gregorian date component. - * - * @details - * If the requested calendar component is not a - * date component the method returns 0. - * - * @return - * Individual date component value - */ - [[nodiscard]] uint16_t getComponent(const CalendarComponent component) const noexcept; - - /*! - * @brief - * Compose string representation of Gregorian - * calendar date. - * - * @return - * Gregorian calendar date as string - */ - [[nodiscard]] std::string toStr() const noexcept; - - /*! - * @brief - * Returns raw underlying representation of - * Gregorian calendar date. - * - * @return - * Gregorian calendar date as integer - */ - [[nodiscard]] Underlying_T underlying() const noexcept; - - private: - Underlying_T date; ///< Calendar date - }; - -} // namespace simplydt::gregorian - -#endif // SIMPLYDT_LIB_GREGORIAN_DATE_STRUCT_H_ diff --git a/include/simplydt/gregorian_calendar/gregorian_defs.hpp b/include/simplydt/gregorian_calendar/gregorian_defs.hpp deleted file mode 100644 index 115e7ff..0000000 --- a/include/simplydt/gregorian_calendar/gregorian_defs.hpp +++ /dev/null @@ -1,168 +0,0 @@ - -// Copyright (C) 2023-2025 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. -// Released under the terms of the GNU Affero General Public License version 3. - -// [ISJTB-CXX-XL20230401-000001] - -/*! - * @file gregorian_defs.hpp - * - * @brief - * Gregorian calendar system definitions. - */ - -#ifndef SIMPLYDT_LIB_GREGORIAN_CALENDAR_DEFINITIONS_H_ -#define SIMPLYDT_LIB_GREGORIAN_CALENDAR_DEFINITIONS_H_ - -#include -#include -#include - -/*! - * @namespace simplydt::gregorian - * - * @brief - * Standard civil calendar system. - */ -namespace simplydt::gregorian -{ - - /*! - * @brief - * Gregorian year integer type. - * - * @note - * The underlying type used to represent Gregorian - * calendar years imposes a limit on the range of - * representable dates. - */ - using YearInt_T = uint16_t; - - /*! - * @brief - * Enumeration of Gregorian calendar months. - */ - enum Month : uint8_t { - JANUARY, ///< January (1) - FEBRUARY, ///< February (2) - MARCH, ///< March (3) - APRIL, ///< April (4) - MAY, ///< May (5) - JUNE, ///< June (6) - JULY, ///< July (7) - AUGUST, ///< August (8) - SEPTEMBER, ///< September (9) - OCTOBER, ///< October (10) - NOVEMBER, ///< November (11) - DECEMBER ///< December (12) - }; - - /*! - * @brief - * Enumeration of Gregorian calendar days of week. - */ - enum DayOfWeek : uint8_t { - SUNDAY, ///< Sunday - MONDAY, ///< Monday - TUESDAY, ///< Tuesday - WEDNESDAY, ///< Wednesday - THURSDAY, ///< Thursday - FRIDAY, ///< Friday - SATURDAY ///< Saturday - }; - - /*! - * @brief - * Array of Gregorian calendar month name literals. - */ - constexpr std::array Months = { - "January", ///< Index 0 - "February", ///< Index 1 - "March", ///< Index 2 - "April", ///< Index 3 - "May", ///< Index 4 - "June", ///< Index 5 - "July", ///< Index 6 - "August", ///< Index 7 - "September", ///< Index 8 - "October", ///< Index 9 - "November", ///< Index 10 - "December" ///< Index 11 - }; - - /*! - * @brief - * Array of abbreviated Gregorian calendar month - * names. - */ - constexpr std::array MonthAbbrevs = { - std::string_view(Months[JANUARY], 3), ///< Jan - std::string_view(Months[FEBRUARY], 3), ///< Feb - std::string_view(Months[MARCH], 3), ///< Mar - std::string_view(Months[APRIL], 3), ///< Apr - std::string_view(Months[MAY], 3), ///< May - std::string_view(Months[JUNE], 3), ///< Jun - std::string_view(Months[JULY], 3), ///< Jul - std::string_view(Months[AUGUST], 3), ///< Aug - std::string_view(Months[SEPTEMBER], 3), ///< Sep - std::string_view(Months[OCTOBER], 3), ///< Oct - std::string_view(Months[NOVEMBER], 3), ///< Nov - std::string_view(Months[DECEMBER], 3) ///< Dec - }; - - /*! - * @brief - * Array of Gregorian calendar day-of-week literals. - */ - constexpr std::array DaysOfWeek = { - "Sunday", ///< Index 0 - "Monday", ///< Index 1 - "Tuesday", ///< Index 2 - "Wednesday", ///< Index 3 - "Thursday", ///< Index 4 - "Friday", ///< Index 5 - "Saturday" ///< Index 6 - }; - - /*! - * @brief - * Array of abbreviated Gregorian calendar day-of-week - * literals. - */ - constexpr std::array DayOfWeekAbbrevs = { - std::string_view(DaysOfWeek[SUNDAY], 3), ///< Sun - std::string_view(DaysOfWeek[MONDAY], 3), ///< Mon - std::string_view(DaysOfWeek[TUESDAY], 3), ///< Tue - std::string_view(DaysOfWeek[WEDNESDAY], 3), ///< Wed - std::string_view(DaysOfWeek[THURSDAY], 3), ///< Thu - std::string_view(DaysOfWeek[FRIDAY], 3), ///< Fri - std::string_view(DaysOfWeek[SATURDAY], 3) ///< Sat - }; - - /*! - * @brief - * Minimum day of Gregorian month. - */ - constexpr uint8_t MIN_DAY_OF_MONTH = 1; - - /*! - * @brief - * Maximum day of Gregorian month. - */ - constexpr uint8_t MAX_DAY_OF_MONTH = 31; - - /*! - * @brief - * Minimum month of Gregorian year. - */ - constexpr uint8_t MIN_MONTH_OF_YEAR = 1; - - /*! - * @brief - * Maximum month of Gregorian year. - */ - constexpr uint8_t MAX_MONTH_OF_YEAR = 12; - -} // namespace simplydt::gregorian - -#endif // SIMPLYDT_LIB_GREGORIAN_CALENDAR_DEFINITIONS_H_ diff --git a/include/simplydt/julian_calendar/julian_defs.hpp b/include/simplydt/julian_calendar/julian_defs.hpp deleted file mode 100644 index ea9a653..0000000 --- a/include/simplydt/julian_calendar/julian_defs.hpp +++ /dev/null @@ -1,39 +0,0 @@ - -// Copyright (C) 2023-2025 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. -// Released under the terms of the GNU Affero General Public License version 3. - -// [ISJTB-CXX-XL20230401-000001] - -/*! - * @file julian_defs.hpp - * - * @brief - * Julian calendar system definitions. - */ - -#ifndef SIMPLYDT_LIB_JULIAN_CALENDAR_DEFINITIONS_H_ -#define SIMPLYDT_LIB_JULIAN_CALENDAR_DEFINITIONS_H_ - -/*! - * @namespace simplydt::julian - * - * @brief - * Proleptic Julian calendar system. - */ -namespace simplydt::julian -{ - - /*! - * @brief - * Julian day number value type. - * - * @note - * The underlying type used to represent Julian - * day numbers imposes a limit on the level of - * time precision. - */ - using Jdn_T = double; - -} - -#endif // SIMPLYDT_LIB_JULIAN_CALENDAR_DEFINITIONS_H_ diff --git a/src/coord_universal_time/utc_time.cpp b/src/coord_universal_time/utc_time.cpp index 1b8af48..fb32e22 100644 --- a/src/coord_universal_time/utc_time.cpp +++ b/src/coord_universal_time/utc_time.cpp @@ -4,169 +4,169 @@ // [ISJTB-CXX-XL20230401-000001] -#include "simplydt/coord_universal_time/utc_time.hpp" - -// simplydt::utc::Time : CONSTRUCTOR - -simplydt::utc::Time::Time( - const uint8_t hour, const uint8_t minute, const uint8_t second -) noexcept - : time{ DEFAULT_TIME } -{ - Time::encodeUTCTimeIntoInteger(&this->time, hour, minute, second); -} - -simplydt::utc::Time::Time(const uint8_t hour, const uint8_t minute) noexcept - : time{ DEFAULT_TIME } -{ - Time::encodeUTCTimeIntoInteger(&this->time, hour, minute, 0); -} - -simplydt::utc::Time::Time(const Time& time) noexcept : time{ time.time } -{ - // -} - -simplydt::utc::Time::Time() noexcept : time{ DEFAULT_TIME } -{ - // -} - -// simplydt::utc::Time : CONSTRUCTOR END! - - -// simplydt::utc::Time : STATIC - -bool simplydt::utc::Time::encodeUTCTimeIntoInteger( - Underlying_T* integer, const uint8_t& hour, const uint8_t& minute, const uint8_t& second -) noexcept -{ - if (integer == nullptr) - return false; - - if ((hour > MAX_HOURS_IN_DAY) || (minute > MAX_MINUTES_IN_HOUR) || - (second > MAX_SECONDS_IN_MINUTE)) - return false; // Invalid UTC time params - - *integer = ((hour * HOUR_FACTOR) + (minute * MINUTE_FACTOR) + second); - - return true; -} - -uint8_t simplydt::utc::Time::extractEncodedHour(const Underlying_T* time) noexcept -{ - return static_cast(*time / HOUR_FACTOR); -} - -uint8_t simplydt::utc::Time::extractEncodedMinute(const Underlying_T* time) noexcept -{ - return static_cast((*time % HOUR_FACTOR) / MINUTE_FACTOR); -} - -uint8_t simplydt::utc::Time::extractEncodedSecond(const Underlying_T* time) noexcept -{ - return static_cast((*time % HOUR_FACTOR) % MINUTE_FACTOR); -} - -// simplydt::utc::Time : STATIC END! - - -// simplydt::utc::Time : OPERATOR - -bool simplydt::utc::Time::operator==(const Time time) const noexcept -{ - return this->time == time.time; -} - -bool simplydt::utc::Time::operator<(const Time time) const noexcept -{ - return this->time < time.time; -} - -bool simplydt::utc::Time::operator>(const Time time) const noexcept -{ - return this->time > time.time; -} - -bool simplydt::utc::Time::operator<=(const Time time) const noexcept -{ - return this->time <= time.time; -} - -bool simplydt::utc::Time::operator>=(const Time time) const noexcept -{ - return this->time >= time.time; -} - -uint16_t simplydt::utc::Time::operator[](const CalendarComponent component) const noexcept -{ - return this->getComponent(component); -} - -// simplydt::utc::Time : OPERATOR END! - - -// simplydt::utc::Time : PUBLIC - -uint8_t simplydt::utc::Time::hour() const noexcept -{ - return Time::extractEncodedHour(&this->time); -} - -std::string simplydt::utc::Time::hourPhaseLiteral() const noexcept -{ - if ((this->time / HOUR_FACTOR) < 12) - return MeridiemPhases[AM]; - - return MeridiemPhases[PM]; -} - -uint8_t simplydt::utc::Time::minute() const noexcept -{ - return Time::extractEncodedMinute(&this->time); -} - -uint8_t simplydt::utc::Time::second() const noexcept -{ - return Time::extractEncodedSecond(&this->time); -} - -uint16_t simplydt::utc::Time::getComponent(const CalendarComponent component) const noexcept -{ - switch (component) { - case CalendarComponent::HOUR: - return Time::extractEncodedHour(&this->time); - - case CalendarComponent::MINUTE: - return Time::extractEncodedMinute(&this->time); - - case CalendarComponent::SECOND: - return Time::extractEncodedSecond(&this->time); - - default: - return 0; // Invalid component - } -} - -std::string simplydt::utc::Time::toStr() const noexcept -{ - const char delimiter = ':'; - - std::string timeStr; - timeStr.reserve(12); - - timeStr += (std::to_string(this->hour()) + delimiter); - timeStr += (toDoubleDigitStr(this->minute()) + delimiter); - timeStr += (toDoubleDigitStr(this->second()) + ' '); - timeStr += this->hourPhaseLiteral(); - - return timeStr; -} - -simplydt::utc::Time::Underlying_T simplydt::utc::Time::underlying() const noexcept -{ - return this->time; -} +// #include "simplydt/coord_universal_time/utc_time.hpp" +// +// // simplydt::utc::Time : CONSTRUCTOR +// +// simplydt::utc::Time::Time( +// const uint8_t hour, const uint8_t minute, const uint8_t second +// ) noexcept +// : time{ DEFAULT_TIME } +// { +// Time::encodeUTCTimeIntoInteger(&this->time, hour, minute, second); +// } +// +// simplydt::utc::Time::Time(const uint8_t hour, const uint8_t minute) noexcept +// : time{ DEFAULT_TIME } +// { +// Time::encodeUTCTimeIntoInteger(&this->time, hour, minute, 0); +// } +// +// simplydt::utc::Time::Time(const Time& time) noexcept : time{ time.time } +// { +// // +// } +// +// simplydt::utc::Time::Time() noexcept : time{ DEFAULT_TIME } +// { +// // +// } +// +// // simplydt::utc::Time : CONSTRUCTOR END! +// +// +// // simplydt::utc::Time : STATIC +// +// bool simplydt::utc::Time::encodeUTCTimeIntoInteger( +// Underlying_T* integer, const uint8_t& hour, const uint8_t& minute, const uint8_t& second +// ) noexcept +// { +// if (integer == nullptr) +// return false; +// +// if ((hour > MAX_HOURS_IN_DAY) || (minute > MAX_MINUTES_IN_HOUR) || +// (second > MAX_SECONDS_IN_MINUTE)) +// return false; // Invalid UTC time params +// +// *integer = ((hour * HOUR_FACTOR) + (minute * MINUTE_FACTOR) + second); +// +// return true; +// } +// +// uint8_t simplydt::utc::Time::extractEncodedHour(const Underlying_T* time) noexcept +// { +// return static_cast(*time / HOUR_FACTOR); +// } +// +// uint8_t simplydt::utc::Time::extractEncodedMinute(const Underlying_T* time) noexcept +// { +// return static_cast((*time % HOUR_FACTOR) / MINUTE_FACTOR); +// } +// +// uint8_t simplydt::utc::Time::extractEncodedSecond(const Underlying_T* time) noexcept +// { +// return static_cast((*time % HOUR_FACTOR) % MINUTE_FACTOR); +// } +// +// // simplydt::utc::Time : STATIC END! +// +// +// // simplydt::utc::Time : OPERATOR +// +// bool simplydt::utc::Time::operator==(const Time time) const noexcept +// { +// return this->time == time.time; +// } +// +// bool simplydt::utc::Time::operator<(const Time time) const noexcept +// { +// return this->time < time.time; +// } +// +// bool simplydt::utc::Time::operator>(const Time time) const noexcept +// { +// return this->time > time.time; +// } +// +// bool simplydt::utc::Time::operator<=(const Time time) const noexcept +// { +// return this->time <= time.time; +// } +// +// bool simplydt::utc::Time::operator>=(const Time time) const noexcept +// { +// return this->time >= time.time; +// } +// +// uint16_t simplydt::utc::Time::operator[](const CalendarComponent component) const noexcept +// { +// return this->getComponent(component); +// } +// +// // simplydt::utc::Time : OPERATOR END! +// +// +// // simplydt::utc::Time : PUBLIC +// +// uint8_t simplydt::utc::Time::hour() const noexcept +// { +// return Time::extractEncodedHour(&this->time); +// } +// +// std::string simplydt::utc::Time::hourPhaseLiteral() const noexcept +// { +// if ((this->time / HOUR_FACTOR) < 12) +// return MeridiemPhases[AM]; +// +// return MeridiemPhases[PM]; +// } +// +// uint8_t simplydt::utc::Time::minute() const noexcept +// { +// return Time::extractEncodedMinute(&this->time); +// } +// +// uint8_t simplydt::utc::Time::second() const noexcept +// { +// return Time::extractEncodedSecond(&this->time); +// } +// +// uint16_t simplydt::utc::Time::getComponent(const CalendarComponent component) const noexcept +// { +// switch (component) { +// case CalendarComponent::HOUR: +// return Time::extractEncodedHour(&this->time); +// +// case CalendarComponent::MINUTE: +// return Time::extractEncodedMinute(&this->time); +// +// case CalendarComponent::SECOND: +// return Time::extractEncodedSecond(&this->time); +// +// default: +// return 0; // Invalid component +// } +// } +// +// std::string simplydt::utc::Time::toStr() const noexcept +// { +// const char delimiter = ':'; +// +// std::string timeStr; +// timeStr.reserve(12); +// +// timeStr += (std::to_string(this->hour()) + delimiter); +// timeStr += (toDoubleDigitStr(this->minute()) + delimiter); +// timeStr += (toDoubleDigitStr(this->second()) + ' '); +// timeStr += this->hourPhaseLiteral(); +// +// return timeStr; +// } +// +// simplydt::utc::Time::Underlying_T simplydt::utc::Time::underlying() const noexcept +// { +// return this->time; +// } // simplydt::utc::Time : PUBLIC END! diff --git a/src/gregorian_calendar/gregorian_date.cpp b/src/gregorian_calendar/gregorian_date.cpp index b2b16f0..35e2747 100644 --- a/src/gregorian_calendar/gregorian_date.cpp +++ b/src/gregorian_calendar/gregorian_date.cpp @@ -4,180 +4,180 @@ // [ISJTB-CXX-XL20230401-000001] -#include "simplydt/gregorian_calendar/gregorian_date.hpp" - -// simplydt::gregorian::Date : CONSTRUCTOR - -simplydt::gregorian::Date::Date( - const YearInt_T year, const uint8_t month, const uint8_t day -) noexcept - : date{ DEFAULT_DATE } -{ - Date::encodeGregorianDateIntoInteger(&this->date, year, month, day); -} - -simplydt::gregorian::Date::Date(const YearInt_T year, const uint8_t month) noexcept - : date{ DEFAULT_DATE } -{ - Date::encodeGregorianDateIntoInteger(&this->date, year, month, 1); -} - -simplydt::gregorian::Date::Date(const Date& date) noexcept : date{ DEFAULT_DATE } -{ - this->date = date.date; -} - -simplydt::gregorian::Date::Date() noexcept : date{ DEFAULT_DATE } -{ - // -} - -// simplydt::gregorian::Date : CONSTRUCTOR END! - - -// simplydt::gregorian::Date : STATIC - -bool simplydt::gregorian::Date::encodeGregorianDateIntoInteger( - Underlying_T* integer, const YearInt_T& year, const uint8_t& month, const uint8_t& day -) noexcept -{ - if (integer == nullptr) - return false; - - if ((month < MIN_MONTH_OF_YEAR) || (month > MAX_MONTH_OF_YEAR)) - return false; // Invalid date params - - if ((day < MIN_DAY_OF_MONTH) || (day > MAX_DAY_OF_MONTH)) - return false; // Invalid date params - - *integer = ((year * YEAR_FACTOR) + (month * MONTH_FACTOR) + day); - - return true; -} - -simplydt::gregorian::YearInt_T simplydt::gregorian::Date::extractEncodedYear( - const Underlying_T* date -) noexcept -{ - return static_cast(*date / YEAR_FACTOR); -} - -uint8_t simplydt::gregorian::Date::extractEncodedMonth(const Underlying_T* date) noexcept -{ - return static_cast((*date % YEAR_FACTOR) / MONTH_FACTOR); -} - -uint8_t simplydt::gregorian::Date::extractEncodedDay(const Underlying_T* date) noexcept -{ - return static_cast((*date % YEAR_FACTOR) % MONTH_FACTOR); -} - -// simplydt::gregorian::Date : STATIC END! - - -// simplydt::gregorian::Date : OPERATOR - -bool simplydt::gregorian::Date::operator==(const Date date) const noexcept -{ - return this->date == date.date; -} - -bool simplydt::gregorian::Date::operator<(const Date date) const noexcept -{ - return this->date < date.date; -} - -bool simplydt::gregorian::Date::operator>(const Date date) const noexcept -{ - return this->date > date.date; -} - -bool simplydt::gregorian::Date::operator<=(const Date date) const noexcept -{ - return this->date <= date.date; -} - -bool simplydt::gregorian::Date::operator>=(const Date date) const noexcept -{ - return this->date >= date.date; -} - -uint16_t simplydt::gregorian::Date::operator[](const CalendarComponent component -) const noexcept -{ - return this->getComponent(component); -} - -// simplydt::gregorian::Date : OPERATOR END! - - -// simplydt::gregorian::Date : PUBLIC - -simplydt::gregorian::YearInt_T simplydt::gregorian::Date::year() const noexcept -{ - return Date::extractEncodedYear(&this->date); -} - -uint8_t simplydt::gregorian::Date::month() const noexcept -{ - return Date::extractEncodedMonth(&this->date); -} - -std::string simplydt::gregorian::Date::monthLiteral() const noexcept -{ - const uint8_t monthIndex = this->month() - 1; - - return Months[monthIndex]; -} - -std::string simplydt::gregorian::Date::monthAbbreviation() const noexcept -{ - const uint8_t monthIndex = this->month() - 1; - - return std::string{ MonthAbbrevs[monthIndex] }; -} - -uint8_t simplydt::gregorian::Date::day() const noexcept -{ - return Date::extractEncodedDay(&this->date); -} - -uint16_t simplydt::gregorian::Date::getComponent(const CalendarComponent component -) const noexcept -{ - switch (component) { - case CalendarComponent::YEAR: - return Date::extractEncodedYear(&this->date); - - case CalendarComponent::MONTH: - return Date::extractEncodedMonth(&this->date); - - case CalendarComponent::DAY: - return Date::extractEncodedDay(&this->date); - - default: - return 0; // Invalid component - } -} - -std::string simplydt::gregorian::Date::toStr() const noexcept -{ - const char delimiter = '-'; - - std::string dateStr; - dateStr.reserve(12); - - dateStr += (std::to_string(this->year()) + delimiter); - dateStr += (toDoubleDigitStr(this->month()) + delimiter); - dateStr += toDoubleDigitStr(this->day()); - - return dateStr; -} - -simplydt::gregorian::Date::Underlying_T simplydt::gregorian::Date::underlying() const noexcept -{ - return this->date; -} +// #include "simplydt/gregorian_calendar/gregorian_date.hpp" +// +// // simplydt::gregorian::Date : CONSTRUCTOR +// +// simplydt::gregorian::Date::Date( +// const YearInt_T year, const uint8_t month, const uint8_t day +// ) noexcept +// : date{ DEFAULT_DATE } +// { +// Date::encodeGregorianDateIntoInteger(&this->date, year, month, day); +// } +// +// simplydt::gregorian::Date::Date(const YearInt_T year, const uint8_t month) noexcept +// : date{ DEFAULT_DATE } +// { +// Date::encodeGregorianDateIntoInteger(&this->date, year, month, 1); +// } +// +// simplydt::gregorian::Date::Date(const Date& date) noexcept : date{ DEFAULT_DATE } +// { +// this->date = date.date; +// } +// +// simplydt::gregorian::Date::Date() noexcept : date{ DEFAULT_DATE } +// { +// // +// } +// +// // simplydt::gregorian::Date : CONSTRUCTOR END! +// +// +// // simplydt::gregorian::Date : STATIC +// +// bool simplydt::gregorian::Date::encodeGregorianDateIntoInteger( +// Underlying_T* integer, const YearInt_T& year, const uint8_t& month, const uint8_t& day +// ) noexcept +// { +// if (integer == nullptr) +// return false; +// +// if ((month < MIN_MONTH_OF_YEAR) || (month > MAX_MONTH_OF_YEAR)) +// return false; // Invalid date params +// +// if ((day < MIN_DAY_OF_MONTH) || (day > MAX_DAY_OF_MONTH)) +// return false; // Invalid date params +// +// *integer = ((year * YEAR_FACTOR) + (month * MONTH_FACTOR) + day); +// +// return true; +// } +// +// simplydt::gregorian::YearInt_T simplydt::gregorian::Date::extractEncodedYear( +// const Underlying_T* date +// ) noexcept +// { +// return static_cast(*date / YEAR_FACTOR); +// } +// +// uint8_t simplydt::gregorian::Date::extractEncodedMonth(const Underlying_T* date) noexcept +// { +// return static_cast((*date % YEAR_FACTOR) / MONTH_FACTOR); +// } +// +// uint8_t simplydt::gregorian::Date::extractEncodedDay(const Underlying_T* date) noexcept +// { +// return static_cast((*date % YEAR_FACTOR) % MONTH_FACTOR); +// } +// +// // simplydt::gregorian::Date : STATIC END! +// +// +// // simplydt::gregorian::Date : OPERATOR +// +// bool simplydt::gregorian::Date::operator==(const Date date) const noexcept +// { +// return this->date == date.date; +// } +// +// bool simplydt::gregorian::Date::operator<(const Date date) const noexcept +// { +// return this->date < date.date; +// } +// +// bool simplydt::gregorian::Date::operator>(const Date date) const noexcept +// { +// return this->date > date.date; +// } +// +// bool simplydt::gregorian::Date::operator<=(const Date date) const noexcept +// { +// return this->date <= date.date; +// } +// +// bool simplydt::gregorian::Date::operator>=(const Date date) const noexcept +// { +// return this->date >= date.date; +// } +// +// uint16_t simplydt::gregorian::Date::operator[](const CalendarComponent component +// ) const noexcept +// { +// return this->getComponent(component); +// } +// +// // simplydt::gregorian::Date : OPERATOR END! +// +// +// // simplydt::gregorian::Date : PUBLIC +// +// simplydt::gregorian::YearInt_T simplydt::gregorian::Date::year() const noexcept +// { +// return Date::extractEncodedYear(&this->date); +// } +// +// uint8_t simplydt::gregorian::Date::month() const noexcept +// { +// return Date::extractEncodedMonth(&this->date); +// } +// +// std::string simplydt::gregorian::Date::monthLiteral() const noexcept +// { +// const uint8_t monthIndex = this->month() - 1; +// +// return Months[monthIndex]; +// } +// +// std::string simplydt::gregorian::Date::monthAbbreviation() const noexcept +// { +// const uint8_t monthIndex = this->month() - 1; +// +// return std::string{ MonthAbbrevs[monthIndex] }; +// } +// +// uint8_t simplydt::gregorian::Date::day() const noexcept +// { +// return Date::extractEncodedDay(&this->date); +// } +// +// uint16_t simplydt::gregorian::Date::getComponent(const CalendarComponent component +// ) const noexcept +// { +// switch (component) { +// case CalendarComponent::YEAR: +// return Date::extractEncodedYear(&this->date); +// +// case CalendarComponent::MONTH: +// return Date::extractEncodedMonth(&this->date); +// +// case CalendarComponent::DAY: +// return Date::extractEncodedDay(&this->date); +// +// default: +// return 0; // Invalid component +// } +// } +// +// std::string simplydt::gregorian::Date::toStr() const noexcept +// { +// const char delimiter = '-'; +// +// std::string dateStr; +// dateStr.reserve(12); +// +// dateStr += (std::to_string(this->year()) + delimiter); +// dateStr += (toDoubleDigitStr(this->month()) + delimiter); +// dateStr += toDoubleDigitStr(this->day()); +// +// return dateStr; +// } +// +// simplydt::gregorian::Date::Underlying_T simplydt::gregorian::Date::underlying() const noexcept +// { +// return this->date; +// } // simplydt::gregorian::Date : PUBLIC END! diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index db4dcdf..fb42a7d 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -14,24 +14,13 @@ * \* /// \\\ /// \\\ /// | END | \\\ /// \\\ /// \\\ */ -#include "simplydt/coord_universal_time/utc_time.hpp" -#include "simplydt/gregorian_calendar/gregorian_date.hpp" +// Includes... int main(int argc, char* argv[]) { ProjectInfoOut(); //\\// - using namespace simplydt; - - utc::Time::Underlying_T demo = 0; - - utc::Time::encodeUTCTimeIntoInteger(&demo, 10, 30, 2); - - std::cout << demo << std::endl; - - utc::Time test{ 2, 53, 34 }; - std::cout << test << std::endl; // return 0; From 4bcb4b064d88a787c4027550b1125206328949e7 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Tue, 22 Jul 2025 22:43:10 -0400 Subject: [PATCH 042/400] Update diagrams.drawio --- docs/prj/diagrams.drawio | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/docs/prj/diagrams.drawio b/docs/prj/diagrams.drawio index a8f97a3..e31cdda 100644 --- a/docs/prj/diagrams.drawio +++ b/docs/prj/diagrams.drawio @@ -1,6 +1,20 @@ - + + + + + + + + + + + + + + + - + From 978ca0ddd325b60fe969608c1460d7a6ccf54469 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Tue, 22 Jul 2025 22:43:13 -0400 Subject: [PATCH 043/400] Create diagrams-Palette.pdf --- docs/prj/design/diagrams-Palette.pdf | Bin 0 -> 124010 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/prj/design/diagrams-Palette.pdf diff --git a/docs/prj/design/diagrams-Palette.pdf b/docs/prj/design/diagrams-Palette.pdf new file mode 100644 index 0000000000000000000000000000000000000000..a082a929976fef8c9d746cd10d41211f0b240989 GIT binary patch literal 124010 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 OE-9VH(d*7e)cO5|M=vWVVmT1 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 N;8OrQ`wLBle*tk;GC=?U literal 0 HcmV?d00001 From f2d6d5582d0a8cb270d0a4977972dd816adeb6b1 Mon Sep 17 00:00:00 2001 From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com> Date: Tue, 22 Jul 2025 22:44:09 -0400 Subject: [PATCH 044/400] Delete general_defs.hpp --- include/simplydt/common/general_defs.hpp | 51 ------------------------ 1 file changed, 51 deletions(-) delete mode 100644 include/simplydt/common/general_defs.hpp diff --git a/include/simplydt/common/general_defs.hpp b/include/simplydt/common/general_defs.hpp deleted file mode 100644 index 553eacd..0000000 --- a/include/simplydt/common/general_defs.hpp +++ /dev/null @@ -1,51 +0,0 @@ - -// Copyright (C) 2023-2025 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. -// Released under the terms of the GNU Affero General Public License version 3. - -// [ISJTB-CXX-XL20230401-000001] - -/*! - * @file general_defs.hpp - * - * @note - * This file really shouldn't exist given it's - * broad nature. However, I am unsure where to - * situate some of the ideas in this document. - * The definitions are likely to later be moved - * to another translation unit. - * - * @brief - * General Simply Datetime library definitions. - */ - - -#ifndef SIMPLYDT_LIB_GENERAL_DEFINITIONS_H_ -#define SIMPLYDT_LIB_GENERAL_DEFINITIONS_H_ - -#include - -namespace simplydt -{ - -/*! - * @brief - * Enumeration of broken-down calendar components. - */ -enum CalendarComponent : uint8_t { - SECOND, ///< Time second component - MINUTE, ///< Time minute component - HOUR, ///< Time hour component - DAY, ///< Date day component - MONTH, ///< Date month component - YEAR ///< Date year component -}; - -/*! - * @brief - * Invalid literal. - */ -inline const char* INVALID_LITERAL = "invalid"; - -} // namespace simplydt - -#endif // SIMPLYDT_LIB_GENERAL_DEFINITIONS_H_ From a46f6caeb942b0208293834a202e672436ba55fc Mon Sep 17 00:00:00 2001 From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com> Date: Tue, 22 Jul 2025 23:14:39 -0400 Subject: [PATCH 045/400] Create simplydt_defs.hpp --- include/simplydt/common/simplydt_defs.hpp | 58 +++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 include/simplydt/common/simplydt_defs.hpp diff --git a/include/simplydt/common/simplydt_defs.hpp b/include/simplydt/common/simplydt_defs.hpp new file mode 100644 index 0000000..70f095c --- /dev/null +++ b/include/simplydt/common/simplydt_defs.hpp @@ -0,0 +1,58 @@ + +// Copyright (C) 2023-2025 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. +// Released under the terms of the GNU Affero General Public License version 3. + +// [ISJTB-CXX-XL20230401-000001] + +/*! + * @file simplydt_defs.hpp + * + * @brief + * General Simply Datetime library definitions and + * macros. + */ + + +#ifndef SIMPLYDT_LIB_GENERAL_DEFINITIONS_H_ +#define SIMPLYDT_LIB_GENERAL_DEFINITIONS_H_ + +#include + +namespace simplydt +{ + +#if defined(_WIN32) || defined(_WIN64) +#define SIMPLYDT_WIN32 +#elif defined(__unix__) || defined(__unix) || defined(__APPLE__) +#define SIMPLYDT_POSIX +#if defined(__APPLE__) +#define SIMPLYDT_APPLE +#elif defined(__unix__) || defined(__unix) +#define SIMPLYDT_LINUX +#endif +#endif + +/*! + * @brief + * Enumeration of individual datetime components. + */ +enum DatetimeComponent : uint8_t { + NANOSECOND = 1 << 0, ///< Time nanosecond component + MILLISECOND = 1 << 1, ///< Time millisecond component + SECOND = 1 << 2, ///< Time second component + MINUTE = 1 << 3, ///< Time minute component + HOUR = 1 << 4, ///< Time hour component + DAY = 1 << 5, ///< Date day component + MONTH = 1 << 6, ///< Date month component + YEAR = 1 << 7 ///< Date year component +}; + +/*! + * @brief + * Invalid literal. + */ +inline const char* INVALID_LITERAL = "invalid"; + +} // namespace simplydt + +#endif // SIMPLYDT_LIB_GENERAL_DEFINITIONS_H_ From d01dce31871b14fd4e413bed45fbc510cb91f3e1 Mon Sep 17 00:00:00 2001 From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com> Date: Tue, 22 Jul 2025 23:14:54 -0400 Subject: [PATCH 046/400] Create calendar_defs.hpp --- include/simplydt/common/calendar_defs.hpp | 45 +++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 include/simplydt/common/calendar_defs.hpp diff --git a/include/simplydt/common/calendar_defs.hpp b/include/simplydt/common/calendar_defs.hpp new file mode 100644 index 0000000..0f49acd --- /dev/null +++ b/include/simplydt/common/calendar_defs.hpp @@ -0,0 +1,45 @@ + +// Copyright (C) 2023-2025 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. +// Released under the terms of the GNU Affero General Public License version 3. + +// [ISJTB-CXX-XL20230401-000001] + +/*! + * @file calendar_defs.hpp + * + * @brief + * General calendar-agnostic definitions. + */ + + +#ifndef SIMPLYDT_LIB_GENERAL_CALENDAR_DEFINITIONS_H_ +#define SIMPLYDT_LIB_GENERAL_CALENDAR_DEFINITIONS_H_ + +#include "simplydt/common/simplydt_defs.hpp" +#include + +namespace simplydt +{ + +/*! + * @brief + * Enumeration of available calendar systems. + */ +enum CalendarSystem : uint8_t { + JULIAN, ///< Proleptic solar calendar + GREGORIAN, ///< Civil solar calendar +}; + +/*! + * @brief + * Enumeration of individual calendar components. + */ +enum class CalendarComponent : uint8_t { + DAY = DatetimeComponent::DAY, ///< Calendar day component + MONTH = DatetimeComponent::MONTH, ///< Calendar month component + YEAR = DatetimeComponent::YEAR ///< Calendar year component +}; + +} // namespace simplydt + +#endif // SIMPLYDT_LIB_GENERAL_CALENDAR_DEFINITIONS_H_ From 3b15a7b4ed36f694101bc982b5008a6f0905b931 Mon Sep 17 00:00:00 2001 From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com> Date: Tue, 22 Jul 2025 23:15:47 -0400 Subject: [PATCH 047/400] Update string_utils.hpp --- include/simplydt/common/string_utils.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/simplydt/common/string_utils.hpp b/include/simplydt/common/string_utils.hpp index b499325..4ed0882 100644 --- a/include/simplydt/common/string_utils.hpp +++ b/include/simplydt/common/string_utils.hpp @@ -35,7 +35,7 @@ namespace simplydt * Double-digit string */ template -requires std::is_integral_v + requires std::is_integral_v [[nodiscard]] inline std::string toDoubleDigitStr(const Int_T integer) noexcept { if (integer < 10) From f42dfd032d48266529694205ec689b18cc1c9251 Mon Sep 17 00:00:00 2001 From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com> Date: Tue, 22 Jul 2025 23:42:29 -0400 Subject: [PATCH 048/400] Update stl_chrono_utils.hpp --- include/simplydt/common/stl_chrono_utils.hpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/include/simplydt/common/stl_chrono_utils.hpp b/include/simplydt/common/stl_chrono_utils.hpp index d36d1a1..103d3c8 100644 --- a/include/simplydt/common/stl_chrono_utils.hpp +++ b/include/simplydt/common/stl_chrono_utils.hpp @@ -17,6 +17,7 @@ #define SIMPLYDT_LIB_STL_CHRONO_UTILITIES_H_ #include "simplydt/common/stl_chrono_defs.hpp" +#include "simplydt/common/simplydt_defs.hpp" namespace simplydt::stl { @@ -41,11 +42,9 @@ namespace simplydt::stl const UnixTimestamp* timestamp, CalendarDateTime* out_tm ) { -#if defined(_WIN32) || defined(_WIN64) - // Windows based system +#if defined(SIMPLYDT_WIN32) return localtime_s(out_tm, timestamp) == 0; -#elif defined(__unix__) || defined(__unix) || defined(__APPLE__) - // POSIX compliant system +#elif defined(SIMPLYDT_POSIX) return localtime_r(timestamp, out_tm) != nullptr; #endif } From 0b64531170efa85438813b5792c90184f5a91de0 Mon Sep 17 00:00:00 2001 From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com> Date: Tue, 22 Jul 2025 23:56:38 -0400 Subject: [PATCH 049/400] Create calendar_contract.hpp Incomplete --- .../calendar/concepts/calendar_contract.hpp | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 include/simplydt/calendar/concepts/calendar_contract.hpp diff --git a/include/simplydt/calendar/concepts/calendar_contract.hpp b/include/simplydt/calendar/concepts/calendar_contract.hpp new file mode 100644 index 0000000..d68b7b8 --- /dev/null +++ b/include/simplydt/calendar/concepts/calendar_contract.hpp @@ -0,0 +1,31 @@ + +// Copyright (C) 2023-2025 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. +// Released under the terms of the GNU Affero General Public License version 3. + +// [ISJTB-CXX-XL20230401-000001] + +/*! + * @file calendar_contract.hpp + * + * @brief + * Calendar implementation conceptual contract. + */ + + +#ifndef SIMPLYDT_LIB_CALENDAR_CONTRACT_CONCEPT_H_ +#define SIMPLYDT_LIB_CALENDAR_CONTRACT_CONCEPT_H_ + +#include +#include + +namespace simplydt::concepts +{ + +template +concept contract_abiding_calendar = requires { + requires std::is_same_v; +}; + +} + +#endif // SIMPLYDT_LIB_CALENDAR_CONTRACT_CONCEPT_H_ From ad2251eb0c90db75a43ef7873d9f971d1405ddaa Mon Sep 17 00:00:00 2001 From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com> Date: Tue, 22 Jul 2025 23:56:45 -0400 Subject: [PATCH 050/400] Create abstract_calendar.hpp Incomplete --- .../simplydt/calendar/abstract_calendar.hpp | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 include/simplydt/calendar/abstract_calendar.hpp diff --git a/include/simplydt/calendar/abstract_calendar.hpp b/include/simplydt/calendar/abstract_calendar.hpp new file mode 100644 index 0000000..d3a1b07 --- /dev/null +++ b/include/simplydt/calendar/abstract_calendar.hpp @@ -0,0 +1,34 @@ + +// Copyright (C) 2023-2025 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. +// Released under the terms of the GNU Affero General Public License version 3. + +// [ISJTB-CXX-XL20230401-000001] + +/*! + * @file abstract_calendar.hpp + * + * @brief + * Base CRTP calendar declaration. + */ + + +#ifndef SIMPLYDT_LIB_BASE_CRTP_CALENDAR_H_ +#define SIMPLYDT_LIB_BASE_CRTP_CALENDAR_H_ + +#include "simplydt/calendar/concepts/calendar_contract.hpp" + +namespace simplydt +{ + +/*! +* @brief +* Base contract enforcing calendar. +*/ +template +struct CalendricalSystem { + // Start... +}; + +} + +#endif // SIMPLYDT_LIB_BASE_CRTP_CALENDAR_H_ From 75a30d977b35ffeeeaf0421ee3471bd3be1d1f24 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 23 Jul 2025 00:32:06 -0400 Subject: [PATCH 051/400] Create calendar_traits.hpp Incomplete --- .../calendar/type_traits/calendar_traits.hpp | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 include/simplydt/calendar/type_traits/calendar_traits.hpp diff --git a/include/simplydt/calendar/type_traits/calendar_traits.hpp b/include/simplydt/calendar/type_traits/calendar_traits.hpp new file mode 100644 index 0000000..b0b6aff --- /dev/null +++ b/include/simplydt/calendar/type_traits/calendar_traits.hpp @@ -0,0 +1,34 @@ + +// Copyright (C) 2023-2025 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. +// Released under the terms of the GNU Affero General Public License version 3. + +// [ISJTB-CXX-XL20230401-000001] + +/*! + * @file calendar_traits.hpp + * + * @brief + * Agnostic calendar type traits. + */ + + +#ifndef SIMPLYDT_LIB_CALENDAR_TYPE_TRAITS_H_ +#define SIMPLYDT_LIB_CALENDAR_TYPE_TRAITS_H_ + +#include + +/*! +* @namespace simplydt::type_traits +* +* @brief +* Simply Datetime library type traits. +*/ +namespace simplydt::type_traits +{ + +// TODO: INCOMPLETE!!! +// (simplydt::type_traits::calendar???) + +} + +#endif // SIMPLYDT_LIB_CALENDAR_TYPE_TRAITS_H_ From a0edda80e20417cd3584cf1bbf5bd8b640395c33 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 23 Jul 2025 00:33:17 -0400 Subject: [PATCH 052/400] Create calendar_concepts.hpp --- .../calendar/concepts/calendar_concepts.hpp | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 include/simplydt/calendar/concepts/calendar_concepts.hpp diff --git a/include/simplydt/calendar/concepts/calendar_concepts.hpp b/include/simplydt/calendar/concepts/calendar_concepts.hpp new file mode 100644 index 0000000..8d8abf1 --- /dev/null +++ b/include/simplydt/calendar/concepts/calendar_concepts.hpp @@ -0,0 +1,34 @@ + +// Copyright (C) 2023-2025 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. +// Released under the terms of the GNU Affero General Public License version 3. + +// [ISJTB-CXX-XL20230401-000001] + +/*! + * @file calendar_concepts.hpp + * + * @brief + * Agnostic calendar concepts. + */ + + +#ifndef SIMPLYDT_LIB_CALENDAR_CONCEPTS_H_ +#define SIMPLYDT_LIB_CALENDAR_CONCEPTS_H_ + +#include +#include "simplydt/calendar/type_traits/calendar_traits.hpp" + +/*! +* @namespace simplydt::concepts +* +* @brief +* Simply Datetime library concepts. +*/ +namespace simplydt::concepts +{ + +// TODO: INCOMPLETE!!! + +} + +#endif // SIMPLYDT_LIB_CALENDAR_CONCEPTS_H_ From facb64d1d5b7e12fefe59ab29805e0c3b9968738 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 23 Jul 2025 00:33:27 -0400 Subject: [PATCH 053/400] Update calendar_contract.hpp --- .../calendar/concepts/calendar_contract.hpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/include/simplydt/calendar/concepts/calendar_contract.hpp b/include/simplydt/calendar/concepts/calendar_contract.hpp index d68b7b8..c67fb43 100644 --- a/include/simplydt/calendar/concepts/calendar_contract.hpp +++ b/include/simplydt/calendar/concepts/calendar_contract.hpp @@ -8,22 +8,29 @@ * @file calendar_contract.hpp * * @brief - * Calendar implementation conceptual contract. + * Conceptual calendar implementation contract. */ #ifndef SIMPLYDT_LIB_CALENDAR_CONTRACT_CONCEPT_H_ #define SIMPLYDT_LIB_CALENDAR_CONTRACT_CONCEPT_H_ -#include -#include +#include "simplydt/calendar/concepts/calendar_concepts.hpp" +#include "simplydt/calendar/type_traits/calendar_traits.hpp" namespace simplydt::concepts { +/*! +* @brief +* Concept of a type that meets the criteria to be +* considered a useable calendar implementation. +*/ template concept contract_abiding_calendar = requires { + requires std::is_same_v; + // TODO: INCOMPLETE!!! }; } From a8f80de739e4dda33d94ee1683a14118d828cc10 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 23 Jul 2025 00:33:31 -0400 Subject: [PATCH 054/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index fb42a7d..d90fc3e 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -15,6 +15,7 @@ \* /// \\\ /// \\\ /// | END | \\\ /// \\\ /// \\\ */ // Includes... +#include "simplydt/calendar/abstract_calendar.hpp" int main(int argc, char* argv[]) { From 18360b920383cb6c161e0ddbcc582e440c1b4ba5 Mon Sep 17 00:00:00 2001 From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com> Date: Wed, 23 Jul 2025 00:39:41 -0400 Subject: [PATCH 055/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index d90fc3e..9d186bb 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -5,12 +5,7 @@ * * ~ CLI Debug Executable Notes / TO-DO List ~ * -* -> [] Advocating for strategy-based datetime -* implementation so that it is easy to -* swap the logic that drives the datetime -* type. -* -> [] Need a general place for stuff like -* 'YEAR_MIN/MAX', 'Invalid' string, etc. +* -> [] N/a * \* /// \\\ /// \\\ /// | END | \\\ /// \\\ /// \\\ */ From 88448a675d1e691d197d610096f2fab3ab7fae94 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 23 Jul 2025 20:53:43 -0400 Subject: [PATCH 056/400] Update diagrams.drawio --- docs/prj/diagrams.drawio | 63 +++++++++++++++++++++++----------------- 1 file changed, 36 insertions(+), 27 deletions(-) diff --git a/docs/prj/diagrams.drawio b/docs/prj/diagrams.drawio index e31cdda..d48f647 100644 --- a/docs/prj/diagrams.drawio +++ b/docs/prj/diagrams.drawio @@ -1,92 +1,101 @@ - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + - + From d811e4bcec22aedf6054c9cbf695870c75beac63 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 23 Jul 2025 20:53:48 -0400 Subject: [PATCH 057/400] Delete mockup.pdf --- docs/prj/design/mockup.pdf | Bin 195842 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 docs/prj/design/mockup.pdf diff --git a/docs/prj/design/mockup.pdf b/docs/prj/design/mockup.pdf deleted file mode 100644 index c1f7527de6254e3d763292dd7a51fd8822ba248c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 195842 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

    TT&*rM*k#?Tw6 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

    ~+)d1HJAjY)ATahcl&W5j?$- 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 z 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 Date: Sat, 26 Jul 2025 13:45:33 -0400 Subject: [PATCH 059/400] Incomplete Commit (working remotely on another machine); Mandatory checkpoint commit --- .../simplydt/calendar/abstract_calendar.hpp | 9 ++- .../calendar/concepts/calendar_concepts.hpp | 7 ++- .../calendar/concepts/date_concepts.hpp | 43 +++++++++++++++ .../calendar/concepts/date_contract.hpp | 55 +++++++++++++++++++ .../simplydt/calendar/date/abstract_date.hpp | 52 ++++++++++++++++++ .../calendar/type_traits/calendar_traits.hpp | 7 +-- .../calendar/type_traits/date_traits.hpp | 42 ++++++++++++++ tests/cli/dev_exe.cpp | 21 +++++++ 8 files changed, 227 insertions(+), 9 deletions(-) create mode 100644 include/simplydt/calendar/concepts/date_concepts.hpp create mode 100644 include/simplydt/calendar/concepts/date_contract.hpp create mode 100644 include/simplydt/calendar/date/abstract_date.hpp create mode 100644 include/simplydt/calendar/type_traits/date_traits.hpp diff --git a/include/simplydt/calendar/abstract_calendar.hpp b/include/simplydt/calendar/abstract_calendar.hpp index d3a1b07..60f13e4 100644 --- a/include/simplydt/calendar/abstract_calendar.hpp +++ b/include/simplydt/calendar/abstract_calendar.hpp @@ -22,11 +22,16 @@ namespace simplydt /*! * @brief -* Base contract enforcing calendar. +* Base contract-enforcing calendar. */ template struct CalendricalSystem { - // Start... + // TODO: INCOMPLETE!!! + +private: + CalendricalSystem() = default; + ~CalendricalSystem() = default; + friend Calendar_Impl; }; } diff --git a/include/simplydt/calendar/concepts/calendar_concepts.hpp b/include/simplydt/calendar/concepts/calendar_concepts.hpp index 8d8abf1..96f8507 100644 --- a/include/simplydt/calendar/concepts/calendar_concepts.hpp +++ b/include/simplydt/calendar/concepts/calendar_concepts.hpp @@ -19,15 +19,16 @@ #include "simplydt/calendar/type_traits/calendar_traits.hpp" /*! -* @namespace simplydt::concepts +* @namespace simplydt::concepts::calendar * * @brief -* Simply Datetime library concepts. +* Calendar concepts. */ -namespace simplydt::concepts +namespace simplydt::concepts::calendar { // TODO: INCOMPLETE!!! +// nested_calendar_types : Check for the expected nested types of a calendar } diff --git a/include/simplydt/calendar/concepts/date_concepts.hpp b/include/simplydt/calendar/concepts/date_concepts.hpp new file mode 100644 index 0000000..82c3d92 --- /dev/null +++ b/include/simplydt/calendar/concepts/date_concepts.hpp @@ -0,0 +1,43 @@ + +// Copyright (C) 2023-2025 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. +// Released under the terms of the GNU Affero General Public License version 3. + +// [ISJTB-CXX-XL20230401-000001] + +/*! + * @file date_concepts.hpp + * + * @brief + * Agnostic calendar date concepts. + */ + + +#ifndef SIMPLYDT_LIB_CALENDAR_DATE_CONCEPTS_H_ +#define SIMPLYDT_LIB_CALENDAR_DATE_CONCEPTS_H_ + +#include +#include "simplydt/calendar/type_traits/date_traits.hpp" + +/*! +* @namespace simplydt::concepts +* +* @brief +* Simply Datetime library concepts. +*/ +namespace simplydt::concepts { } + +/*! +* @namespace simplydt::concepts::date +* +* @brief +* Calendar date concepts. +*/ +namespace simplydt::concepts::date { + +// TODO: INCOMPLETE!!! +// nested_date_types : Check for the expected nested types of a date??? +// concepts::date::has_contextual_nested_types + +} + +#endif // SIMPLYDT_LIB_CALENDAR_DATE_CONCEPTS_H_ diff --git a/include/simplydt/calendar/concepts/date_contract.hpp b/include/simplydt/calendar/concepts/date_contract.hpp new file mode 100644 index 0000000..ad1c6c5 --- /dev/null +++ b/include/simplydt/calendar/concepts/date_contract.hpp @@ -0,0 +1,55 @@ + +// Copyright (C) 2023-2025 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. +// Released under the terms of the GNU Affero General Public License version 3. + +// [ISJTB-CXX-XL20230401-000001] + +/*! + * @file date_contract.hpp + * + * @brief + * Conceptual calendar date implementation contract. + */ + + +#ifndef SIMPLYDT_LIB_CALENDAR_DATE_CONTRACT_CONCEPT_H_ +#define SIMPLYDT_LIB_CALENDAR_DATE_CONTRACT_CONCEPT_H_ + +#include "simplydt/calendar/concepts/date_concepts.hpp" +#include "simplydt/calendar/type_traits/date_traits.hpp" + +namespace simplydt::concepts +{ + +/*! +* @brief +* Concept of a type that meets the criteria to be +* considered a useable calendar date implementation. +*/ +template +concept contract_abiding_date = requires { + // TODO: INCOMPLETE!!! + requires std::is_same_v; +}; + +} + +// requires type_traits::date::is_interface_derivative_v; +// requires concepts::date::has_contextual_nested_types; +// requires std::is_same_v; +// +// SIGNATURE: CalendarDate +// std::derived_from>; + +// (I'm gonna have to take the L here with the base Date type) +// (You can't specify the year type in the template...) +// (The user will have to manually specify this ONE thing) +// (Then we can do this...) : +// std::derived_from>; + +// :: The Flow :: +// requires type_traits::date::is_interface_derivative_v; +// requires concepts::date::has_public_interface; +// + +#endif // SIMPLYDT_LIB_CALENDAR_DATE_CONTRACT_CONCEPT_H_ diff --git a/include/simplydt/calendar/date/abstract_date.hpp b/include/simplydt/calendar/date/abstract_date.hpp new file mode 100644 index 0000000..ff7c69b --- /dev/null +++ b/include/simplydt/calendar/date/abstract_date.hpp @@ -0,0 +1,52 @@ + +// Copyright (C) 2023-2025 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. +// Released under the terms of the GNU Affero General Public License version 3. + +// [ISJTB-CXX-XL20230401-000001] + +/*! + * @file abstract_date.hpp + * + * @brief + * Base CRTP calendar date declaration. + */ + + +#ifndef SIMPLYDT_LIB_BASE_CRTP_CALENDAR_DATE_H_ +#define SIMPLYDT_LIB_BASE_CRTP_CALENDAR_DATE_H_ + +#include "simplydt/calendar/concepts/date_contract.hpp" + +namespace simplydt +{ + +/*! +* @brief +* Base contract-enforcing calendar date. +* +* @details +* This is Simply Datetime's generic representation +* of a calendar date. It is not associated with any +* specific calendar and is not a self-constructable +* type. It's responsibility is to enforce a set of +* API requirements on the derived calendar date +* implementations to ensure compatibility with +* library internals and consistenecy. +*/ +template + requires concepts::contract_abiding_date +struct CalendarDate { + using Date = Date_Impl; + using YearInt_t = Year_T; + + // TODO: INCOMPLETE!!! + +private: + CalendarDate() = default; + ~CalendarDate() = default; + friend Date_Impl; +}; + +} + +#endif // SIMPLYDT_LIB_BASE_CRTP_CALENDAR_DATE_H_ diff --git a/include/simplydt/calendar/type_traits/calendar_traits.hpp b/include/simplydt/calendar/type_traits/calendar_traits.hpp index b0b6aff..48756ca 100644 --- a/include/simplydt/calendar/type_traits/calendar_traits.hpp +++ b/include/simplydt/calendar/type_traits/calendar_traits.hpp @@ -18,16 +18,15 @@ #include /*! -* @namespace simplydt::type_traits +* @namespace simplydt::type_traits::calendar * * @brief -* Simply Datetime library type traits. +* Calendar type traits. */ -namespace simplydt::type_traits +namespace simplydt::type_traits::calendar { // TODO: INCOMPLETE!!! -// (simplydt::type_traits::calendar???) } diff --git a/include/simplydt/calendar/type_traits/date_traits.hpp b/include/simplydt/calendar/type_traits/date_traits.hpp new file mode 100644 index 0000000..2f70317 --- /dev/null +++ b/include/simplydt/calendar/type_traits/date_traits.hpp @@ -0,0 +1,42 @@ + +// Copyright (C) 2023-2025 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. +// Released under the terms of the GNU Affero General Public License version 3. + +// [ISJTB-CXX-XL20230401-000001] + +/*! + * @file date_traits.hpp + * + * @brief + * Agnostic calendar date type traits. + */ + + +#ifndef SIMPLYDT_LIB_CALENDAR_DATE_TYPE_TRAITS_H_ +#define SIMPLYDT_LIB_CALENDAR_DATE_TYPE_TRAITS_H_ + +#include +#include "simplydt/calendar/date/abstract_date.hpp" + +/*! +* @namespace simplydt::type_traits +* +* @brief +* Simply Datetime library type traits. +*/ +namespace simplydt::type_traits { } + +/*! +* @namespace simplydt::type_traits::date +* +* @brief +* Calendar date type traits. +*/ +namespace simplydt::type_traits::date +{ + +// TODO: INCOMPLETE!!! + +} + +#endif // SIMPLYDT_LIB_CALENDAR_DATE_TYPE_TRAITS_H_ diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index 9d186bb..a0457c9 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -11,12 +11,33 @@ // Includes... #include "simplydt/calendar/abstract_calendar.hpp" +#include "simplydt/calendar/date/abstract_date.hpp" int main(int argc, char* argv[]) { ProjectInfoOut(); //\\// + // Sample Gregorian date implementation + struct GregorianDate : public simplydt::CalendarDate { + using Repr_Type = uint32_t; + + GregorianDate() noexcept + : simplydt::CalendarDate{ }, date{ 19700101 } + { + // + } + + ~GregorianDate() = default; + + // Start... + + private: + Repr_Type date; + }; + + GregorianDate::Date; + GregorianDate::YearInt_t; // return 0; From a3239330663020fbbd1b39e9467e19a301a66579 Mon Sep 17 00:00:00 2001 From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com> Date: Tue, 5 Aug 2025 11:36:37 -0400 Subject: [PATCH 060/400] Update diagrams.drawio --- docs/prj/diagrams.drawio | 376 +++++++++++++++++++++++++++------------ 1 file changed, 266 insertions(+), 110 deletions(-) diff --git a/docs/prj/diagrams.drawio b/docs/prj/diagrams.drawio index d48f647..3a24236 100644 --- a/docs/prj/diagrams.drawio +++ b/docs/prj/diagrams.drawio @@ -1,6 +1,6 @@ - + - + @@ -14,7 +14,7 @@ - + @@ -85,17 +85,17 @@ - + - - + + - + @@ -105,8 +105,202 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -209,149 +403,111 @@ - - - - - - - - - - - - - - - - - - - - - - - + + - - + + + + + - - - - - - - - - - - + + - - + + - - + + - - - - + + - - + + - - - + + + - - - - - - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + - - - - - + + - - + + - - - - + + - - + + - - + + From 64bc77bb0c5a66b33be99b937a50d9b96b8cc961 Mon Sep 17 00:00:00 2001 From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com> Date: Tue, 5 Aug 2025 11:36:53 -0400 Subject: [PATCH 061/400] Update date_contract.hpp --- include/simplydt/calendar/concepts/date_contract.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/simplydt/calendar/concepts/date_contract.hpp b/include/simplydt/calendar/concepts/date_contract.hpp index ad1c6c5..e2085e8 100644 --- a/include/simplydt/calendar/concepts/date_contract.hpp +++ b/include/simplydt/calendar/concepts/date_contract.hpp @@ -29,7 +29,7 @@ namespace simplydt::concepts template concept contract_abiding_date = requires { // TODO: INCOMPLETE!!! - requires std::is_same_v; + requires std::is_integral_v; }; } From ef93cd812e43903a8c9c38333f12e7482881f870 Mon Sep 17 00:00:00 2001 From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com> Date: Tue, 5 Aug 2025 11:37:00 -0400 Subject: [PATCH 062/400] Update abstract_date.hpp --- include/simplydt/calendar/date/abstract_date.hpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/include/simplydt/calendar/date/abstract_date.hpp b/include/simplydt/calendar/date/abstract_date.hpp index ff7c69b..e3ce04b 100644 --- a/include/simplydt/calendar/date/abstract_date.hpp +++ b/include/simplydt/calendar/date/abstract_date.hpp @@ -22,7 +22,7 @@ namespace simplydt /*! * @brief -* Base contract-enforcing calendar date. +* Base contract-enforcing agnostic calendar date. * * @details * This is Simply Datetime's generic representation @@ -36,7 +36,9 @@ namespace simplydt template requires concepts::contract_abiding_date struct CalendarDate { + /*! @brief Calendar date implementation. */ using Date = Date_Impl; + /*! @brief Calendar date year type. */ using YearInt_t = Year_T; // TODO: INCOMPLETE!!! From 9e97889a384a2602ad72d04ae5b2f4a9edc777ed Mon Sep 17 00:00:00 2001 From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com> Date: Tue, 5 Aug 2025 11:37:09 -0400 Subject: [PATCH 063/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index a0457c9..e17c758 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -36,8 +36,8 @@ int main(int argc, char* argv[]) Repr_Type date; }; - GregorianDate::Date; - GregorianDate::YearInt_t; + //GregorianDate::Date; + //GregorianDate::YearInt_t; // return 0; From f81756d93ca6bfb65efb5c1d78915687073a5d3c Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 6 Aug 2025 01:20:55 -0400 Subject: [PATCH 064/400] Update date_traits.hpp --- include/simplydt/calendar/type_traits/date_traits.hpp | 1 - 1 file changed, 1 deletion(-) diff --git a/include/simplydt/calendar/type_traits/date_traits.hpp b/include/simplydt/calendar/type_traits/date_traits.hpp index 2f70317..6c04f5d 100644 --- a/include/simplydt/calendar/type_traits/date_traits.hpp +++ b/include/simplydt/calendar/type_traits/date_traits.hpp @@ -16,7 +16,6 @@ #define SIMPLYDT_LIB_CALENDAR_DATE_TYPE_TRAITS_H_ #include -#include "simplydt/calendar/date/abstract_date.hpp" /*! * @namespace simplydt::type_traits From 606889facd01a7f45a64d0e796477e76621f70e0 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 6 Aug 2025 01:21:22 -0400 Subject: [PATCH 065/400] Update date_concepts.hpp Incomplete --- .../simplydt/calendar/concepts/date_concepts.hpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/include/simplydt/calendar/concepts/date_concepts.hpp b/include/simplydt/calendar/concepts/date_concepts.hpp index 82c3d92..d2fef6b 100644 --- a/include/simplydt/calendar/concepts/date_concepts.hpp +++ b/include/simplydt/calendar/concepts/date_concepts.hpp @@ -32,12 +32,25 @@ namespace simplydt::concepts { } * @brief * Calendar date concepts. */ -namespace simplydt::concepts::date { +namespace simplydt::concepts::date +{ // TODO: INCOMPLETE!!! // nested_date_types : Check for the expected nested types of a date??? // concepts::date::has_contextual_nested_types + template + concept has_date_component_methods = requires(Date_Impl& d) { + //{ d.year() } -> std::same_as; + //{ d.month() } -> std::same_as; + { d.day() } -> std::convertible_to; + }; + + template + concept has_basic_state_methods = requires(Date_Impl& d) { + { d.isDefault() } -> std::same_as; + }; + } #endif // SIMPLYDT_LIB_CALENDAR_DATE_CONCEPTS_H_ From 65806a66a95abe92169819a374e51c124de39c3b Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 6 Aug 2025 01:21:29 -0400 Subject: [PATCH 066/400] Update date_contract.hpp Incomplete --- include/simplydt/calendar/concepts/date_contract.hpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/simplydt/calendar/concepts/date_contract.hpp b/include/simplydt/calendar/concepts/date_contract.hpp index e2085e8..fec53a8 100644 --- a/include/simplydt/calendar/concepts/date_contract.hpp +++ b/include/simplydt/calendar/concepts/date_contract.hpp @@ -30,6 +30,8 @@ template concept contract_abiding_date = requires { // TODO: INCOMPLETE!!! requires std::is_integral_v; + requires date::has_date_component_methods; + //requires date::has_basic_state_methods; }; } From 7779e766a7dfb77096621ff27ef124b8dba40d55 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 6 Aug 2025 01:21:33 -0400 Subject: [PATCH 067/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index e17c758..9c9bd68 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -13,31 +13,32 @@ #include "simplydt/calendar/abstract_calendar.hpp" #include "simplydt/calendar/date/abstract_date.hpp" -int main(int argc, char* argv[]) -{ - ProjectInfoOut(); +// Sample Gregorian date implementation +struct GregorianDate : public simplydt::CalendarDate { + using Repr_Type = uint32_t; - //\\// - // Sample Gregorian date implementation - struct GregorianDate : public simplydt::CalendarDate { - using Repr_Type = uint32_t; + GregorianDate() noexcept + : simplydt::CalendarDate{ }, date{ 19700101 } + { + // + } - GregorianDate() noexcept - : simplydt::CalendarDate{ }, date{ 19700101 } - { - // - } + ~GregorianDate() = default; - ~GregorianDate() = default; + uint16_t year() const noexcept { return 2025; } + uint8_t month() const noexcept { return 8; } + uint8_t day() noexcept { return 5; } - // Start... +private: + Repr_Type date; +}; - private: - Repr_Type date; - }; - //GregorianDate::Date; - //GregorianDate::YearInt_t; +int main(int argc, char* argv[]) +{ + ProjectInfoOut(); + + //\\// // return 0; From d21085d5045e911271ddd9377f7c1db9e2cf639d Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Thu, 7 Aug 2025 19:34:14 -0400 Subject: [PATCH 068/400] Update date_concepts.hpp --- .../calendar/concepts/date_concepts.hpp | 25 +++++++++++++------ 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/include/simplydt/calendar/concepts/date_concepts.hpp b/include/simplydt/calendar/concepts/date_concepts.hpp index d2fef6b..d70699f 100644 --- a/include/simplydt/calendar/concepts/date_concepts.hpp +++ b/include/simplydt/calendar/concepts/date_concepts.hpp @@ -35,22 +35,31 @@ namespace simplydt::concepts { } namespace simplydt::concepts::date { -// TODO: INCOMPLETE!!! -// nested_date_types : Check for the expected nested types of a date??? -// concepts::date::has_contextual_nested_types + // TODO: INCOMPLETE!!! template - concept has_date_component_methods = requires(Date_Impl& d) { - //{ d.year() } -> std::same_as; - //{ d.month() } -> std::same_as; - { d.day() } -> std::convertible_to; + concept has_date_component_methods = requires(const Date_Impl& d) { + { d.year() } -> std::same_as; + { d.month() } -> std::same_as; + { d.day() } -> std::same_as; }; template - concept has_basic_state_methods = requires(Date_Impl& d) { + concept has_basic_state_methods = requires(const Date_Impl& d) { { d.isDefault() } -> std::same_as; }; + template + concept has_comparison_methods = requires(const Date_Impl& d) { + { d.isBefore(d) } -> std::same_as; + { d.isAfter(d) } -> std::same_as; + }; + + template + concept has_contextual_nested_types = requires { + typename Date_Impl::YearInt_t; + }; + } #endif // SIMPLYDT_LIB_CALENDAR_DATE_CONCEPTS_H_ From 940e1e211656dc721f98c1448e8a16d297d56ecd Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sun, 10 Aug 2025 04:17:37 -0400 Subject: [PATCH 069/400] Update calendar_concepts.hpp --- include/simplydt/calendar/concepts/calendar_concepts.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/simplydt/calendar/concepts/calendar_concepts.hpp b/include/simplydt/calendar/concepts/calendar_concepts.hpp index 96f8507..fab1398 100644 --- a/include/simplydt/calendar/concepts/calendar_concepts.hpp +++ b/include/simplydt/calendar/concepts/calendar_concepts.hpp @@ -15,8 +15,8 @@ #ifndef SIMPLYDT_LIB_CALENDAR_CONCEPTS_H_ #define SIMPLYDT_LIB_CALENDAR_CONCEPTS_H_ -#include #include "simplydt/calendar/type_traits/calendar_traits.hpp" +#include /*! * @namespace simplydt::concepts::calendar From d0a358b3306693dfe481251080b03265b56bb421 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sun, 10 Aug 2025 04:18:49 -0400 Subject: [PATCH 070/400] Update calendar_contract.hpp --- include/simplydt/calendar/concepts/calendar_contract.hpp | 1 - 1 file changed, 1 deletion(-) diff --git a/include/simplydt/calendar/concepts/calendar_contract.hpp b/include/simplydt/calendar/concepts/calendar_contract.hpp index c67fb43..17181ee 100644 --- a/include/simplydt/calendar/concepts/calendar_contract.hpp +++ b/include/simplydt/calendar/concepts/calendar_contract.hpp @@ -28,7 +28,6 @@ namespace simplydt::concepts */ template concept contract_abiding_calendar = requires { - requires std::is_same_v; // TODO: INCOMPLETE!!! }; From 813d679397dfefbc8d1e479c2de9d46fbb588bea Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sun, 10 Aug 2025 04:19:40 -0400 Subject: [PATCH 071/400] Update stl_chrono_utils.hpp --- include/simplydt/common/stl_chrono_utils.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/simplydt/common/stl_chrono_utils.hpp b/include/simplydt/common/stl_chrono_utils.hpp index 103d3c8..fa33e06 100644 --- a/include/simplydt/common/stl_chrono_utils.hpp +++ b/include/simplydt/common/stl_chrono_utils.hpp @@ -16,8 +16,8 @@ #ifndef SIMPLYDT_LIB_STL_CHRONO_UTILITIES_H_ #define SIMPLYDT_LIB_STL_CHRONO_UTILITIES_H_ -#include "simplydt/common/stl_chrono_defs.hpp" #include "simplydt/common/simplydt_defs.hpp" +#include "simplydt/common/stl_chrono_defs.hpp" namespace simplydt::stl { From c5335e5807c36755d20f3bfe7c996647d26bea77 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sun, 10 Aug 2025 04:22:11 -0400 Subject: [PATCH 072/400] Update diagrams.drawio --- docs/prj/diagrams.drawio | 123 ++++++++++++++++++++++++++------------- 1 file changed, 84 insertions(+), 39 deletions(-) diff --git a/docs/prj/diagrams.drawio b/docs/prj/diagrams.drawio index 3a24236..3975f4d 100644 --- a/docs/prj/diagrams.drawio +++ b/docs/prj/diagrams.drawio @@ -1,4 +1,4 @@ - + @@ -14,88 +14,133 @@ - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + - + @@ -462,51 +507,51 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + From 80dcafb36b79e43e88e008dfc04099632bac88e2 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sun, 10 Aug 2025 04:24:21 -0400 Subject: [PATCH 073/400] Update date_concepts.hpp --- include/simplydt/calendar/concepts/date_concepts.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/simplydt/calendar/concepts/date_concepts.hpp b/include/simplydt/calendar/concepts/date_concepts.hpp index d70699f..1409da8 100644 --- a/include/simplydt/calendar/concepts/date_concepts.hpp +++ b/include/simplydt/calendar/concepts/date_concepts.hpp @@ -15,8 +15,8 @@ #ifndef SIMPLYDT_LIB_CALENDAR_DATE_CONCEPTS_H_ #define SIMPLYDT_LIB_CALENDAR_DATE_CONCEPTS_H_ -#include #include "simplydt/calendar/type_traits/date_traits.hpp" +#include /*! * @namespace simplydt::concepts @@ -35,7 +35,7 @@ namespace simplydt::concepts { } namespace simplydt::concepts::date { - // TODO: INCOMPLETE!!! +// TODO: INCOMPLETE!!! template concept has_date_component_methods = requires(const Date_Impl& d) { From 4c03e15d3e57fa3b76ca3682a60713b372f158d6 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sun, 10 Aug 2025 04:25:39 -0400 Subject: [PATCH 074/400] Update date_contract.hpp --- .../calendar/concepts/date_contract.hpp | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/include/simplydt/calendar/concepts/date_contract.hpp b/include/simplydt/calendar/concepts/date_contract.hpp index fec53a8..e3478b8 100644 --- a/include/simplydt/calendar/concepts/date_contract.hpp +++ b/include/simplydt/calendar/concepts/date_contract.hpp @@ -36,22 +36,4 @@ concept contract_abiding_date = requires { } -// requires type_traits::date::is_interface_derivative_v; -// requires concepts::date::has_contextual_nested_types; -// requires std::is_same_v; -// -// SIGNATURE: CalendarDate -// std::derived_from>; - -// (I'm gonna have to take the L here with the base Date type) -// (You can't specify the year type in the template...) -// (The user will have to manually specify this ONE thing) -// (Then we can do this...) : -// std::derived_from>; - -// :: The Flow :: -// requires type_traits::date::is_interface_derivative_v; -// requires concepts::date::has_public_interface; -// - #endif // SIMPLYDT_LIB_CALENDAR_DATE_CONTRACT_CONCEPT_H_ From d4f144550931a428033af5ed2b6f7bcb9c3ec425 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sun, 10 Aug 2025 04:26:46 -0400 Subject: [PATCH 075/400] Update abstract_date.hpp --- .../simplydt/calendar/date/abstract_date.hpp | 58 +++++++++++++------ 1 file changed, 41 insertions(+), 17 deletions(-) diff --git a/include/simplydt/calendar/date/abstract_date.hpp b/include/simplydt/calendar/date/abstract_date.hpp index e3ce04b..6d15a51 100644 --- a/include/simplydt/calendar/date/abstract_date.hpp +++ b/include/simplydt/calendar/date/abstract_date.hpp @@ -16,39 +16,63 @@ #define SIMPLYDT_LIB_BASE_CRTP_CALENDAR_DATE_H_ #include "simplydt/calendar/concepts/date_contract.hpp" +#include "simplydt/common/calendar_defs.hpp" +#include namespace simplydt { /*! -* @brief -* Base contract-enforcing agnostic calendar date. -* -* @details -* This is Simply Datetime's generic representation -* of a calendar date. It is not associated with any -* specific calendar and is not a self-constructable -* type. It's responsibility is to enforce a set of -* API requirements on the derived calendar date -* implementations to ensure compatibility with -* library internals and consistenecy. -*/ + * @brief + * Base contract-enforcing agnostic calendar date. + * + * @details + * This is Simply Datetime's generic representation + * of a calendar date. It is not associated with any + * specific calendar and is not a self-constructable + * type. It's responsibility is to enforce a set of + * API requirements on the derived calendar date + * implementations to ensure compatibility with + * library internals and consistenecy. + */ +// TODO: Above documentaion needs to updated... template - requires concepts::contract_abiding_date struct CalendarDate { /*! @brief Calendar date implementation. */ using Date = Date_Impl; /*! @brief Calendar date year type. */ using YearInt_t = Year_T; - // TODO: INCOMPLETE!!! + [[nodiscard]] std::optional getComponent(const CalendarComponent component) const + { + switch (component) { + case CalendarComponent::YEAR: + return thisImpl().year(); + case CalendarComponent::MONTH: + return thisImpl().month(); + case CalendarComponent::DAY: + return thisImpl().day(); + default: + return std::nullopt; // Invalid component request + }; + } -private: - CalendarDate() = default; + private: + CalendarDate() = default; ~CalendarDate() = default; friend Date_Impl; + + [[nodiscard]] const Date& thisImpl() const noexcept + { + return static_cast(*this); + } + + [[nodiscard]] Date& thisImpl() noexcept + { + return static_cast(*this); + } }; -} +} // namespace simplydt #endif // SIMPLYDT_LIB_BASE_CRTP_CALENDAR_DATE_H_ From eb260a0fe353ef160f95e61ffcfdc3a290451b95 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sun, 10 Aug 2025 04:26:58 -0400 Subject: [PATCH 076/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 45 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 43 insertions(+), 2 deletions(-) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index 9c9bd68..7da7897 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -13,8 +13,9 @@ #include "simplydt/calendar/abstract_calendar.hpp" #include "simplydt/calendar/date/abstract_date.hpp" -// Sample Gregorian date implementation +// Sample Gregorian date interface struct GregorianDate : public simplydt::CalendarDate { + /*! @brief Underlying date representation type. */ using Repr_Type = uint32_t; GregorianDate() noexcept @@ -30,10 +31,50 @@ struct GregorianDate : public simplydt::CalendarDate { uint8_t day() noexcept { return 5; } private: - Repr_Type date; + Repr_Type date; ///< Calendar date }; +//========================================================\\ +// :: ~ "Managing the Incomplete Type Issue w/ CRTP" ~ :: \\ +//========================================================\\ +// +// PROBLEM: +// -> The base CRTP CalendarDate class enforces a concept +// called 'contract_abiding_date'. +// -> The 'contract_abiding_date' concept enforces a set +// of sub-concepts that seek to validate aspects of +// the derived CRTP classes interface. +// -> However, the derived classes interface has not yet +// been parsed by the compiler. The concept is trying +// to validate a type that is incomplete. +// -> This is because the concept is invoked while we are +// actively in the middle of declaring the derived +// type and its interface. +// +// SOLUTIONS: +// -> Defer interface validation to elsewhere; but where? +// -> (This approach will cause substitution failure +// error messages to touch the build log, not +// something we want happening...) +// -> Remove 'contract_abiding_date' concept from CRTP base +// and instead enforce a subset of constraints that do +// not concern the derived interface. Then throughout the +// library, enforce the 'contract_abiding_date' concept +// where applicable. +// +// NOTES: +// -> Recall that you made the decision to use CRTP +// in a customized manner where the roles of the base +// and derived element switched. It is the derived +// class that presents the public interface while the +// base takes a back seat and just provides common +// functionality. +// +//========================================================\\ + + + int main(int argc, char* argv[]) { ProjectInfoOut(); From e0d73ee5d07e7e5444a2a2c9990d0e96bd1a04f4 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sun, 10 Aug 2025 04:28:30 -0400 Subject: [PATCH 077/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 41 ++--------------------------------------- 1 file changed, 2 insertions(+), 39 deletions(-) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index 7da7897..e211ece 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -13,6 +13,8 @@ #include "simplydt/calendar/abstract_calendar.hpp" #include "simplydt/calendar/date/abstract_date.hpp" + + // Sample Gregorian date interface struct GregorianDate : public simplydt::CalendarDate { /*! @brief Underlying date representation type. */ @@ -35,45 +37,6 @@ struct GregorianDate : public simplydt::CalendarDate { }; -//========================================================\\ -// :: ~ "Managing the Incomplete Type Issue w/ CRTP" ~ :: \\ -//========================================================\\ -// -// PROBLEM: -// -> The base CRTP CalendarDate class enforces a concept -// called 'contract_abiding_date'. -// -> The 'contract_abiding_date' concept enforces a set -// of sub-concepts that seek to validate aspects of -// the derived CRTP classes interface. -// -> However, the derived classes interface has not yet -// been parsed by the compiler. The concept is trying -// to validate a type that is incomplete. -// -> This is because the concept is invoked while we are -// actively in the middle of declaring the derived -// type and its interface. -// -// SOLUTIONS: -// -> Defer interface validation to elsewhere; but where? -// -> (This approach will cause substitution failure -// error messages to touch the build log, not -// something we want happening...) -// -> Remove 'contract_abiding_date' concept from CRTP base -// and instead enforce a subset of constraints that do -// not concern the derived interface. Then throughout the -// library, enforce the 'contract_abiding_date' concept -// where applicable. -// -// NOTES: -// -> Recall that you made the decision to use CRTP -// in a customized manner where the roles of the base -// and derived element switched. It is the derived -// class that presents the public interface while the -// base takes a back seat and just provides common -// functionality. -// -//========================================================\\ - - int main(int argc, char* argv[]) { From 00d500fb2081b242cc5bfa2fd1ca134337704aaa Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sun, 10 Aug 2025 04:38:02 -0400 Subject: [PATCH 078/400] Update date_concepts.hpp --- include/simplydt/calendar/concepts/date_concepts.hpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/include/simplydt/calendar/concepts/date_concepts.hpp b/include/simplydt/calendar/concepts/date_concepts.hpp index 1409da8..c3cbcf2 100644 --- a/include/simplydt/calendar/concepts/date_concepts.hpp +++ b/include/simplydt/calendar/concepts/date_concepts.hpp @@ -35,8 +35,6 @@ namespace simplydt::concepts { } namespace simplydt::concepts::date { -// TODO: INCOMPLETE!!! - template concept has_date_component_methods = requires(const Date_Impl& d) { { d.year() } -> std::same_as; From 6fed997b73f3669d00d11f09e4afaf88b073c236 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sun, 10 Aug 2025 19:31:13 -0400 Subject: [PATCH 079/400] Update date_contract.hpp --- include/simplydt/calendar/concepts/date_contract.hpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/include/simplydt/calendar/concepts/date_contract.hpp b/include/simplydt/calendar/concepts/date_contract.hpp index e3478b8..31306bb 100644 --- a/include/simplydt/calendar/concepts/date_contract.hpp +++ b/include/simplydt/calendar/concepts/date_contract.hpp @@ -31,9 +31,17 @@ concept contract_abiding_date = requires { // TODO: INCOMPLETE!!! requires std::is_integral_v; requires date::has_date_component_methods; - //requires date::has_basic_state_methods; + requires date::has_basic_state_methods; }; } +#ifndef SIMPLYDT_ASSERT_DATE_INTERFACE_CONTRACT +#define SIMPLYDT_ASSERT_DATE_INTERFACE_CONTRACT(Class) \ + static_assert( \ + simplydt::concepts::contract_abiding_date, \ + #Class " implementation does not fulfill the public API contract." \ + ); +#endif + #endif // SIMPLYDT_LIB_CALENDAR_DATE_CONTRACT_CONCEPT_H_ From b3e5987ab3063c7e9fa2fbee046703c20e1b4f7d Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sun, 10 Aug 2025 19:31:32 -0400 Subject: [PATCH 080/400] Update abstract_date.hpp --- include/simplydt/calendar/date/abstract_date.hpp | 1 - 1 file changed, 1 deletion(-) diff --git a/include/simplydt/calendar/date/abstract_date.hpp b/include/simplydt/calendar/date/abstract_date.hpp index 6d15a51..c928957 100644 --- a/include/simplydt/calendar/date/abstract_date.hpp +++ b/include/simplydt/calendar/date/abstract_date.hpp @@ -15,7 +15,6 @@ #ifndef SIMPLYDT_LIB_BASE_CRTP_CALENDAR_DATE_H_ #define SIMPLYDT_LIB_BASE_CRTP_CALENDAR_DATE_H_ -#include "simplydt/calendar/concepts/date_contract.hpp" #include "simplydt/common/calendar_defs.hpp" #include From 6277c2119608110974a5059f873ff20d246db8c5 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sun, 10 Aug 2025 19:31:47 -0400 Subject: [PATCH 081/400] Create gregorian_defs.hpp --- .../calendar/gregorian/gregorian_defs.hpp | 180 ++++++++++++++++++ 1 file changed, 180 insertions(+) create mode 100644 include/simplydt/calendar/gregorian/gregorian_defs.hpp diff --git a/include/simplydt/calendar/gregorian/gregorian_defs.hpp b/include/simplydt/calendar/gregorian/gregorian_defs.hpp new file mode 100644 index 0000000..143297c --- /dev/null +++ b/include/simplydt/calendar/gregorian/gregorian_defs.hpp @@ -0,0 +1,180 @@ + +// Copyright (C) 2026 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. +// Released under the terms of the GNU Affero General Public License version 3. + +// [ISJTB-CXX-XL20230401-000001] + +/*! + * @file gregorian_defs.hpp + * + * @brief + * Gregorian calendar system definitions. + */ + + +#ifndef SIMPLYDT_LIB_GREGORIAN_CALENDAR_DEFINITIONS_H_ +#define SIMPLYDT_LIB_GREGORIAN_CALENDAR_DEFINITIONS_H_ + +#include +#include +#include + +/*! + * @namespace simplydt::gregorian + * + * @brief + * Standard civil calendar system. + */ +namespace simplydt::gregorian +{ + +/*! + * @brief + * Gregorian year integer type. + * + * @note + * The underlying type used to represent Gregorian + * calendar years imposes a limit on the range of + * representable dates. + */ +using Year_Type = uint16_t; + +/*! +* @brief +* Abbreviation length for Gregorian calendar name +* literals. +* +* @details +* Details length of abbreviated Gregorian calendar +* day-of-week and month names. +*/ +constexpr int ABBREV_LENGTH = 3; + +/*! + * @brief + * Enumeration of Gregorian calendar months. + */ +enum Month : uint8_t { + JANUARY, ///< January (1) + FEBRUARY, ///< February (2) + MARCH, ///< March (3) + APRIL, ///< April (4) + MAY, ///< May (5) + JUNE, ///< June (6) + JULY, ///< July (7) + AUGUST, ///< August (8) + SEPTEMBER, ///< September (9) + OCTOBER, ///< October (10) + NOVEMBER, ///< November (11) + DECEMBER ///< December (12) +}; + +/*! + * @brief + * Enumeration of Gregorian calendar days of week. + */ +enum DayOfWeek : uint8_t { + SUNDAY, ///< Sunday + MONDAY, ///< Monday + TUESDAY, ///< Tuesday + WEDNESDAY, ///< Wednesday + THURSDAY, ///< Thursday + FRIDAY, ///< Friday + SATURDAY ///< Saturday +}; + +/*! + * @brief + * Array of Gregorian calendar month name literals. + */ +constexpr std::array Months = { + "January", ///< Index 0 + "February", ///< Index 1 + "March", ///< Index 2 + "April", ///< Index 3 + "May", ///< Index 4 + "June", ///< Index 5 + "July", ///< Index 6 + "August", ///< Index 7 + "September", ///< Index 8 + "October", ///< Index 9 + "November", ///< Index 10 + "December" ///< Index 11 +}; + +/*! + * @brief + * Array of abbreviated Gregorian calendar month + * names. + */ +constexpr std::array MonthAbbrevs = { + std::string_view(Months[JANUARY], ABBREV_LENGTH), ///< Jan + std::string_view(Months[FEBRUARY], ABBREV_LENGTH), ///< Feb + std::string_view(Months[MARCH], ABBREV_LENGTH), ///< Mar + std::string_view(Months[APRIL], ABBREV_LENGTH), ///< Apr + std::string_view(Months[MAY], ABBREV_LENGTH), ///< May + std::string_view(Months[JUNE], ABBREV_LENGTH), ///< Jun + std::string_view(Months[JULY], ABBREV_LENGTH), ///< Jul + std::string_view(Months[AUGUST], ABBREV_LENGTH), ///< Aug + std::string_view(Months[SEPTEMBER], ABBREV_LENGTH), ///< Sep + std::string_view(Months[OCTOBER], ABBREV_LENGTH), ///< Oct + std::string_view(Months[NOVEMBER], ABBREV_LENGTH), ///< Nov + std::string_view(Months[DECEMBER], ABBREV_LENGTH) ///< Dec +}; + +/*! + * @brief + * Array of Gregorian calendar day-of-week literals. + */ +constexpr std::array DaysOfWeek = { + "Sunday", ///< Index 0 + "Monday", ///< Index 1 + "Tuesday", ///< Index 2 + "Wednesday", ///< Index 3 + "Thursday", ///< Index 4 + "Friday", ///< Index 5 + "Saturday" ///< Index 6 +}; + +/*! + * @brief + * Array of abbreviated Gregorian calendar day-of-week + * literals. + */ +constexpr std::array DayOfWeekAbbrevs = { + std::string_view(DaysOfWeek[SUNDAY], ABBREV_LENGTH), ///< Sun + std::string_view(DaysOfWeek[MONDAY], ABBREV_LENGTH), ///< Mon + std::string_view(DaysOfWeek[TUESDAY], ABBREV_LENGTH), ///< Tue + std::string_view(DaysOfWeek[WEDNESDAY], ABBREV_LENGTH), ///< Wed + std::string_view(DaysOfWeek[THURSDAY], ABBREV_LENGTH), ///< Thu + std::string_view(DaysOfWeek[FRIDAY], ABBREV_LENGTH), ///< Fri + std::string_view(DaysOfWeek[SATURDAY], ABBREV_LENGTH) ///< Sat +}; + +/*! + * @brief + * Minimum day of Gregorian month. + */ +constexpr uint8_t MIN_DAY_OF_MONTH = 1; + +/*! + * @brief + * Maximum day of Gregorian month. + */ +constexpr uint8_t MAX_DAY_OF_MONTH = 31; + +/*! + * @brief + * Minimum month of Gregorian year. + */ +constexpr uint8_t MIN_MONTH_OF_YEAR = 1; + +/*! + * @brief + * Maximum month of Gregorian year. + */ +constexpr uint8_t MAX_MONTH_OF_YEAR = 12; + +} + +#endif // SIMPLYDT_LIB_GREGORIAN_CALENDAR_DEFINITIONS_H_ From 87c9d56fc53ed8e500d76416d13d3825f29f720d Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sun, 10 Aug 2025 19:32:16 -0400 Subject: [PATCH 082/400] Create gregorian_date.hpp --- .../calendar/gregorian/gregorian_date.hpp | 118 ++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 include/simplydt/calendar/gregorian/gregorian_date.hpp diff --git a/include/simplydt/calendar/gregorian/gregorian_date.hpp b/include/simplydt/calendar/gregorian/gregorian_date.hpp new file mode 100644 index 0000000..77744fe --- /dev/null +++ b/include/simplydt/calendar/gregorian/gregorian_date.hpp @@ -0,0 +1,118 @@ + +// Copyright (C) 2026 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. +// Released under the terms of the GNU Affero General Public License version 3. + +// [ISJTB-CXX-XL20230401-000001] + +/*! + * @file gregorian_date.hpp + * + * @brief + * Gregorian calendar date declaration. + */ + + +#ifndef SIMPLYDT_LIB_GREGORIAN_DATE_STRUCT_H_ +#define SIMPLYDT_LIB_GREGORIAN_DATE_STRUCT_H_ + +#include "simplydt/calendar/date/abstract_date.hpp" +#include "simplydt/calendar/concepts/date_contract.hpp" +#include "simplydt/calendar/gregorian/gregorian_defs.hpp" + +namespace simplydt::gregorian +{ + +/*! + * @brief + * Gregorian calendar date. + * + * @details + * This type serves as a broken-down form of + * Gregorian calendar dates and has no calendar + * knowledge. This type does not validate the + * date values provided to the constructor beyond + * disregarding nonsensical values. Such values + * are the kind that could obviously never be a + * date (i.e, 2023-04-32, 2023-15-11, etc). + * Consequently, a well-constructed `GregorianDate` + * does not automatically imply that date exists on + * the real-world calendar. The calendar can verify + * the validity of the date held by this type. + */ +struct GregorianDate : public CalendarDate { + /*! @brief Underlying date representation type. */ + using Repr_Type = uint32_t; + + /*! @brief Factor used to store and retrieve year values. */ + static constexpr Repr_Type YEAR_FACTOR = 10'000; + + /*! @brief Factor used to store and retrieve month values. */ + static constexpr Repr_Type MONTH_FACTOR = 100; + + /*! @brief Default Gregorian calendar date. */ + static constexpr Repr_Type DEFAULT_DATE = ((1'970 * YEAR_FACTOR) + 101); + + /*! + * @brief + * Encoded Gregorian calendar date to integer. + * + * @return + * Gregorian calendar date as integer + */ + static constexpr Repr_Type encodeGregorianDateToInteger( + const YearInt_t year, const uint8_t month, const uint8_t day + ) noexcept + { + if ((month < MIN_MONTH_OF_YEAR) || (month > MAX_MONTH_OF_YEAR) || (day < MIN_DAY_OF_MONTH) || (day > MAX_DAY_OF_MONTH)) + return 0; // Invalid date params + + return ((year * YEAR_FACTOR) + (month * MONTH_FACTOR) + day); + } + + /*! + * @brief + * Retrieve year component from encoded Gregorian + * date integer. + * + * @return + * Gregorian date year component + */ + static constexpr YearInt_t extractEncodedYear(const Repr_Type& encoded_date) noexcept; + + /*! + * @brief + * Retrieve month component from encoded Gregorian + * date integer. + * + * @return + * Gregorian date month component + */ + static constexpr uint8_t extractEncodedMonth(const Repr_Type& encoded_date) noexcept; + + /*! + * @brief + * Retrieve day component from encoded Gregorian + * date integer. + * + * @return + * Gregorian date day component + */ + static constexpr uint8_t extractEncodedDay(const Repr_Type& encoded_date) noexcept; + + GregorianDate() noexcept : CalendarDate{ }, + date{ DEFAULT_DATE } + { + // + } + + ~GregorianDate() = default; + +private: + Repr_Type date; ///< Calendar date +}; + +// SIMPLYDT_ASSERT_DATE_INTERFACE_CONTRACT(GregorianDate); + +} + +#endif // SIMPLYDT_LIB_GREGORIAN_DATE_STRUCT_H_ From f1fe342e5105db06e8586fdd94f9bf6efa46661c Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sun, 10 Aug 2025 19:32:52 -0400 Subject: [PATCH 083/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 26 ++------------------------ 1 file changed, 2 insertions(+), 24 deletions(-) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index e211ece..77cb2af 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -11,30 +11,7 @@ // Includes... #include "simplydt/calendar/abstract_calendar.hpp" -#include "simplydt/calendar/date/abstract_date.hpp" - - - -// Sample Gregorian date interface -struct GregorianDate : public simplydt::CalendarDate { - /*! @brief Underlying date representation type. */ - using Repr_Type = uint32_t; - - GregorianDate() noexcept - : simplydt::CalendarDate{ }, date{ 19700101 } - { - // - } - - ~GregorianDate() = default; - - uint16_t year() const noexcept { return 2025; } - uint8_t month() const noexcept { return 8; } - uint8_t day() noexcept { return 5; } - -private: - Repr_Type date; ///< Calendar date -}; +#include "simplydt/calendar/gregorian/gregorian_date.hpp" @@ -43,6 +20,7 @@ int main(int argc, char* argv[]) ProjectInfoOut(); //\\// + simplydt::gregorian::GregorianDate demo{}; // return 0; From 0312a46b63a752df4de49e87293863dde4d2ac3b Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sun, 10 Aug 2025 21:58:40 -0400 Subject: [PATCH 084/400] Update gregorian_date.hpp --- .../calendar/gregorian/gregorian_date.hpp | 197 +++++++++++------- 1 file changed, 126 insertions(+), 71 deletions(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_date.hpp b/include/simplydt/calendar/gregorian/gregorian_date.hpp index 77744fe..aa401d6 100644 --- a/include/simplydt/calendar/gregorian/gregorian_date.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_date.hpp @@ -15,8 +15,8 @@ #ifndef SIMPLYDT_LIB_GREGORIAN_DATE_STRUCT_H_ #define SIMPLYDT_LIB_GREGORIAN_DATE_STRUCT_H_ -#include "simplydt/calendar/date/abstract_date.hpp" #include "simplydt/calendar/concepts/date_contract.hpp" +#include "simplydt/calendar/date/abstract_date.hpp" #include "simplydt/calendar/gregorian/gregorian_defs.hpp" namespace simplydt::gregorian @@ -40,79 +40,134 @@ namespace simplydt::gregorian * the validity of the date held by this type. */ struct GregorianDate : public CalendarDate { - /*! @brief Underlying date representation type. */ - using Repr_Type = uint32_t; - - /*! @brief Factor used to store and retrieve year values. */ - static constexpr Repr_Type YEAR_FACTOR = 10'000; - - /*! @brief Factor used to store and retrieve month values. */ - static constexpr Repr_Type MONTH_FACTOR = 100; - - /*! @brief Default Gregorian calendar date. */ - static constexpr Repr_Type DEFAULT_DATE = ((1'970 * YEAR_FACTOR) + 101); - - /*! - * @brief - * Encoded Gregorian calendar date to integer. - * - * @return - * Gregorian calendar date as integer - */ - static constexpr Repr_Type encodeGregorianDateToInteger( - const YearInt_t year, const uint8_t month, const uint8_t day - ) noexcept - { - if ((month < MIN_MONTH_OF_YEAR) || (month > MAX_MONTH_OF_YEAR) || (day < MIN_DAY_OF_MONTH) || (day > MAX_DAY_OF_MONTH)) - return 0; // Invalid date params - - return ((year * YEAR_FACTOR) + (month * MONTH_FACTOR) + day); - } - - /*! - * @brief - * Retrieve year component from encoded Gregorian - * date integer. - * - * @return - * Gregorian date year component - */ - static constexpr YearInt_t extractEncodedYear(const Repr_Type& encoded_date) noexcept; - - /*! - * @brief - * Retrieve month component from encoded Gregorian - * date integer. - * - * @return - * Gregorian date month component - */ - static constexpr uint8_t extractEncodedMonth(const Repr_Type& encoded_date) noexcept; - - /*! - * @brief - * Retrieve day component from encoded Gregorian - * date integer. - * - * @return - * Gregorian date day component - */ - static constexpr uint8_t extractEncodedDay(const Repr_Type& encoded_date) noexcept; - - GregorianDate() noexcept : CalendarDate{ }, - date{ DEFAULT_DATE } - { - // - } - - ~GregorianDate() = default; - -private: - Repr_Type date; ///< Calendar date + /*! @brief Underlying date representation type. */ + using Repr_Type = uint32_t; + + /*! @brief Factor used to store and retrieve year values. */ + static constexpr Repr_Type YEAR_FACTOR = 10'000; + + /*! @brief Factor used to store and retrieve month values. */ + static constexpr Repr_Type MONTH_FACTOR = 100; + + /*! @brief Default Gregorian calendar date. */ + static constexpr Repr_Type DEFAULT_DATE = ((1'970 * YEAR_FACTOR) + 101); + + /*! + * @brief + * Encoded Gregorian calendar date to integer. + * + * @return + * Gregorian calendar date as integer + */ + static constexpr Repr_Type encodeGregorianDateToInteger( + const YearInt_t year, const uint8_t month, const uint8_t day + ) noexcept + { + if ((month < MIN_MONTH_OF_YEAR) || (month > MAX_MONTH_OF_YEAR) || + (day < MIN_DAY_OF_MONTH) || (day > MAX_DAY_OF_MONTH)) + return 0; // Invalid date params + + return ((year * YEAR_FACTOR) + (month * MONTH_FACTOR) + day); + } + + /*! + * @brief + * Intercept invalid signal from date encoding and return + * default date. + * + * @details + * This is a compile-time helper for the `GregorianDate` + * constructors. Non-zero values pass through this method + * while zeros are intercepted and yeild the default date. + * + * @return + * Valid encoded date, default date otherwise + */ + static constexpr Repr_Type useDefaultIfInvalid(const Repr_Type& encoded_date) noexcept + { + return (encoded_date == 0) ? DEFAULT_DATE : encoded_date; + } + + /*! + * @brief + * Retrieve year component from encoded Gregorian + * date integer. + * + * @return + * Gregorian date year component + */ + static constexpr YearInt_t extractEncodedYear(const Repr_Type& encoded_date) noexcept + { + return static_cast(encoded_date / YEAR_FACTOR); + } + + /*! + * @brief + * Retrieve month component from encoded Gregorian + * date integer. + * + * @return + * Gregorian date month component + */ + static constexpr uint8_t extractEncodedMonth(const Repr_Type& encoded_date) noexcept + { + return static_cast((encoded_date % YEAR_FACTOR) / MONTH_FACTOR); + } + + /*! + * @brief + * Retrieve day component from encoded Gregorian + * date integer. + * + * @return + * Gregorian date day component + */ + static constexpr uint8_t extractEncodedDay(const Repr_Type& encoded_date) noexcept + { + return static_cast((encoded_date % YEAR_FACTOR) % MONTH_FACTOR); + } + + /*! + * @brief + * Construct Gregorian calendar date using year, + * month, and day values. + */ + constexpr GregorianDate(const YearInt_t year, const uint8_t month, const uint8_t day) noexcept + : CalendarDate{}, + date{useDefaultIfInvalid(encodeGregorianDateToInteger(year, month, day))} + { + // + } + + /*! + * @brief + * Construct Gregorian calendar date using year + * and month values; assume first of month. + */ + constexpr GregorianDate(const YearInt_t year, const uint8_t month) noexcept + : CalendarDate{}, + date{useDefaultIfInvalid(encodeGregorianDateToInteger(year, month, 1))} + { + // + } + + /*! + * @brief + * Construct default Gregorian calendar date. + */ + constexpr GregorianDate() noexcept : CalendarDate{}, date{DEFAULT_DATE} + { + // + } + + ~GregorianDate() = default; + + private: + Repr_Type date; ///< Calendar date }; // SIMPLYDT_ASSERT_DATE_INTERFACE_CONTRACT(GregorianDate); -} +} // namespace simplydt::gregorian #endif // SIMPLYDT_LIB_GREGORIAN_DATE_STRUCT_H_ From 474321a3fd65a7aaac6402ad381cc1e1bea7c779 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sun, 10 Aug 2025 22:02:31 -0400 Subject: [PATCH 085/400] Update gregorian_date.hpp --- .../calendar/gregorian/gregorian_date.hpp | 35 ++++++++++--------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_date.hpp b/include/simplydt/calendar/gregorian/gregorian_date.hpp index aa401d6..d55e8e7 100644 --- a/include/simplydt/calendar/gregorian/gregorian_date.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_date.hpp @@ -71,18 +71,18 @@ struct GregorianDate : public CalendarDate { } /*! - * @brief - * Intercept invalid signal from date encoding and return - * default date. - * - * @details - * This is a compile-time helper for the `GregorianDate` - * constructors. Non-zero values pass through this method - * while zeros are intercepted and yeild the default date. - * - * @return - * Valid encoded date, default date otherwise - */ + * @brief + * Intercept invalid signal from date encoding and return + * default date. + * + * @details + * This is a compile-time helper for the `GregorianDate` + * constructors. Non-zero values pass through this method + * while zeros are intercepted and yeild the default date. + * + * @return + * Valid encoded date, default date otherwise + */ static constexpr Repr_Type useDefaultIfInvalid(const Repr_Type& encoded_date) noexcept { return (encoded_date == 0) ? DEFAULT_DATE : encoded_date; @@ -132,9 +132,11 @@ struct GregorianDate : public CalendarDate { * Construct Gregorian calendar date using year, * month, and day values. */ - constexpr GregorianDate(const YearInt_t year, const uint8_t month, const uint8_t day) noexcept + constexpr GregorianDate( + const YearInt_t year, const uint8_t month, const uint8_t day + ) noexcept : CalendarDate{}, - date{useDefaultIfInvalid(encodeGregorianDateToInteger(year, month, day))} + date{useDefaultIfInvalid(encodeGregorianDateToInteger(year, month, day))} { // } @@ -146,7 +148,7 @@ struct GregorianDate : public CalendarDate { */ constexpr GregorianDate(const YearInt_t year, const uint8_t month) noexcept : CalendarDate{}, - date{useDefaultIfInvalid(encodeGregorianDateToInteger(year, month, 1))} + date{useDefaultIfInvalid(encodeGregorianDateToInteger(year, month, 1))} { // } @@ -155,7 +157,8 @@ struct GregorianDate : public CalendarDate { * @brief * Construct default Gregorian calendar date. */ - constexpr GregorianDate() noexcept : CalendarDate{}, date{DEFAULT_DATE} + constexpr GregorianDate() noexcept + : CalendarDate{}, date{DEFAULT_DATE} { // } From ff2114a77205d3fb31a6f736b712959c90180b07 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 11 Aug 2025 00:07:13 -0400 Subject: [PATCH 086/400] Update date_concepts.hpp --- .../calendar/concepts/date_concepts.hpp | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/include/simplydt/calendar/concepts/date_concepts.hpp b/include/simplydt/calendar/concepts/date_concepts.hpp index c3cbcf2..2182178 100644 --- a/include/simplydt/calendar/concepts/date_concepts.hpp +++ b/include/simplydt/calendar/concepts/date_concepts.hpp @@ -17,6 +17,8 @@ #include "simplydt/calendar/type_traits/date_traits.hpp" #include +#include +#include /*! * @namespace simplydt::concepts @@ -42,17 +44,38 @@ namespace simplydt::concepts::date { d.day() } -> std::same_as; }; + template + concept has_logical_operators = requires(const Date_Impl& d) { + { d == d } -> std::same_as; + { d < d } -> std::same_as; + { d > d } -> std::same_as; + { d <= d } -> std::same_as; + { d >= d } -> std::same_as; + }; + template concept has_basic_state_methods = requires(const Date_Impl& d) { { d.isDefault() } -> std::same_as; }; + template + concept is_stream_out_compatible = requires(std::ostream& os, const Date_Impl& d) { + { os << d } -> std::convertible_to; + }; + template concept has_comparison_methods = requires(const Date_Impl& d) { { d.isBefore(d) } -> std::same_as; { d.isAfter(d) } -> std::same_as; }; + template + concept has_date_literal_methods = requires(const Date_Impl& d) { + { d.monthLiteral() } -> std::same_as; + { d.monthAbbreviation() } -> std::same_as; + { d.toStr() } -> std::same_as; + }; + template concept has_contextual_nested_types = requires { typename Date_Impl::YearInt_t; From 577f74a62abe22dee190ba199ecb41fb21b7a1f3 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 11 Aug 2025 00:07:28 -0400 Subject: [PATCH 087/400] Update date_contract.hpp --- include/simplydt/calendar/concepts/date_contract.hpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/include/simplydt/calendar/concepts/date_contract.hpp b/include/simplydt/calendar/concepts/date_contract.hpp index 31306bb..9098ba3 100644 --- a/include/simplydt/calendar/concepts/date_contract.hpp +++ b/include/simplydt/calendar/concepts/date_contract.hpp @@ -28,16 +28,19 @@ namespace simplydt::concepts */ template concept contract_abiding_date = requires { - // TODO: INCOMPLETE!!! requires std::is_integral_v; requires date::has_date_component_methods; + requires date::has_logical_operators; requires date::has_basic_state_methods; + requires date::is_stream_out_compatible; + requires date::has_date_literal_methods; }; } -#ifndef SIMPLYDT_ASSERT_DATE_INTERFACE_CONTRACT -#define SIMPLYDT_ASSERT_DATE_INTERFACE_CONTRACT(Class) \ +#ifndef SIMPLYDT_ENFORCE_DATE_CONTRACT +/*! @brief Macro for asserting date implementation interface contract. */ +#define SIMPLYDT_ENFORCE_DATE_CONTRACT(Class) \ static_assert( \ simplydt::concepts::contract_abiding_date, \ #Class " implementation does not fulfill the public API contract." \ From 190f03802d81751ef57c5c1e80bdfb1ab7c9a0dd Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 11 Aug 2025 00:07:48 -0400 Subject: [PATCH 088/400] Update gregorian_date.hpp --- .../calendar/gregorian/gregorian_date.hpp | 93 ++++++++++++++++++- 1 file changed, 92 insertions(+), 1 deletion(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_date.hpp b/include/simplydt/calendar/gregorian/gregorian_date.hpp index d55e8e7..6341025 100644 --- a/include/simplydt/calendar/gregorian/gregorian_date.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_date.hpp @@ -18,6 +18,8 @@ #include "simplydt/calendar/concepts/date_contract.hpp" #include "simplydt/calendar/date/abstract_date.hpp" #include "simplydt/calendar/gregorian/gregorian_defs.hpp" +#include "simplydt/common/string_utils.hpp" +#include namespace simplydt::gregorian { @@ -165,11 +167,100 @@ struct GregorianDate : public CalendarDate { ~GregorianDate() = default; + friend inline std::ostream& operator<<(std::ostream& os, const GregorianDate date) noexcept + { + os << date.toStr(); + return os; + } + + /*! @brief Evaluate equivalence of Gregorian dates. */ + [[nodiscard]] constexpr bool operator==(const GregorianDate date) const noexcept + { + return this->date == date.date; + } + + /*! @brief Determine if left-hand side is sequentially before right-hand side. */ + [[nodiscard]] constexpr bool operator<(const GregorianDate date) const noexcept + { + return this->date < date.date; + } + + /*! @brief Determine if left-hand side is sequentially after right-hand side. */ + [[nodiscard]] constexpr bool operator>(const GregorianDate date) const noexcept + { + return this->date > date.date; + } + + [[nodiscard]] constexpr bool operator<=(const GregorianDate date) const noexcept + { + return this->date <= date.date; + } + + [[nodiscard]] constexpr bool operator>=(const GregorianDate date) const noexcept + { + return this->date >= date.date; + } + + /*! @brief Index Gregorian calendar date components. */ + [[nodiscard]] std::optional operator[](const CalendarComponent component) const noexcept + { + return this->getComponent(component); + } + + [[nodiscard]] constexpr bool isDefault() const noexcept + { + return this->date == DEFAULT_DATE; + } + + [[nodiscard]] constexpr YearInt_t year() const noexcept + { + return extractEncodedYear(this->date); + } + + [[nodiscard]] constexpr uint8_t month() const noexcept + { + return extractEncodedMonth(this->date); + } + + [[nodiscard]] constexpr const char* monthLiteral() const noexcept + { + const uint8_t monthIndex = extractEncodedMonth(this->date) - 1; + return Months[monthIndex]; + } + + [[nodiscard]] constexpr std::string monthAbbreviation() const noexcept + { + const uint8_t monthIndex = extractEncodedMonth(this->date) - 1; + return std::string{MonthAbbrevs[monthIndex]}; + } + + [[nodiscard]] constexpr uint8_t day() const noexcept + { + return extractEncodedDay(this->date); + } + + [[nodiscard]] std::string toStr() const noexcept + { + const char delimiter = '-'; + + std::string dateStr; + dateStr.reserve(12); + dateStr += (std::to_string(this->year()) + delimiter); + dateStr += (toDoubleDigitStr(this->month()) + delimiter); + dateStr += toDoubleDigitStr(this->day()); + return dateStr; + } + + [[nodiscard]] constexpr Repr_Type underlying() const noexcept + { + return this->date; + } + private: Repr_Type date; ///< Calendar date }; -// SIMPLYDT_ASSERT_DATE_INTERFACE_CONTRACT(GregorianDate); +SIMPLYDT_ENFORCE_DATE_CONTRACT(GregorianDate); } // namespace simplydt::gregorian From 13ec2576c8c478d845bd122e22e97917ef870829 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 11 Aug 2025 00:08:08 -0400 Subject: [PATCH 089/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index 77cb2af..c81a980 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -20,7 +20,9 @@ int main(int argc, char* argv[]) ProjectInfoOut(); //\\// - simplydt::gregorian::GregorianDate demo{}; + simplydt::gregorian::GregorianDate demo{2025, 8, 11}; + + std::cout << demo << std::endl; // return 0; From 787a8e26b11b2b6bf8b007f5b99d915275ea4875 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 11 Aug 2025 00:14:36 -0400 Subject: [PATCH 090/400] Update gregorian_date.hpp --- include/simplydt/calendar/gregorian/gregorian_date.hpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_date.hpp b/include/simplydt/calendar/gregorian/gregorian_date.hpp index 6341025..bc83a99 100644 --- a/include/simplydt/calendar/gregorian/gregorian_date.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_date.hpp @@ -202,7 +202,8 @@ struct GregorianDate : public CalendarDate { } /*! @brief Index Gregorian calendar date components. */ - [[nodiscard]] std::optional operator[](const CalendarComponent component) const noexcept + [[nodiscard]] std::optional operator[](const CalendarComponent component + ) const noexcept { return this->getComponent(component); } From 15a4e9d27923befa79272158fa69a0219358666a Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 11 Aug 2025 00:18:02 -0400 Subject: [PATCH 091/400] Update gregorian_defs.hpp --- .../calendar/gregorian/gregorian_defs.hpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_defs.hpp b/include/simplydt/calendar/gregorian/gregorian_defs.hpp index 143297c..83414a6 100644 --- a/include/simplydt/calendar/gregorian/gregorian_defs.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_defs.hpp @@ -40,14 +40,14 @@ namespace simplydt::gregorian using Year_Type = uint16_t; /*! -* @brief -* Abbreviation length for Gregorian calendar name -* literals. -* -* @details -* Details length of abbreviated Gregorian calendar -* day-of-week and month names. -*/ + * @brief + * Abbreviation length for Gregorian calendar name + * literals. + * + * @details + * Details length of abbreviated Gregorian calendar + * day-of-week and month names. + */ constexpr int ABBREV_LENGTH = 3; /*! @@ -175,6 +175,6 @@ constexpr uint8_t MIN_MONTH_OF_YEAR = 1; */ constexpr uint8_t MAX_MONTH_OF_YEAR = 12; -} +} // namespace simplydt::gregorian #endif // SIMPLYDT_LIB_GREGORIAN_CALENDAR_DEFINITIONS_H_ From 6d1281612805b964d7580ee8cd53b7f98526da5d Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 11 Aug 2025 00:18:10 -0400 Subject: [PATCH 092/400] Update abstract_date.hpp --- include/simplydt/calendar/date/abstract_date.hpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/simplydt/calendar/date/abstract_date.hpp b/include/simplydt/calendar/date/abstract_date.hpp index c928957..4938b1e 100644 --- a/include/simplydt/calendar/date/abstract_date.hpp +++ b/include/simplydt/calendar/date/abstract_date.hpp @@ -42,7 +42,8 @@ struct CalendarDate { /*! @brief Calendar date year type. */ using YearInt_t = Year_T; - [[nodiscard]] std::optional getComponent(const CalendarComponent component) const + [[nodiscard]] std::optional getComponent(const CalendarComponent component + ) const { switch (component) { case CalendarComponent::YEAR: From 670e44f7fbd683acdc2708911a92c2751cd0f8f9 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 11 Aug 2025 00:18:36 -0400 Subject: [PATCH 093/400] Update date_contract.hpp --- .../calendar/concepts/date_contract.hpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/include/simplydt/calendar/concepts/date_contract.hpp b/include/simplydt/calendar/concepts/date_contract.hpp index 9098ba3..923c120 100644 --- a/include/simplydt/calendar/concepts/date_contract.hpp +++ b/include/simplydt/calendar/concepts/date_contract.hpp @@ -22,10 +22,10 @@ namespace simplydt::concepts { /*! -* @brief -* Concept of a type that meets the criteria to be -* considered a useable calendar date implementation. -*/ + * @brief + * Concept of a type that meets the criteria to be + * considered a useable calendar date implementation. + */ template concept contract_abiding_date = requires { requires std::is_integral_v; @@ -36,14 +36,14 @@ concept contract_abiding_date = requires { requires date::has_date_literal_methods; }; -} +} // namespace simplydt::concepts #ifndef SIMPLYDT_ENFORCE_DATE_CONTRACT /*! @brief Macro for asserting date implementation interface contract. */ -#define SIMPLYDT_ENFORCE_DATE_CONTRACT(Class) \ - static_assert( \ - simplydt::concepts::contract_abiding_date, \ - #Class " implementation does not fulfill the public API contract." \ +#define SIMPLYDT_ENFORCE_DATE_CONTRACT(Class) \ + static_assert( \ + simplydt::concepts::contract_abiding_date, \ + #Class " implementation does not fulfill the public API contract." \ ); #endif From 2c45a2462c2bb40fcbbb8eb21666e14aed8356e1 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 11 Aug 2025 00:19:51 -0400 Subject: [PATCH 094/400] Update date_concepts.hpp --- .../calendar/concepts/date_concepts.hpp | 151 +++++++++++------- 1 file changed, 95 insertions(+), 56 deletions(-) diff --git a/include/simplydt/calendar/concepts/date_concepts.hpp b/include/simplydt/calendar/concepts/date_concepts.hpp index 2182178..f224c8a 100644 --- a/include/simplydt/calendar/concepts/date_concepts.hpp +++ b/include/simplydt/calendar/concepts/date_concepts.hpp @@ -21,66 +21,105 @@ #include /*! -* @namespace simplydt::concepts -* -* @brief -* Simply Datetime library concepts. -*/ -namespace simplydt::concepts { } + * @namespace simplydt::concepts + * + * @brief + * Simply Datetime library concepts. + */ +namespace simplydt::concepts +{ +} /*! -* @namespace simplydt::concepts::date -* -* @brief -* Calendar date concepts. -*/ + * @namespace simplydt::concepts::date + * + * @brief + * Calendar date concepts. + */ namespace simplydt::concepts::date { - template - concept has_date_component_methods = requires(const Date_Impl& d) { - { d.year() } -> std::same_as; - { d.month() } -> std::same_as; - { d.day() } -> std::same_as; - }; - - template - concept has_logical_operators = requires(const Date_Impl& d) { - { d == d } -> std::same_as; - { d < d } -> std::same_as; - { d > d } -> std::same_as; - { d <= d } -> std::same_as; - { d >= d } -> std::same_as; - }; - - template - concept has_basic_state_methods = requires(const Date_Impl& d) { - { d.isDefault() } -> std::same_as; - }; - - template - concept is_stream_out_compatible = requires(std::ostream& os, const Date_Impl& d) { - { os << d } -> std::convertible_to; - }; - - template - concept has_comparison_methods = requires(const Date_Impl& d) { - { d.isBefore(d) } -> std::same_as; - { d.isAfter(d) } -> std::same_as; - }; - - template - concept has_date_literal_methods = requires(const Date_Impl& d) { - { d.monthLiteral() } -> std::same_as; - { d.monthAbbreviation() } -> std::same_as; - { d.toStr() } -> std::same_as; - }; - - template - concept has_contextual_nested_types = requires { - typename Date_Impl::YearInt_t; - }; - -} +template +concept has_date_component_methods = requires(const Date_Impl& d) { + { + d.year() + } -> std::same_as; + + { + d.month() + } -> std::same_as; + + { + d.day() + } -> std::same_as; +}; + +template +concept has_logical_operators = requires(const Date_Impl& d) { + { + d == d + } -> std::same_as; + + { + d < d + } -> std::same_as; + + { + d > d + } -> std::same_as; + + { + d <= d + } -> std::same_as; + + { + d >= d + } -> std::same_as; +}; + +template +concept has_basic_state_methods = requires(const Date_Impl& d) { + { + d.isDefault() + } -> std::same_as; +}; + +template +concept is_stream_out_compatible = requires(std::ostream& os, const Date_Impl& d) { + { + os << d + } -> std::convertible_to; +}; + +template +concept has_comparison_methods = requires(const Date_Impl& d) { + { + d.isBefore(d) + } -> std::same_as; + + { + d.isAfter(d) + } -> std::same_as; +}; + +template +concept has_date_literal_methods = requires(const Date_Impl& d) { + { + d.monthLiteral() + } -> std::same_as; + + { + d.monthAbbreviation() + } -> std::same_as; + + { + d.toStr() + } -> std::same_as; +}; + +template +concept has_contextual_nested_types = requires { typename Date_Impl::YearInt_t; }; + +} // namespace simplydt::concepts::date #endif // SIMPLYDT_LIB_CALENDAR_DATE_CONCEPTS_H_ From 9bf509130c2655080e981876b12d998885e906d8 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 11 Aug 2025 00:30:30 -0400 Subject: [PATCH 095/400] Update gregorian_date.hpp --- .../calendar/gregorian/gregorian_date.hpp | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/include/simplydt/calendar/gregorian/gregorian_date.hpp b/include/simplydt/calendar/gregorian/gregorian_date.hpp index bc83a99..5ead65e 100644 --- a/include/simplydt/calendar/gregorian/gregorian_date.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_date.hpp @@ -208,38 +208,88 @@ struct GregorianDate : public CalendarDate { return this->getComponent(component); } + /*! + * @brief + * Evaluate if date is epoch. + * + * @return + * True if date is epoch date + */ [[nodiscard]] constexpr bool isDefault() const noexcept { return this->date == DEFAULT_DATE; } + /*! + * @brief + * Date year component. + * + * @return + * Year of Gregorian calendar date + */ [[nodiscard]] constexpr YearInt_t year() const noexcept { return extractEncodedYear(this->date); } + /*! + * @brief + * Date month component. + * + * @return + * Month of Gregorian calendar date + */ [[nodiscard]] constexpr uint8_t month() const noexcept { return extractEncodedMonth(this->date); } + /*! + * @brief + * Month name. + * + * @return + * Month literal + */ [[nodiscard]] constexpr const char* monthLiteral() const noexcept { const uint8_t monthIndex = extractEncodedMonth(this->date) - 1; return Months[monthIndex]; } + /*! + * @brief + * Abbreviated month name. + * + * @return + * Abbreviated month literal + */ [[nodiscard]] constexpr std::string monthAbbreviation() const noexcept { const uint8_t monthIndex = extractEncodedMonth(this->date) - 1; return std::string{MonthAbbrevs[monthIndex]}; } + /*! + * @brief + * Date day component. + * + * @return + * Day of Gregorian calendar date + */ [[nodiscard]] constexpr uint8_t day() const noexcept { return extractEncodedDay(this->date); } + /*! + * @brief + * Compose string representation of Gregorian + * calendar date. + * + * @return + * Gregorian calendar date as string + */ [[nodiscard]] std::string toStr() const noexcept { const char delimiter = '-'; @@ -252,6 +302,14 @@ struct GregorianDate : public CalendarDate { return dateStr; } + /*! + * @brief + * Returns underlying representation of Gregorian + * calendar date. + * + * @return + * Gregorian calendar date as integer + */ [[nodiscard]] constexpr Repr_Type underlying() const noexcept { return this->date; From 6a7c57203278d853c61a005a873caec7a7bfb1e7 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 11 Aug 2025 18:45:41 -0400 Subject: [PATCH 096/400] Update diagrams.drawio --- docs/prj/diagrams.drawio | 69 +++++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 33 deletions(-) diff --git a/docs/prj/diagrams.drawio b/docs/prj/diagrams.drawio index 3975f4d..15249d8 100644 --- a/docs/prj/diagrams.drawio +++ b/docs/prj/diagrams.drawio @@ -14,7 +14,7 @@ - + @@ -43,99 +43,102 @@ - + - + - + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - + - + - - - From c0a1a55c91f2fda45c58b1888032dbdde6d74cb6 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 11 Aug 2025 18:45:56 -0400 Subject: [PATCH 097/400] Update date_concepts.hpp --- .../calendar/concepts/date_concepts.hpp | 72 +++++-------------- 1 file changed, 16 insertions(+), 56 deletions(-) diff --git a/include/simplydt/calendar/concepts/date_concepts.hpp b/include/simplydt/calendar/concepts/date_concepts.hpp index f224c8a..ad7dd45 100644 --- a/include/simplydt/calendar/concepts/date_concepts.hpp +++ b/include/simplydt/calendar/concepts/date_concepts.hpp @@ -27,8 +27,7 @@ * Simply Datetime library concepts. */ namespace simplydt::concepts -{ -} +{ } /*! * @namespace simplydt::concepts::date @@ -41,80 +40,41 @@ namespace simplydt::concepts::date template concept has_date_component_methods = requires(const Date_Impl& d) { - { - d.year() - } -> std::same_as; - - { - d.month() - } -> std::same_as; - - { - d.day() - } -> std::same_as; + { d.year() } -> std::same_as; + { d.month() } -> std::same_as; + { d.day() } -> std::same_as; }; template concept has_logical_operators = requires(const Date_Impl& d) { - { - d == d - } -> std::same_as; - - { - d < d - } -> std::same_as; - - { - d > d - } -> std::same_as; - - { - d <= d - } -> std::same_as; - - { - d >= d - } -> std::same_as; + { d == d } -> std::same_as; + { d < d } -> std::same_as; + { d > d } -> std::same_as; + { d <= d } -> std::same_as; + { d >= d } -> std::same_as; }; template concept has_basic_state_methods = requires(const Date_Impl& d) { - { - d.isDefault() - } -> std::same_as; + { d.isDefault() } -> std::same_as; }; template concept is_stream_out_compatible = requires(std::ostream& os, const Date_Impl& d) { - { - os << d - } -> std::convertible_to; + { os << d } -> std::convertible_to; }; template concept has_comparison_methods = requires(const Date_Impl& d) { - { - d.isBefore(d) - } -> std::same_as; - - { - d.isAfter(d) - } -> std::same_as; + { d.isBefore(d) } -> std::same_as; + { d.isAfter(d) } -> std::same_as; }; template concept has_date_literal_methods = requires(const Date_Impl& d) { - { - d.monthLiteral() - } -> std::same_as; - - { - d.monthAbbreviation() - } -> std::same_as; - - { - d.toStr() - } -> std::same_as; + { d.monthLiteral() } -> std::same_as; + { d.monthAbbreviation() } -> std::same_as; + { d.toStr() } -> std::same_as; }; template From edc5b97defffc229ece2fdf122d31f8108fd8b2d Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 11 Aug 2025 18:57:13 -0400 Subject: [PATCH 098/400] Update date_contract.hpp --- .../simplydt/calendar/concepts/date_contract.hpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/include/simplydt/calendar/concepts/date_contract.hpp b/include/simplydt/calendar/concepts/date_contract.hpp index 923c120..6135cf8 100644 --- a/include/simplydt/calendar/concepts/date_contract.hpp +++ b/include/simplydt/calendar/concepts/date_contract.hpp @@ -26,10 +26,10 @@ namespace simplydt::concepts * Concept of a type that meets the criteria to be * considered a useable calendar date implementation. */ -template +template concept contract_abiding_date = requires { - requires std::is_integral_v; - requires date::has_date_component_methods; + requires std::is_integral_v; + requires date::has_date_component_methods; requires date::has_logical_operators; requires date::has_basic_state_methods; requires date::is_stream_out_compatible; @@ -40,11 +40,11 @@ concept contract_abiding_date = requires { #ifndef SIMPLYDT_ENFORCE_DATE_CONTRACT /*! @brief Macro for asserting date implementation interface contract. */ -#define SIMPLYDT_ENFORCE_DATE_CONTRACT(Class) \ - static_assert( \ - simplydt::concepts::contract_abiding_date, \ - #Class " implementation does not fulfill the public API contract." \ - ); +# define SIMPLYDT_ENFORCE_DATE_CONTRACT(Class) \ + static_assert( \ + simplydt::concepts::contract_abiding_date, \ + #Class " implementation does not fulfill the public API contract." \ + ); #endif #endif // SIMPLYDT_LIB_CALENDAR_DATE_CONTRACT_CONCEPT_H_ From c276a6355f67ebb02895239fa5188ef720407221 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 11 Aug 2025 18:57:59 -0400 Subject: [PATCH 099/400] Update .clang-format --- .clang-format | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/.clang-format b/.clang-format index a1b0495..90a197c 100644 --- a/.clang-format +++ b/.clang-format @@ -56,14 +56,15 @@ AlignTrailingComments: AllowAllArgumentsOnNextLine: true AllowAllParametersOfDeclarationOnNextLine: true AllowBreakBeforeNoexceptSpecifier: Never -AllowShortBlocksOnASingleLine: Never +AllowShortBlocksOnASingleLine: Empty AllowShortCaseLabelsOnASingleLine: false -AllowShortCompoundRequirementOnASingleLine: false +AllowShortCompoundRequirementOnASingleLine: true AllowShortEnumsOnASingleLine: true AllowShortFunctionsOnASingleLine: None AllowShortIfStatementsOnASingleLine: Never -AllowShortLambdasOnASingleLine: All +AllowShortLambdasOnASingleLine: Empty AllowShortLoopsOnASingleLine: false +#AllowShortNamespacesOnASingleLine: true AlwaysBreakAfterDefinitionReturnType: None AlwaysBreakAfterReturnType: None AlwaysBreakBeforeMultilineStrings: true @@ -94,7 +95,7 @@ BraceWrapping: IndentBraces: false SplitEmptyFunction: false SplitEmptyRecord: false - SplitEmptyNamespace: true + SplitEmptyNamespace: false BreakAdjacentStringLiterals: true BreakAfterAttributes: Leave @@ -147,7 +148,7 @@ IndentCaseBlocks: false IndentCaseLabels: false IndentExternBlock: NoIndent IndentGotoLabels: true -IndentPPDirectives: None +IndentPPDirectives: AfterHash IndentRequiresClause: true IndentWidth: 4 IndentWrappedFunctionNames: false @@ -256,4 +257,4 @@ PenaltyBreakString: 100 PenaltyBreakTemplateDeclaration: 10 PenaltyExcessCharacter: 1000000 PenaltyIndentedWhitespace: 0 -PenaltyReturnTypeOnItsOwnLine: 10000 \ No newline at end of file +PenaltyReturnTypeOnItsOwnLine: 10000 From a07e38623c41dcdda68e428ce1fe61257d3163b1 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 11 Aug 2025 19:08:47 -0400 Subject: [PATCH 100/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index c81a980..e5c9713 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -22,8 +22,9 @@ int main(int argc, char* argv[]) //\\// simplydt::gregorian::GregorianDate demo{2025, 8, 11}; - std::cout << demo << std::endl; + std::cout << demo << '\n'; // + std::cout << "\n\t[ Complete ]" << std::endl; return 0; } From 002687736affed0128aa9a2db053cd04cec7f77c Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 11 Aug 2025 19:29:31 -0400 Subject: [PATCH 101/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index e5c9713..ab17e22 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -25,6 +25,6 @@ int main(int argc, char* argv[]) std::cout << demo << '\n'; // - std::cout << "\n\t[ Complete ]" << std::endl; + std::cout << "\n\n\t[ Complete ]" << std::endl; return 0; } From 1fbdf54182fa1da53aedb3dcb85370afe71c36e2 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 11 Aug 2025 19:47:00 -0400 Subject: [PATCH 102/400] Codebase Format --- .../simplydt/calendar/abstract_calendar.hpp | 12 +-- .../calendar/concepts/calendar_concepts.hpp | 10 +- .../calendar/concepts/calendar_contract.hpp | 10 +- .../calendar/type_traits/calendar_traits.hpp | 10 +- .../calendar/type_traits/date_traits.hpp | 23 ++--- include/simplydt/common/simplydt_defs.hpp | 18 ++-- lib/metadata/info.h | 1 - lib/metadata/templ/info.h.in | 1 - lib/metadata/templ/version.h.in | 1 - lib/metadata/version.h | 1 - src/coord_universal_time/utc_time.cpp | 82 ++++++++--------- src/gregorian_calendar/gregorian_date.cpp | 91 ++++++++++--------- tests/cli/dev_exe.cpp | 4 +- 13 files changed, 132 insertions(+), 132 deletions(-) diff --git a/include/simplydt/calendar/abstract_calendar.hpp b/include/simplydt/calendar/abstract_calendar.hpp index 60f13e4..a5a5b7e 100644 --- a/include/simplydt/calendar/abstract_calendar.hpp +++ b/include/simplydt/calendar/abstract_calendar.hpp @@ -21,19 +21,19 @@ namespace simplydt { /*! -* @brief -* Base contract-enforcing calendar. -*/ + * @brief + * Base contract-enforcing calendar. + */ template struct CalendricalSystem { // TODO: INCOMPLETE!!! -private: - CalendricalSystem() = default; + private: + CalendricalSystem() = default; ~CalendricalSystem() = default; friend Calendar_Impl; }; -} +} // namespace simplydt #endif // SIMPLYDT_LIB_BASE_CRTP_CALENDAR_H_ diff --git a/include/simplydt/calendar/concepts/calendar_concepts.hpp b/include/simplydt/calendar/concepts/calendar_concepts.hpp index fab1398..c8e7f88 100644 --- a/include/simplydt/calendar/concepts/calendar_concepts.hpp +++ b/include/simplydt/calendar/concepts/calendar_concepts.hpp @@ -19,11 +19,11 @@ #include /*! -* @namespace simplydt::concepts::calendar -* -* @brief -* Calendar concepts. -*/ + * @namespace simplydt::concepts::calendar + * + * @brief + * Calendar concepts. + */ namespace simplydt::concepts::calendar { diff --git a/include/simplydt/calendar/concepts/calendar_contract.hpp b/include/simplydt/calendar/concepts/calendar_contract.hpp index 17181ee..94bbad4 100644 --- a/include/simplydt/calendar/concepts/calendar_contract.hpp +++ b/include/simplydt/calendar/concepts/calendar_contract.hpp @@ -22,16 +22,16 @@ namespace simplydt::concepts { /*! -* @brief -* Concept of a type that meets the criteria to be -* considered a useable calendar implementation. -*/ + * @brief + * Concept of a type that meets the criteria to be + * considered a useable calendar implementation. + */ template concept contract_abiding_calendar = requires { requires std::is_same_v; // TODO: INCOMPLETE!!! }; -} +} // namespace simplydt::concepts #endif // SIMPLYDT_LIB_CALENDAR_CONTRACT_CONCEPT_H_ diff --git a/include/simplydt/calendar/type_traits/calendar_traits.hpp b/include/simplydt/calendar/type_traits/calendar_traits.hpp index 48756ca..0a4eeb6 100644 --- a/include/simplydt/calendar/type_traits/calendar_traits.hpp +++ b/include/simplydt/calendar/type_traits/calendar_traits.hpp @@ -18,11 +18,11 @@ #include /*! -* @namespace simplydt::type_traits::calendar -* -* @brief -* Calendar type traits. -*/ + * @namespace simplydt::type_traits::calendar + * + * @brief + * Calendar type traits. + */ namespace simplydt::type_traits::calendar { diff --git a/include/simplydt/calendar/type_traits/date_traits.hpp b/include/simplydt/calendar/type_traits/date_traits.hpp index 6c04f5d..f868416 100644 --- a/include/simplydt/calendar/type_traits/date_traits.hpp +++ b/include/simplydt/calendar/type_traits/date_traits.hpp @@ -18,19 +18,20 @@ #include /*! -* @namespace simplydt::type_traits -* -* @brief -* Simply Datetime library type traits. -*/ -namespace simplydt::type_traits { } + * @namespace simplydt::type_traits + * + * @brief + * Simply Datetime library type traits. + */ +namespace simplydt::type_traits +{ } /*! -* @namespace simplydt::type_traits::date -* -* @brief -* Calendar date type traits. -*/ + * @namespace simplydt::type_traits::date + * + * @brief + * Calendar date type traits. + */ namespace simplydt::type_traits::date { diff --git a/include/simplydt/common/simplydt_defs.hpp b/include/simplydt/common/simplydt_defs.hpp index 70f095c..71eaf67 100644 --- a/include/simplydt/common/simplydt_defs.hpp +++ b/include/simplydt/common/simplydt_defs.hpp @@ -22,14 +22,18 @@ namespace simplydt { #if defined(_WIN32) || defined(_WIN64) -#define SIMPLYDT_WIN32 +/*! @brief Simply Datetime on Windows platform. */ +# define SIMPLYDT_WIN32 #elif defined(__unix__) || defined(__unix) || defined(__APPLE__) -#define SIMPLYDT_POSIX -#if defined(__APPLE__) -#define SIMPLYDT_APPLE -#elif defined(__unix__) || defined(__unix) -#define SIMPLYDT_LINUX -#endif +/*! @brief Simply Datetime on POSIX compliant platform. */ +# define SIMPLYDT_POSIX +# if defined(__APPLE__) +/*! @brief Simply Datetime on Apple platform. */ +# define SIMPLYDT_APPLE +# elif defined(__unix__) || defined(__unix) +/*! @brief Simply Datetime on Linux platform. */ +# define SIMPLYDT_LINUX +# endif #endif /*! diff --git a/lib/metadata/info.h b/lib/metadata/info.h index 1c3c668..75123ef 100644 --- a/lib/metadata/info.h +++ b/lib/metadata/info.h @@ -22,7 +22,6 @@ extern "C" { - /*! * @brief * Simply Datetime publisher. diff --git a/lib/metadata/templ/info.h.in b/lib/metadata/templ/info.h.in index fb81044..6b0e685 100644 --- a/lib/metadata/templ/info.h.in +++ b/lib/metadata/templ/info.h.in @@ -22,7 +22,6 @@ extern "C" { - /*! * @brief * @RESOLVED_SFTW_NAME@ publisher. diff --git a/lib/metadata/templ/version.h.in b/lib/metadata/templ/version.h.in index 816524f..fab714c 100644 --- a/lib/metadata/templ/version.h.in +++ b/lib/metadata/templ/version.h.in @@ -22,7 +22,6 @@ extern "C" { - /*! * @brief * Software version major. diff --git a/lib/metadata/version.h b/lib/metadata/version.h index 1ec7632..f1f3cf9 100644 --- a/lib/metadata/version.h +++ b/lib/metadata/version.h @@ -22,7 +22,6 @@ extern "C" { - /*! * @brief * Software version major. diff --git a/src/coord_universal_time/utc_time.cpp b/src/coord_universal_time/utc_time.cpp index fb32e22..af00a0c 100644 --- a/src/coord_universal_time/utc_time.cpp +++ b/src/coord_universal_time/utc_time.cpp @@ -5,9 +5,9 @@ // [ISJTB-CXX-XL20230401-000001] // #include "simplydt/coord_universal_time/utc_time.hpp" -// +// // // simplydt::utc::Time : CONSTRUCTOR -// +// // simplydt::utc::Time::Time( // const uint8_t hour, const uint8_t minute, const uint8_t second // ) noexcept @@ -15,154 +15,154 @@ // { // Time::encodeUTCTimeIntoInteger(&this->time, hour, minute, second); // } -// +// // simplydt::utc::Time::Time(const uint8_t hour, const uint8_t minute) noexcept // : time{ DEFAULT_TIME } // { // Time::encodeUTCTimeIntoInteger(&this->time, hour, minute, 0); // } -// +// // simplydt::utc::Time::Time(const Time& time) noexcept : time{ time.time } // { // // // } -// +// // simplydt::utc::Time::Time() noexcept : time{ DEFAULT_TIME } // { // // // } -// +// // // simplydt::utc::Time : CONSTRUCTOR END! -// -// +// +// // // simplydt::utc::Time : STATIC -// +// // bool simplydt::utc::Time::encodeUTCTimeIntoInteger( // Underlying_T* integer, const uint8_t& hour, const uint8_t& minute, const uint8_t& second // ) noexcept // { // if (integer == nullptr) // return false; -// +// // if ((hour > MAX_HOURS_IN_DAY) || (minute > MAX_MINUTES_IN_HOUR) || // (second > MAX_SECONDS_IN_MINUTE)) // return false; // Invalid UTC time params -// +// // *integer = ((hour * HOUR_FACTOR) + (minute * MINUTE_FACTOR) + second); -// +// // return true; // } -// +// // uint8_t simplydt::utc::Time::extractEncodedHour(const Underlying_T* time) noexcept // { // return static_cast(*time / HOUR_FACTOR); // } -// +// // uint8_t simplydt::utc::Time::extractEncodedMinute(const Underlying_T* time) noexcept // { // return static_cast((*time % HOUR_FACTOR) / MINUTE_FACTOR); // } -// +// // uint8_t simplydt::utc::Time::extractEncodedSecond(const Underlying_T* time) noexcept // { // return static_cast((*time % HOUR_FACTOR) % MINUTE_FACTOR); // } -// +// // // simplydt::utc::Time : STATIC END! -// -// +// +// // // simplydt::utc::Time : OPERATOR -// +// // bool simplydt::utc::Time::operator==(const Time time) const noexcept // { // return this->time == time.time; // } -// +// // bool simplydt::utc::Time::operator<(const Time time) const noexcept // { // return this->time < time.time; // } -// +// // bool simplydt::utc::Time::operator>(const Time time) const noexcept // { // return this->time > time.time; // } -// +// // bool simplydt::utc::Time::operator<=(const Time time) const noexcept // { // return this->time <= time.time; // } -// +// // bool simplydt::utc::Time::operator>=(const Time time) const noexcept // { // return this->time >= time.time; // } -// +// // uint16_t simplydt::utc::Time::operator[](const CalendarComponent component) const noexcept // { // return this->getComponent(component); // } -// +// // // simplydt::utc::Time : OPERATOR END! -// -// +// +// // // simplydt::utc::Time : PUBLIC -// +// // uint8_t simplydt::utc::Time::hour() const noexcept // { // return Time::extractEncodedHour(&this->time); // } -// +// // std::string simplydt::utc::Time::hourPhaseLiteral() const noexcept // { // if ((this->time / HOUR_FACTOR) < 12) // return MeridiemPhases[AM]; -// +// // return MeridiemPhases[PM]; // } -// +// // uint8_t simplydt::utc::Time::minute() const noexcept // { // return Time::extractEncodedMinute(&this->time); // } -// +// // uint8_t simplydt::utc::Time::second() const noexcept // { // return Time::extractEncodedSecond(&this->time); // } -// +// // uint16_t simplydt::utc::Time::getComponent(const CalendarComponent component) const noexcept // { // switch (component) { // case CalendarComponent::HOUR: // return Time::extractEncodedHour(&this->time); -// +// // case CalendarComponent::MINUTE: // return Time::extractEncodedMinute(&this->time); -// +// // case CalendarComponent::SECOND: // return Time::extractEncodedSecond(&this->time); -// +// // default: // return 0; // Invalid component // } // } -// +// // std::string simplydt::utc::Time::toStr() const noexcept // { // const char delimiter = ':'; -// +// // std::string timeStr; // timeStr.reserve(12); -// +// // timeStr += (std::to_string(this->hour()) + delimiter); // timeStr += (toDoubleDigitStr(this->minute()) + delimiter); // timeStr += (toDoubleDigitStr(this->second()) + ' '); // timeStr += this->hourPhaseLiteral(); -// +// // return timeStr; // } -// +// // simplydt::utc::Time::Underlying_T simplydt::utc::Time::underlying() const noexcept // { // return this->time; diff --git a/src/gregorian_calendar/gregorian_date.cpp b/src/gregorian_calendar/gregorian_date.cpp index 35e2747..f602ba6 100644 --- a/src/gregorian_calendar/gregorian_date.cpp +++ b/src/gregorian_calendar/gregorian_date.cpp @@ -5,9 +5,9 @@ // [ISJTB-CXX-XL20230401-000001] // #include "simplydt/gregorian_calendar/gregorian_date.hpp" -// +// // // simplydt::gregorian::Date : CONSTRUCTOR -// +// // simplydt::gregorian::Date::Date( // const YearInt_T year, const uint8_t month, const uint8_t day // ) noexcept @@ -15,166 +15,167 @@ // { // Date::encodeGregorianDateIntoInteger(&this->date, year, month, day); // } -// +// // simplydt::gregorian::Date::Date(const YearInt_T year, const uint8_t month) noexcept // : date{ DEFAULT_DATE } // { // Date::encodeGregorianDateIntoInteger(&this->date, year, month, 1); // } -// +// // simplydt::gregorian::Date::Date(const Date& date) noexcept : date{ DEFAULT_DATE } // { // this->date = date.date; // } -// +// // simplydt::gregorian::Date::Date() noexcept : date{ DEFAULT_DATE } // { // // // } -// +// // // simplydt::gregorian::Date : CONSTRUCTOR END! -// -// +// +// // // simplydt::gregorian::Date : STATIC -// +// // bool simplydt::gregorian::Date::encodeGregorianDateIntoInteger( // Underlying_T* integer, const YearInt_T& year, const uint8_t& month, const uint8_t& day // ) noexcept // { // if (integer == nullptr) // return false; -// +// // if ((month < MIN_MONTH_OF_YEAR) || (month > MAX_MONTH_OF_YEAR)) // return false; // Invalid date params -// +// // if ((day < MIN_DAY_OF_MONTH) || (day > MAX_DAY_OF_MONTH)) // return false; // Invalid date params -// +// // *integer = ((year * YEAR_FACTOR) + (month * MONTH_FACTOR) + day); -// +// // return true; // } -// +// // simplydt::gregorian::YearInt_T simplydt::gregorian::Date::extractEncodedYear( // const Underlying_T* date // ) noexcept // { // return static_cast(*date / YEAR_FACTOR); // } -// +// // uint8_t simplydt::gregorian::Date::extractEncodedMonth(const Underlying_T* date) noexcept // { // return static_cast((*date % YEAR_FACTOR) / MONTH_FACTOR); // } -// +// // uint8_t simplydt::gregorian::Date::extractEncodedDay(const Underlying_T* date) noexcept // { // return static_cast((*date % YEAR_FACTOR) % MONTH_FACTOR); // } -// +// // // simplydt::gregorian::Date : STATIC END! -// -// +// +// // // simplydt::gregorian::Date : OPERATOR -// +// // bool simplydt::gregorian::Date::operator==(const Date date) const noexcept // { // return this->date == date.date; // } -// +// // bool simplydt::gregorian::Date::operator<(const Date date) const noexcept // { // return this->date < date.date; // } -// +// // bool simplydt::gregorian::Date::operator>(const Date date) const noexcept // { // return this->date > date.date; // } -// +// // bool simplydt::gregorian::Date::operator<=(const Date date) const noexcept // { // return this->date <= date.date; // } -// +// // bool simplydt::gregorian::Date::operator>=(const Date date) const noexcept // { // return this->date >= date.date; // } -// +// // uint16_t simplydt::gregorian::Date::operator[](const CalendarComponent component // ) const noexcept // { // return this->getComponent(component); // } -// +// // // simplydt::gregorian::Date : OPERATOR END! -// -// +// +// // // simplydt::gregorian::Date : PUBLIC -// +// // simplydt::gregorian::YearInt_T simplydt::gregorian::Date::year() const noexcept // { // return Date::extractEncodedYear(&this->date); // } -// +// // uint8_t simplydt::gregorian::Date::month() const noexcept // { // return Date::extractEncodedMonth(&this->date); // } -// +// // std::string simplydt::gregorian::Date::monthLiteral() const noexcept // { // const uint8_t monthIndex = this->month() - 1; -// +// // return Months[monthIndex]; // } -// +// // std::string simplydt::gregorian::Date::monthAbbreviation() const noexcept // { // const uint8_t monthIndex = this->month() - 1; -// +// // return std::string{ MonthAbbrevs[monthIndex] }; // } -// +// // uint8_t simplydt::gregorian::Date::day() const noexcept // { // return Date::extractEncodedDay(&this->date); // } -// +// // uint16_t simplydt::gregorian::Date::getComponent(const CalendarComponent component // ) const noexcept // { // switch (component) { // case CalendarComponent::YEAR: // return Date::extractEncodedYear(&this->date); -// +// // case CalendarComponent::MONTH: // return Date::extractEncodedMonth(&this->date); -// +// // case CalendarComponent::DAY: // return Date::extractEncodedDay(&this->date); -// +// // default: // return 0; // Invalid component // } // } -// +// // std::string simplydt::gregorian::Date::toStr() const noexcept // { // const char delimiter = '-'; -// +// // std::string dateStr; // dateStr.reserve(12); -// +// // dateStr += (std::to_string(this->year()) + delimiter); // dateStr += (toDoubleDigitStr(this->month()) + delimiter); // dateStr += toDoubleDigitStr(this->day()); -// +// // return dateStr; // } -// -// simplydt::gregorian::Date::Underlying_T simplydt::gregorian::Date::underlying() const noexcept +// +// simplydt::gregorian::Date::Underlying_T simplydt::gregorian::Date::underlying() const +// noexcept // { // return this->date; // } diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index ab17e22..87036f2 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -13,14 +13,12 @@ #include "simplydt/calendar/abstract_calendar.hpp" #include "simplydt/calendar/gregorian/gregorian_date.hpp" - - int main(int argc, char* argv[]) { ProjectInfoOut(); //\\// - simplydt::gregorian::GregorianDate demo{2025, 8, 11}; + simplydt::gregorian::GregorianDate demo{2'025, 8, 11}; std::cout << demo << '\n'; // From 5cb813f1e86270ff06d76c907b2f0d3d4116ed39 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 11 Aug 2025 20:21:44 -0400 Subject: [PATCH 103/400] Update abstract_date.hpp --- .../simplydt/calendar/date/abstract_date.hpp | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/include/simplydt/calendar/date/abstract_date.hpp b/include/simplydt/calendar/date/abstract_date.hpp index 4938b1e..6533f00 100644 --- a/include/simplydt/calendar/date/abstract_date.hpp +++ b/include/simplydt/calendar/date/abstract_date.hpp @@ -23,18 +23,19 @@ namespace simplydt /*! * @brief - * Base contract-enforcing agnostic calendar date. + * Base calendar agnostic date. * * @details - * This is Simply Datetime's generic representation - * of a calendar date. It is not associated with any - * specific calendar and is not a self-constructable - * type. It's responsibility is to enforce a set of - * API requirements on the derived calendar date - * implementations to ensure compatibility with - * library internals and consistenecy. + * This is a generic representation of a calendar date + * that is not associated with any specific calendar. + * This type is not self-constructable and must be + * inherited by a concrete implementation that presents + * a valid public API. Implementations should seek + * confirmation their API is compliant by invoking the + * date contract enforcement macro just after the body + * of the implementation. Failing to be compliant can + * result in compile errors and undefined behavior. */ -// TODO: Above documentaion needs to updated... template struct CalendarDate { /*! @brief Calendar date implementation. */ From 873af238a7064e01be4dab8032964bf381b8dddf Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Tue, 12 Aug 2025 04:23:47 -0400 Subject: [PATCH 104/400] Update abstract_date.hpp --- include/simplydt/calendar/date/abstract_date.hpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/include/simplydt/calendar/date/abstract_date.hpp b/include/simplydt/calendar/date/abstract_date.hpp index 6533f00..dbc8b94 100644 --- a/include/simplydt/calendar/date/abstract_date.hpp +++ b/include/simplydt/calendar/date/abstract_date.hpp @@ -12,8 +12,8 @@ */ -#ifndef SIMPLYDT_LIB_BASE_CRTP_CALENDAR_DATE_H_ -#define SIMPLYDT_LIB_BASE_CRTP_CALENDAR_DATE_H_ +#ifndef SIMPLYDT_LIB_BASE_CALENDAR_DATE_H_ +#define SIMPLYDT_LIB_BASE_CALENDAR_DATE_H_ #include "simplydt/common/calendar_defs.hpp" #include @@ -40,7 +40,7 @@ template struct CalendarDate { /*! @brief Calendar date implementation. */ using Date = Date_Impl; - /*! @brief Calendar date year type. */ + /*! @brief Date year type. */ using YearInt_t = Year_T; [[nodiscard]] std::optional getComponent(const CalendarComponent component @@ -76,4 +76,4 @@ struct CalendarDate { } // namespace simplydt -#endif // SIMPLYDT_LIB_BASE_CRTP_CALENDAR_DATE_H_ +#endif // SIMPLYDT_LIB_BASE_CALENDAR_DATE_H_ From a6c3613681a525f922bb53209923925563d96130 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Tue, 12 Aug 2025 04:24:11 -0400 Subject: [PATCH 105/400] Update abstract_calendar.hpp --- .../simplydt/calendar/abstract_calendar.hpp | 27 +++++++++++++------ 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/include/simplydt/calendar/abstract_calendar.hpp b/include/simplydt/calendar/abstract_calendar.hpp index a5a5b7e..a00e5f4 100644 --- a/include/simplydt/calendar/abstract_calendar.hpp +++ b/include/simplydt/calendar/abstract_calendar.hpp @@ -12,8 +12,8 @@ */ -#ifndef SIMPLYDT_LIB_BASE_CRTP_CALENDAR_H_ -#define SIMPLYDT_LIB_BASE_CRTP_CALENDAR_H_ +#ifndef SIMPLYDT_LIB_BASE_CALENDAR_H_ +#define SIMPLYDT_LIB_BASE_CALENDAR_H_ #include "simplydt/calendar/concepts/calendar_contract.hpp" @@ -22,18 +22,29 @@ namespace simplydt /*! * @brief - * Base contract-enforcing calendar. + * Base calendar agnostic system. */ -template +template struct CalendricalSystem { - // TODO: INCOMPLETE!!! + /*! @brief Calendar system implementation. */ + using Calendar = Calendar_Impl; + /*! @brief Calendar date. */ + using Date = Date_T; + /*! @brief Year integer type. */ + using YearInt_t = typename Date::YearInt_t; + /*! @brief Enumeration of calendar months. */ + using Month = Month_Enum; + /*! @brief Enumeration of calendar days of week. */ + using DayOfWeek = DOW_Enum; + + //... private: - CalendricalSystem() = default; - ~CalendricalSystem() = default; + CalendricalSystem() = delete; + ~CalendricalSystem() = delete; friend Calendar_Impl; }; } // namespace simplydt -#endif // SIMPLYDT_LIB_BASE_CRTP_CALENDAR_H_ +#endif // SIMPLYDT_LIB_BASE_CALENDAR_H_ From 93841ef25f48c7d0af2d3583f07ea049c0e2cac3 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Tue, 12 Aug 2025 04:24:26 -0400 Subject: [PATCH 106/400] Update calendar_contract.hpp --- .../simplydt/calendar/concepts/calendar_contract.hpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/include/simplydt/calendar/concepts/calendar_contract.hpp b/include/simplydt/calendar/concepts/calendar_contract.hpp index 94bbad4..d169be6 100644 --- a/include/simplydt/calendar/concepts/calendar_contract.hpp +++ b/include/simplydt/calendar/concepts/calendar_contract.hpp @@ -16,7 +16,6 @@ #define SIMPLYDT_LIB_CALENDAR_CONTRACT_CONCEPT_H_ #include "simplydt/calendar/concepts/calendar_concepts.hpp" -#include "simplydt/calendar/type_traits/calendar_traits.hpp" namespace simplydt::concepts { @@ -28,10 +27,19 @@ namespace simplydt::concepts */ template concept contract_abiding_calendar = requires { - requires std::is_same_v; // TODO: INCOMPLETE!!! + requires std::is_same_v; }; +#ifndef SIMPLYDT_ENFORCE_CALENDAR_CONTRACT +/*! @brief Macro for asserting calendar implementation interface contract. */ +# define SIMPLYDT_ENFORCE_CALENDAR_CONTRACT(Class) \ + static_assert( \ + simplydt::concepts::contract_abiding_calendar, \ + #Class " implementation does not fulfill the public API contract." \ + ); +#endif + } // namespace simplydt::concepts #endif // SIMPLYDT_LIB_CALENDAR_CONTRACT_CONCEPT_H_ From 26d0f23f06d4bd39df5cd94febddf355d81dd948 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Tue, 12 Aug 2025 04:24:38 -0400 Subject: [PATCH 107/400] Update date_contract.hpp Incomplete --- include/simplydt/calendar/concepts/date_contract.hpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/include/simplydt/calendar/concepts/date_contract.hpp b/include/simplydt/calendar/concepts/date_contract.hpp index 6135cf8..a10747f 100644 --- a/include/simplydt/calendar/concepts/date_contract.hpp +++ b/include/simplydt/calendar/concepts/date_contract.hpp @@ -16,7 +16,6 @@ #define SIMPLYDT_LIB_CALENDAR_DATE_CONTRACT_CONCEPT_H_ #include "simplydt/calendar/concepts/date_concepts.hpp" -#include "simplydt/calendar/type_traits/date_traits.hpp" namespace simplydt::concepts { @@ -34,6 +33,12 @@ concept contract_abiding_date = requires { requires date::has_basic_state_methods; requires date::is_stream_out_compatible; requires date::has_date_literal_methods; + // TODO: INCOMPLETE!!! + // -> Type needs to be copy constructable + // -> Type needs to be copy assignable + // -> Type needs to be default constructable??? + // -> Type needs to be moveable? (Investment for container compatibility?) + // }; } // namespace simplydt::concepts From 6627e8f3cfacae2e57969ac60bc3f79eb3081b3f Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Tue, 12 Aug 2025 04:24:45 -0400 Subject: [PATCH 108/400] Create gregorian_calendar.hpp --- .../calendar/gregorian/gregorian_calendar.hpp | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 include/simplydt/calendar/gregorian/gregorian_calendar.hpp diff --git a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp new file mode 100644 index 0000000..58cbaa0 --- /dev/null +++ b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp @@ -0,0 +1,34 @@ + +// Copyright (C) 2026 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. +// Released under the terms of the GNU Affero General Public License version 3. + +// [ISJTB-CXX-XL20230401-000001] + +/*! + * @file gregorian_calendar.hpp + * + * @brief + * Gregorian calendar system declaration. + */ + + +#ifndef SIMPLYDT_LIB_GREGORIAN_CALENDAR_STRUCT_H_ +#define SIMPLYDT_LIB_GREGORIAN_CALENDAR_STRUCT_H_ + +#include "simplydt/calendar/abstract_calendar.hpp" +#include "simplydt/calendar/gregorian/gregorian_date.hpp" + +namespace simplydt::gregorian +{ + +/*! + * @brief + * Gregorian calendar system. + */ +struct GregorianCalendar : public CalendricalSystem { + //... +}; + +} + +#endif // SIMPLYDT_LIB_GREGORIAN_CALENDAR_STRUCT_H_ From f56fa902fa9f3c57763e7c786b99360deec6078c Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Tue, 12 Aug 2025 04:24:51 -0400 Subject: [PATCH 109/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index 87036f2..484352d 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -10,8 +10,7 @@ \* /// \\\ /// \\\ /// | END | \\\ /// \\\ /// \\\ */ // Includes... -#include "simplydt/calendar/abstract_calendar.hpp" -#include "simplydt/calendar/gregorian/gregorian_date.hpp" +#include "simplydt/calendar/gregorian/gregorian_calendar.hpp" int main(int argc, char* argv[]) { From 82483a2ed5b1c46a40a5cc02016acfc7561818a0 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Tue, 12 Aug 2025 04:27:09 -0400 Subject: [PATCH 110/400] Update abstract_date.hpp --- include/simplydt/calendar/date/abstract_date.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/simplydt/calendar/date/abstract_date.hpp b/include/simplydt/calendar/date/abstract_date.hpp index dbc8b94..3b68ac2 100644 --- a/include/simplydt/calendar/date/abstract_date.hpp +++ b/include/simplydt/calendar/date/abstract_date.hpp @@ -34,7 +34,7 @@ namespace simplydt * confirmation their API is compliant by invoking the * date contract enforcement macro just after the body * of the implementation. Failing to be compliant can - * result in compile errors and undefined behavior. + * result in substitution errors or undefined behavior. */ template struct CalendarDate { From 553738200704f8a14b546c87010b32d7b67d15e4 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Tue, 12 Aug 2025 16:47:05 -0400 Subject: [PATCH 111/400] Update gregorian_calendar.hpp --- include/simplydt/calendar/gregorian/gregorian_calendar.hpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp index 58cbaa0..0ec5a84 100644 --- a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp @@ -17,6 +17,7 @@ #include "simplydt/calendar/abstract_calendar.hpp" #include "simplydt/calendar/gregorian/gregorian_date.hpp" +#include "simplydt/calendar/concepts/calendar_contract.hpp" namespace simplydt::gregorian { @@ -29,6 +30,8 @@ struct GregorianCalendar : public CalendricalSystem Date: Wed, 13 Aug 2025 00:29:42 -0400 Subject: [PATCH 112/400] Update calendar_concepts.hpp --- .../calendar/concepts/calendar_concepts.hpp | 27 +++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/include/simplydt/calendar/concepts/calendar_concepts.hpp b/include/simplydt/calendar/concepts/calendar_concepts.hpp index c8e7f88..8a63564 100644 --- a/include/simplydt/calendar/concepts/calendar_concepts.hpp +++ b/include/simplydt/calendar/concepts/calendar_concepts.hpp @@ -16,6 +16,8 @@ #define SIMPLYDT_LIB_CALENDAR_CONCEPTS_H_ #include "simplydt/calendar/type_traits/calendar_traits.hpp" +#include "simplydt/calendar/concepts/date_concepts.hpp" +#include "simplydt/common/simplydt_defs.hpp" #include /*! @@ -27,8 +29,29 @@ namespace simplydt::concepts::calendar { -// TODO: INCOMPLETE!!! -// nested_calendar_types : Check for the expected nested types of a calendar +template +concept has_contextual_nested_types = requires { + typename Calendar_Impl::YearInt_t; + typename Calendar_Impl::Date; + typename Calendar_Impl::Month; + typename Calendar_Impl::DayOfWeek; +}; + +template +concept has_characteristic_query_methods = requires { + { Calendar_Impl::calendar() }; // TODO: Constrain return type here... + { Calendar_Impl::isSolarCalendar() } -> std::same_as; + { Calendar_Impl::isLunarCalendar() } -> std::same_as; + { Calendar_Impl::isLunisolarCalendar() } -> std::same_as; +}; + +template +concept has_date_validation_methods = requires { + { Calendar_Impl::isValidYear(std::declval()) } -> std::same_as; + { Calendar_Impl::isValidMonth(std::declval()) } -> std::same_as; + { Calendar_Impl::isValidDay(std::declval()) } -> std::same_as; + { Calendar_Impl::isValidDate(std::declval()) } -> std::same_as; +}; } From 41d47c9c8895048321ad601f1ddee9a20c1e951f Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 13 Aug 2025 00:29:54 -0400 Subject: [PATCH 113/400] Update calendar_contract.hpp --- include/simplydt/calendar/concepts/calendar_contract.hpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/include/simplydt/calendar/concepts/calendar_contract.hpp b/include/simplydt/calendar/concepts/calendar_contract.hpp index d169be6..a1b4b28 100644 --- a/include/simplydt/calendar/concepts/calendar_contract.hpp +++ b/include/simplydt/calendar/concepts/calendar_contract.hpp @@ -25,10 +25,12 @@ namespace simplydt::concepts * Concept of a type that meets the criteria to be * considered a useable calendar implementation. */ -template +template concept contract_abiding_calendar = requires { - // TODO: INCOMPLETE!!! - requires std::is_same_v; + requires calendar::has_contextual_nested_types; + requires calendar::has_characteristic_query_methods; + requires calendar::has_date_validation_methods; + //... }; #ifndef SIMPLYDT_ENFORCE_CALENDAR_CONTRACT From 59162aa6127f41e8e4d1b0aae4d6da52cb85947a Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 13 Aug 2025 00:30:06 -0400 Subject: [PATCH 114/400] Update gregorian_calendar.hpp Incomplete --- .../calendar/gregorian/gregorian_calendar.hpp | 82 ++++++++++++++++++- 1 file changed, 80 insertions(+), 2 deletions(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp index 0ec5a84..1f03cd1 100644 --- a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp @@ -26,8 +26,86 @@ namespace simplydt::gregorian * @brief * Gregorian calendar system. */ -struct GregorianCalendar : public CalendricalSystem { - //... +struct GregorianCalendar final : public CalendricalSystem { + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + */ + [[nodiscard]] static constexpr CalendarSystem calendar() noexcept + { + return CalendarSystem::GREGORIAN; + } + + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + */ + [[nodiscard]] static constexpr bool isSolarCalendar() noexcept + { + return true; + } + + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + */ + [[nodiscard]] static constexpr bool isLunarCalendar() noexcept + { + return false; + } + + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + */ + [[nodiscard]] static constexpr bool isLunisolarCalendar() noexcept + { + return false; + } + + /*! + * @brief + * Evaluate support of year value. + */ + [[nodiscard]] static constexpr bool isValidYear(const YearInt_t year) noexcept + { + // TODO: INCOMPLETE!!! + return false; + } + + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + */ + [[nodiscard]] static constexpr bool isValidMonth(const uint8_t month) noexcept + { + // TODO: INCOMPLETE!!! + return false; + } + + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + */ + [[nodiscard]] static constexpr bool isValidDay(const uint8_t day) noexcept + { + // TODO: INCOMPLETE!!! + return false; + } + + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + */ + [[nodiscard]] static constexpr bool isValidDate(const Date date) noexcept + { + // TODO: INCOMPLETE!!! + return false; + } + +private: + GregorianCalendar() = delete; + ~GregorianCalendar() = delete; }; SIMPLYDT_ENFORCE_CALENDAR_CONTRACT(GregorianCalendar); From b62fc9e0312754ce85815b0e63699447a5cb8dd0 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 13 Aug 2025 00:31:35 -0400 Subject: [PATCH 115/400] Update calendar_concepts.hpp --- .../calendar/concepts/calendar_concepts.hpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/include/simplydt/calendar/concepts/calendar_concepts.hpp b/include/simplydt/calendar/concepts/calendar_concepts.hpp index 8a63564..78efeb4 100644 --- a/include/simplydt/calendar/concepts/calendar_concepts.hpp +++ b/include/simplydt/calendar/concepts/calendar_concepts.hpp @@ -15,8 +15,8 @@ #ifndef SIMPLYDT_LIB_CALENDAR_CONCEPTS_H_ #define SIMPLYDT_LIB_CALENDAR_CONCEPTS_H_ -#include "simplydt/calendar/type_traits/calendar_traits.hpp" #include "simplydt/calendar/concepts/date_concepts.hpp" +#include "simplydt/calendar/type_traits/calendar_traits.hpp" #include "simplydt/common/simplydt_defs.hpp" #include @@ -47,12 +47,18 @@ concept has_characteristic_query_methods = requires { template concept has_date_validation_methods = requires { - { Calendar_Impl::isValidYear(std::declval()) } -> std::same_as; + { + Calendar_Impl::isValidYear(std::declval()) + } -> std::same_as; + { Calendar_Impl::isValidMonth(std::declval()) } -> std::same_as; { Calendar_Impl::isValidDay(std::declval()) } -> std::same_as; - { Calendar_Impl::isValidDate(std::declval()) } -> std::same_as; + + { + Calendar_Impl::isValidDate(std::declval()) + } -> std::same_as; }; -} +} // namespace simplydt::concepts::calendar #endif // SIMPLYDT_LIB_CALENDAR_CONCEPTS_H_ From 99419662d97999c594a640867a075f02e87e1f16 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 13 Aug 2025 00:31:52 -0400 Subject: [PATCH 116/400] Update calendar_contract.hpp --- include/simplydt/calendar/concepts/calendar_contract.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/simplydt/calendar/concepts/calendar_contract.hpp b/include/simplydt/calendar/concepts/calendar_contract.hpp index a1b4b28..63a1adb 100644 --- a/include/simplydt/calendar/concepts/calendar_contract.hpp +++ b/include/simplydt/calendar/concepts/calendar_contract.hpp @@ -35,9 +35,9 @@ concept contract_abiding_calendar = requires { #ifndef SIMPLYDT_ENFORCE_CALENDAR_CONTRACT /*! @brief Macro for asserting calendar implementation interface contract. */ -# define SIMPLYDT_ENFORCE_CALENDAR_CONTRACT(Class) \ +# define SIMPLYDT_ENFORCE_CALENDAR_CONTRACT(Class) \ static_assert( \ - simplydt::concepts::contract_abiding_calendar, \ + simplydt::concepts::contract_abiding_calendar, \ #Class " implementation does not fulfill the public API contract." \ ); #endif From bff3cc225d78ffcca938791522d6b3d470eb95da Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 13 Aug 2025 00:32:04 -0400 Subject: [PATCH 117/400] Update gregorian_calendar.hpp --- .../calendar/gregorian/gregorian_calendar.hpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp index 1f03cd1..b1401b1 100644 --- a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp @@ -16,8 +16,8 @@ #define SIMPLYDT_LIB_GREGORIAN_CALENDAR_STRUCT_H_ #include "simplydt/calendar/abstract_calendar.hpp" -#include "simplydt/calendar/gregorian/gregorian_date.hpp" #include "simplydt/calendar/concepts/calendar_contract.hpp" +#include "simplydt/calendar/gregorian/gregorian_date.hpp" namespace simplydt::gregorian { @@ -26,7 +26,8 @@ namespace simplydt::gregorian * @brief * Gregorian calendar system. */ -struct GregorianCalendar final : public CalendricalSystem { +struct GregorianCalendar final : + public CalendricalSystem { /*! * @brief * TODO: INCOMPLETE COMMENT!!! @@ -103,13 +104,13 @@ struct GregorianCalendar final : public CalendricalSystem Date: Wed, 13 Aug 2025 01:35:57 -0400 Subject: [PATCH 118/400] Update calendar_concepts.hpp --- .../simplydt/calendar/concepts/calendar_concepts.hpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/include/simplydt/calendar/concepts/calendar_concepts.hpp b/include/simplydt/calendar/concepts/calendar_concepts.hpp index 78efeb4..f7f4a71 100644 --- a/include/simplydt/calendar/concepts/calendar_concepts.hpp +++ b/include/simplydt/calendar/concepts/calendar_concepts.hpp @@ -38,11 +38,11 @@ concept has_contextual_nested_types = requires { }; template -concept has_characteristic_query_methods = requires { - { Calendar_Impl::calendar() }; // TODO: Constrain return type here... - { Calendar_Impl::isSolarCalendar() } -> std::same_as; - { Calendar_Impl::isLunarCalendar() } -> std::same_as; - { Calendar_Impl::isLunisolarCalendar() } -> std::same_as; +concept has_characteristic_query_members = requires { + { Calendar_Impl::calendar }; // TODO: Constrain static member type here... + { Calendar_Impl::isSolarCalendar } -> std::same_as; + { Calendar_Impl::isLunarCalendar } -> std::same_as; + { Calendar_Impl::isLunisolarCalendar } -> std::same_as; }; template From 208818dc32f35ddaf8db339352cb561ae3b4a5f7 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 13 Aug 2025 01:36:05 -0400 Subject: [PATCH 119/400] Update calendar_contract.hpp --- include/simplydt/calendar/concepts/calendar_contract.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/simplydt/calendar/concepts/calendar_contract.hpp b/include/simplydt/calendar/concepts/calendar_contract.hpp index 63a1adb..98918d2 100644 --- a/include/simplydt/calendar/concepts/calendar_contract.hpp +++ b/include/simplydt/calendar/concepts/calendar_contract.hpp @@ -28,7 +28,7 @@ namespace simplydt::concepts template concept contract_abiding_calendar = requires { requires calendar::has_contextual_nested_types; - requires calendar::has_characteristic_query_methods; + requires calendar::has_characteristic_query_members; requires calendar::has_date_validation_methods; //... }; From 18ed94d53d6c96190e7b6957b575915fc1d450a5 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 13 Aug 2025 01:36:14 -0400 Subject: [PATCH 120/400] Update gregorian_defs.hpp --- .../calendar/gregorian/gregorian_defs.hpp | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/include/simplydt/calendar/gregorian/gregorian_defs.hpp b/include/simplydt/calendar/gregorian/gregorian_defs.hpp index 83414a6..e093a2e 100644 --- a/include/simplydt/calendar/gregorian/gregorian_defs.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_defs.hpp @@ -39,6 +39,31 @@ namespace simplydt::gregorian */ using Year_Type = uint16_t; +/*! + * @brief + * Minimum supported year value. + * + * @details + * This is the minimum supported year for the + * Gregorian calendar in Simply Datetime. + * This limit was choosen because it aligns with + * Microsoft's FILETIME structure which measures + * 100-nanosecond intervals since January 1, 1601. + * This allows compatibility with Windows NT + * systems and historical time point capabilities. + */ +constexpr Year_Type YEAR_MINIMUM = 1'601; + +/*! + * @brief + * Maximum supported year value. + * + * @details + * This is the maximum supported year value for the + * Gregorian calendar in Simply Datetime. + */ +constexpr Year_Type YEAR_MAXIMUM = 2'038; // TODO: Find real limitation... + /*! * @brief * Abbreviation length for Gregorian calendar name From 0387fa41a80ba148f7171e8a2df5aafaa53cf682 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 13 Aug 2025 01:36:27 -0400 Subject: [PATCH 121/400] Update gregorian_calendar.hpp --- .../calendar/gregorian/gregorian_calendar.hpp | 38 ++++++++----------- 1 file changed, 16 insertions(+), 22 deletions(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp index b1401b1..a01334f 100644 --- a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp @@ -32,37 +32,25 @@ struct GregorianCalendar final : * @brief * TODO: INCOMPLETE COMMENT!!! */ - [[nodiscard]] static constexpr CalendarSystem calendar() noexcept - { - return CalendarSystem::GREGORIAN; - } + static constexpr CalendarSystem calendar = CalendarSystem::GREGORIAN; /*! * @brief * TODO: INCOMPLETE COMMENT!!! */ - [[nodiscard]] static constexpr bool isSolarCalendar() noexcept - { - return true; - } + static constexpr bool isSolarCalendar = true; /*! * @brief * TODO: INCOMPLETE COMMENT!!! */ - [[nodiscard]] static constexpr bool isLunarCalendar() noexcept - { - return false; - } + static constexpr bool isLunarCalendar = false; /*! * @brief * TODO: INCOMPLETE COMMENT!!! */ - [[nodiscard]] static constexpr bool isLunisolarCalendar() noexcept - { - return false; - } + static constexpr bool isLunisolarCalendar = false; /*! * @brief @@ -70,8 +58,16 @@ struct GregorianCalendar final : */ [[nodiscard]] static constexpr bool isValidYear(const YearInt_t year) noexcept { - // TODO: INCOMPLETE!!! - return false; + return year >= YEAR_MINIMUM && year <= YEAR_MAXIMUM; + } + + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + */ + [[nodiscard]] static constexpr bool isLeapYear(const YearInt_t year) noexcept + { + return (year % 4) == 0 && (year % 100 != 0 || year % 400 == 0); } /*! @@ -80,8 +76,7 @@ struct GregorianCalendar final : */ [[nodiscard]] static constexpr bool isValidMonth(const uint8_t month) noexcept { - // TODO: INCOMPLETE!!! - return false; + return month >= MIN_MONTH_OF_YEAR && month <= MAX_MONTH_OF_YEAR; } /*! @@ -90,8 +85,7 @@ struct GregorianCalendar final : */ [[nodiscard]] static constexpr bool isValidDay(const uint8_t day) noexcept { - // TODO: INCOMPLETE!!! - return false; + return day >= MIN_DAY_OF_MONTH && day <= MAX_DAY_OF_MONTH; } /*! From 571747d34914717ba7fcf8f7b754adefe467640a Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 13 Aug 2025 01:49:44 -0400 Subject: [PATCH 122/400] Update calendar_concepts.hpp --- include/simplydt/calendar/concepts/calendar_concepts.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/simplydt/calendar/concepts/calendar_concepts.hpp b/include/simplydt/calendar/concepts/calendar_concepts.hpp index f7f4a71..b5ed7ac 100644 --- a/include/simplydt/calendar/concepts/calendar_concepts.hpp +++ b/include/simplydt/calendar/concepts/calendar_concepts.hpp @@ -17,7 +17,7 @@ #include "simplydt/calendar/concepts/date_concepts.hpp" #include "simplydt/calendar/type_traits/calendar_traits.hpp" -#include "simplydt/common/simplydt_defs.hpp" +#include "simplydt/common/calendar_defs.hpp" #include /*! @@ -39,7 +39,7 @@ concept has_contextual_nested_types = requires { template concept has_characteristic_query_members = requires { - { Calendar_Impl::calendar }; // TODO: Constrain static member type here... + { Calendar_Impl::calendar } -> std::same_as; { Calendar_Impl::isSolarCalendar } -> std::same_as; { Calendar_Impl::isLunarCalendar } -> std::same_as; { Calendar_Impl::isLunisolarCalendar } -> std::same_as; From 78a39e849179fef2bee9aa99177f4c44aa577064 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 13 Aug 2025 04:16:20 -0400 Subject: [PATCH 123/400] Update calendar_concepts.hpp --- .../calendar/concepts/calendar_concepts.hpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/include/simplydt/calendar/concepts/calendar_concepts.hpp b/include/simplydt/calendar/concepts/calendar_concepts.hpp index b5ed7ac..63bb324 100644 --- a/include/simplydt/calendar/concepts/calendar_concepts.hpp +++ b/include/simplydt/calendar/concepts/calendar_concepts.hpp @@ -59,6 +59,21 @@ concept has_date_validation_methods = requires { } -> std::same_as; }; +template +concept has_calendar_structure_methods = requires { + { + Calendar_Impl::getDayOfWeekIndex(std::declval()) + } -> std::same_as; + + { Calendar_Impl::getDaysInMonth(std::declval()) } -> std::same_as; + + { + Calendar_Impl::getDaysInYear(std::declval()) + } -> std::same_as; + + { Calendar_Impl::getWeeksInMonth(std::declval()) } -> std::same_as; +}; + } // namespace simplydt::concepts::calendar #endif // SIMPLYDT_LIB_CALENDAR_CONCEPTS_H_ From 0b9ec493dfc2dbf5f767d3fc915ece8d249f821d Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 13 Aug 2025 04:16:34 -0400 Subject: [PATCH 124/400] Update calendar_contract.hpp --- include/simplydt/calendar/concepts/calendar_contract.hpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/include/simplydt/calendar/concepts/calendar_contract.hpp b/include/simplydt/calendar/concepts/calendar_contract.hpp index 98918d2..ce54b91 100644 --- a/include/simplydt/calendar/concepts/calendar_contract.hpp +++ b/include/simplydt/calendar/concepts/calendar_contract.hpp @@ -16,6 +16,7 @@ #define SIMPLYDT_LIB_CALENDAR_CONTRACT_CONCEPT_H_ #include "simplydt/calendar/concepts/calendar_concepts.hpp" +#include "simplydt/calendar/concepts/date_contract.hpp" namespace simplydt::concepts { @@ -28,9 +29,11 @@ namespace simplydt::concepts template concept contract_abiding_calendar = requires { requires calendar::has_contextual_nested_types; + requires contract_abiding_date; requires calendar::has_characteristic_query_members; + requires calendar::has_calendar_structure_methods; requires calendar::has_date_validation_methods; - //... + // requires calendar::has_date_conversion_methods; }; #ifndef SIMPLYDT_ENFORCE_CALENDAR_CONTRACT From c5a83d7dcccbdfc48de2c79535a31a5dd2dd11ee Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 13 Aug 2025 04:16:40 -0400 Subject: [PATCH 125/400] Update gregorian_calendar.hpp --- .../calendar/gregorian/gregorian_calendar.hpp | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp index a01334f..4cfe843 100644 --- a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp @@ -79,6 +79,26 @@ struct GregorianCalendar final : return month >= MIN_MONTH_OF_YEAR && month <= MAX_MONTH_OF_YEAR; } + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + */ + [[nodiscard]] static constexpr uint8_t getDaysInMonth(const uint8_t month) noexcept + { + // TODO: INCOMPLETE!!! + return 0; + } + + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + */ + [[nodiscard]] static constexpr uint16_t getDaysInYear(const YearInt_t year) noexcept + { + // TODO: INCOMPLETE!!! + return 0; + } + /*! * @brief * TODO: INCOMPLETE COMMENT!!! @@ -88,6 +108,26 @@ struct GregorianCalendar final : return day >= MIN_DAY_OF_MONTH && day <= MAX_DAY_OF_MONTH; } + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + */ + [[nodiscard]] static constexpr uint8_t getDayOfWeekIndex(const Date date) noexcept + { + // TODO: INCOMPLETE!!! + return 0; + } + + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + */ + [[nodiscard]] static constexpr uint8_t getWeeksInMonth(const uint8_t month) noexcept + { + // TODO: INCOMPLETE!!! + return 0; + } + /*! * @brief * TODO: INCOMPLETE COMMENT!!! From 67f63342fa28db019c0cdd336739f79957bc600b Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 13 Aug 2025 15:02:47 -0400 Subject: [PATCH 126/400] Update gregorian_date.hpp --- include/simplydt/calendar/gregorian/gregorian_date.hpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_date.hpp b/include/simplydt/calendar/gregorian/gregorian_date.hpp index 5ead65e..56e05f5 100644 --- a/include/simplydt/calendar/gregorian/gregorian_date.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_date.hpp @@ -65,7 +65,8 @@ struct GregorianDate : public CalendarDate { const YearInt_t year, const uint8_t month, const uint8_t day ) noexcept { - if ((month < MIN_MONTH_OF_YEAR) || (month > MAX_MONTH_OF_YEAR) || + if ((year < YEAR_MINIMUM) || (year > YEAR_MAXIMUM) || + (month < MIN_MONTH_OF_YEAR) || (month > MAX_MONTH_OF_YEAR) || (day < MIN_DAY_OF_MONTH) || (day > MAX_DAY_OF_MONTH)) return 0; // Invalid date params From e6065b454a685321031b5aaa22ce73934e4155c1 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 13 Aug 2025 15:02:52 -0400 Subject: [PATCH 127/400] Update gregorian_defs.hpp --- include/simplydt/calendar/gregorian/gregorian_defs.hpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/include/simplydt/calendar/gregorian/gregorian_defs.hpp b/include/simplydt/calendar/gregorian/gregorian_defs.hpp index e093a2e..699e519 100644 --- a/include/simplydt/calendar/gregorian/gregorian_defs.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_defs.hpp @@ -176,6 +176,16 @@ constexpr std::array DayOfWeekAbbrevs = { std::string_view(DaysOfWeek[SATURDAY], ABBREV_LENGTH) ///< Sat }; +/*! + * @brief + * Invalid date day-of-week index. + * + * @details + * Used to signal invalid dates that seek a day-of-week + * index. + */ +constexpr uint8_t INVALID_DATE_DOW = 255; + /*! * @brief * Minimum day of Gregorian month. From d2abdae808730b41e5d5813ee7350c193af6f6c4 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 13 Aug 2025 15:03:05 -0400 Subject: [PATCH 128/400] Update calendar_concepts.hpp --- .../simplydt/calendar/concepts/calendar_concepts.hpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/include/simplydt/calendar/concepts/calendar_concepts.hpp b/include/simplydt/calendar/concepts/calendar_concepts.hpp index 63bb324..f561caf 100644 --- a/include/simplydt/calendar/concepts/calendar_concepts.hpp +++ b/include/simplydt/calendar/concepts/calendar_concepts.hpp @@ -65,13 +65,21 @@ concept has_calendar_structure_methods = requires { Calendar_Impl::getDayOfWeekIndex(std::declval()) } -> std::same_as; - { Calendar_Impl::getDaysInMonth(std::declval()) } -> std::same_as; + { + Calendar_Impl::getDaysInMonth( + std::declval(), std::declval() + ) + } -> std::same_as; { Calendar_Impl::getDaysInYear(std::declval()) } -> std::same_as; - { Calendar_Impl::getWeeksInMonth(std::declval()) } -> std::same_as; + { + Calendar_Impl::getWeeksInMonth( + std::declval(), std::declval() + ) + } -> std::same_as; }; } // namespace simplydt::concepts::calendar From b19d6d256d3f7bf5f943525456def8d170c71770 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 13 Aug 2025 15:03:53 -0400 Subject: [PATCH 129/400] Update gregorian_calendar.hpp --- .../calendar/gregorian/gregorian_calendar.hpp | 61 +++++++++++++++---- 1 file changed, 48 insertions(+), 13 deletions(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp index 4cfe843..9103384 100644 --- a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp @@ -83,10 +83,30 @@ struct GregorianCalendar final : * @brief * TODO: INCOMPLETE COMMENT!!! */ - [[nodiscard]] static constexpr uint8_t getDaysInMonth(const uint8_t month) noexcept + [[nodiscard]] static constexpr uint8_t getDaysInMonth(const YearInt_t year, const uint8_t month) noexcept { - // TODO: INCOMPLETE!!! - return 0; + if (!isValidYear(year) || !isValidMonth(month)) + return 0; // Unsupported or invalid + + switch (month) { + case FEBRUARY: + switch (isLeapYear(year)) { + case true: + return 29; + default: + return 28; + } + + case APRIL: + case JUNE: + case SEPTEMBER: + case NOVEMBER: + return 30; + + // January, March, May, July, August, October, December + default: + return 31; + } } /*! @@ -95,8 +115,15 @@ struct GregorianCalendar final : */ [[nodiscard]] static constexpr uint16_t getDaysInYear(const YearInt_t year) noexcept { - // TODO: INCOMPLETE!!! - return 0; + if (!isValidYear(year)) + return 0; // Unsupported year + + uint16_t totalDays = 0; + + for (uint8_t month = 1; month <= 12; month++) + totalDays += getDaysInMonth(year, month); + + return totalDays; } /*! @@ -112,30 +139,38 @@ struct GregorianCalendar final : * @brief * TODO: INCOMPLETE COMMENT!!! */ - [[nodiscard]] static constexpr uint8_t getDayOfWeekIndex(const Date date) noexcept + [[nodiscard]] static constexpr bool isValidDate(const Date date) noexcept { - // TODO: INCOMPLETE!!! - return 0; + const uint8_t monthTotalDays = getDaysInMonth(date.year(), date.month()); + return date.day() <= monthTotalDays; } /*! * @brief * TODO: INCOMPLETE COMMENT!!! */ - [[nodiscard]] static constexpr uint8_t getWeeksInMonth(const uint8_t month) noexcept + [[nodiscard]] static constexpr uint8_t getDayOfWeekIndex(const Date date) noexcept { - // TODO: INCOMPLETE!!! - return 0; + if (!isValidDate(date)) + return INVALID_DATE_DOW; // TODO: bruh... + + // Tomohiko Sakamoto's Algorithm + const uint8_t monthKey[] = { 0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4 }; + const YearInt_t year = date.year() - (date.month() < 3); // Extra days from leap year + // only affect March and later + const int index = (year + year / 4 - year / 100 + year / 400 + monthKey[date.month() - 1] + date.day()) % 7; + + return 0; // TODO: INCOMPLETE!!! } /*! * @brief * TODO: INCOMPLETE COMMENT!!! */ - [[nodiscard]] static constexpr bool isValidDate(const Date date) noexcept + [[nodiscard]] static constexpr uint8_t getWeeksInMonth(const YearInt_t year, const uint8_t month) noexcept { // TODO: INCOMPLETE!!! - return false; + return 0; } private: From b9bedf70ce30af148dd9d6200dc24d9be8316092 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 13 Aug 2025 15:05:36 -0400 Subject: [PATCH 130/400] Update gregorian_defs.hpp --- include/simplydt/calendar/gregorian/gregorian_defs.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_defs.hpp b/include/simplydt/calendar/gregorian/gregorian_defs.hpp index 699e519..332ee57 100644 --- a/include/simplydt/calendar/gregorian/gregorian_defs.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_defs.hpp @@ -179,7 +179,7 @@ constexpr std::array DayOfWeekAbbrevs = { /*! * @brief * Invalid date day-of-week index. - * + * * @details * Used to signal invalid dates that seek a day-of-week * index. From 20d9c97e17c1658ca9eec29c9ac9eced909203a2 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 13 Aug 2025 15:06:55 -0400 Subject: [PATCH 131/400] Update gregorian_date.hpp --- include/simplydt/calendar/gregorian/gregorian_date.hpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_date.hpp b/include/simplydt/calendar/gregorian/gregorian_date.hpp index 56e05f5..8ad26b5 100644 --- a/include/simplydt/calendar/gregorian/gregorian_date.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_date.hpp @@ -65,9 +65,9 @@ struct GregorianDate : public CalendarDate { const YearInt_t year, const uint8_t month, const uint8_t day ) noexcept { - if ((year < YEAR_MINIMUM) || (year > YEAR_MAXIMUM) || - (month < MIN_MONTH_OF_YEAR) || (month > MAX_MONTH_OF_YEAR) || - (day < MIN_DAY_OF_MONTH) || (day > MAX_DAY_OF_MONTH)) + if ((year < YEAR_MINIMUM) || (year > YEAR_MAXIMUM) || (month < MIN_MONTH_OF_YEAR) || + (month > MAX_MONTH_OF_YEAR) || (day < MIN_DAY_OF_MONTH) || + (day > MAX_DAY_OF_MONTH)) return 0; // Invalid date params return ((year * YEAR_FACTOR) + (month * MONTH_FACTOR) + day); From f5c2f900b8014d32a866895d5e2be6a1726d2ebc Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 13 Aug 2025 15:45:48 -0400 Subject: [PATCH 132/400] Update gregorian_defs.hpp --- include/simplydt/calendar/gregorian/gregorian_defs.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_defs.hpp b/include/simplydt/calendar/gregorian/gregorian_defs.hpp index 332ee57..7eb3fb6 100644 --- a/include/simplydt/calendar/gregorian/gregorian_defs.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_defs.hpp @@ -184,7 +184,7 @@ constexpr std::array DayOfWeekAbbrevs = { * Used to signal invalid dates that seek a day-of-week * index. */ -constexpr uint8_t INVALID_DATE_DOW = 255; +constexpr uint8_t INVALID_DOW_INDEX = 255; /*! * @brief From 4b64139335a549fe60506f8fad0a1a78a1995bda Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 13 Aug 2025 15:45:59 -0400 Subject: [PATCH 133/400] Update calendar_concepts.hpp --- .../simplydt/calendar/concepts/calendar_concepts.hpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/include/simplydt/calendar/concepts/calendar_concepts.hpp b/include/simplydt/calendar/concepts/calendar_concepts.hpp index f561caf..fee5ee9 100644 --- a/include/simplydt/calendar/concepts/calendar_concepts.hpp +++ b/include/simplydt/calendar/concepts/calendar_concepts.hpp @@ -55,14 +55,22 @@ concept has_date_validation_methods = requires { { Calendar_Impl::isValidDay(std::declval()) } -> std::same_as; { - Calendar_Impl::isValidDate(std::declval()) + Calendar_Impl::isValidDate( + std::declval(), + std::declval(), + std::declval() + ) } -> std::same_as; }; template concept has_calendar_structure_methods = requires { { - Calendar_Impl::getDayOfWeekIndex(std::declval()) + Calendar_Impl::getDayOfWeekIndex( + std::declval(), + std::declval(), + std::declval() + ) } -> std::same_as; { From c1f5975ef21d86707642a2f8c46d0b33cf62cc08 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 13 Aug 2025 15:46:10 -0400 Subject: [PATCH 134/400] Update gregorian_calendar.hpp --- .../calendar/gregorian/gregorian_calendar.hpp | 50 +++++++++++++------ 1 file changed, 34 insertions(+), 16 deletions(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp index 9103384..5f408ab 100644 --- a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp @@ -83,7 +83,9 @@ struct GregorianCalendar final : * @brief * TODO: INCOMPLETE COMMENT!!! */ - [[nodiscard]] static constexpr uint8_t getDaysInMonth(const YearInt_t year, const uint8_t month) noexcept + [[nodiscard]] static constexpr uint8_t getDaysInMonth( + const YearInt_t year, const uint8_t month + ) noexcept { if (!isValidYear(year) || !isValidMonth(month)) return 0; // Unsupported or invalid @@ -139,38 +141,54 @@ struct GregorianCalendar final : * @brief * TODO: INCOMPLETE COMMENT!!! */ - [[nodiscard]] static constexpr bool isValidDate(const Date date) noexcept + [[nodiscard]] static constexpr bool isValidDate( + const YearInt_t year, const uint8_t month, const uint8_t day + ) noexcept { - const uint8_t monthTotalDays = getDaysInMonth(date.year(), date.month()); - return date.day() <= monthTotalDays; + const uint8_t monthTotalDays = getDaysInMonth(year, month); + return day <= monthTotalDays; } /*! * @brief * TODO: INCOMPLETE COMMENT!!! */ - [[nodiscard]] static constexpr uint8_t getDayOfWeekIndex(const Date date) noexcept + [[nodiscard]] static constexpr uint8_t getDayOfWeekIndex( + const YearInt_t year, const uint8_t month, const uint8_t day + ) noexcept { - if (!isValidDate(date)) - return INVALID_DATE_DOW; // TODO: bruh... - + if (!isValidDate(year, month, day)) + return INVALID_DOW_INDEX; + // Tomohiko Sakamoto's Algorithm - const uint8_t monthKey[] = { 0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4 }; - const YearInt_t year = date.year() - (date.month() < 3); // Extra days from leap year - // only affect March and later - const int index = (year + year / 4 - year / 100 + year / 400 + monthKey[date.month() - 1] + date.day()) % 7; + const uint8_t monthKey[12] = {0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4}; + const YearInt_t calcYear = year - (month < 3); // Extra days from leap year + // only affect March and later + const int index = + ((year + year / 4 - year / 100 + year / 400 + monthKey[month - 1] + day) % 7); + + if (index > std::numeric_limits::max() || index > 7) + return INVALID_DOW_INDEX; - return 0; // TODO: INCOMPLETE!!! + return static_cast(index); } /*! * @brief * TODO: INCOMPLETE COMMENT!!! */ - [[nodiscard]] static constexpr uint8_t getWeeksInMonth(const YearInt_t year, const uint8_t month) noexcept + [[nodiscard]] static constexpr uint8_t getWeeksInMonth( + const YearInt_t year, const uint8_t month + ) noexcept { - // TODO: INCOMPLETE!!! - return 0; + const uint8_t monthTotalDays = getDaysInMonth(year, month); + + if (monthTotalDays == 0) + return 0; // Unsupported or invalid + + const uint8_t firstOfMonthDowIndex = getDayOfWeekIndex(year, month, 1); + const uint8_t monthCells = firstOfMonthDowIndex + monthTotalDays; + return (monthCells + 6) / 7; } private: From 91e8a51eafcf7d17ca13e43a93364e4b433568df Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 13 Aug 2025 17:52:02 -0400 Subject: [PATCH 135/400] Update abstract_calendar.hpp --- .../simplydt/calendar/abstract_calendar.hpp | 47 ++++++++++++++++++- 1 file changed, 46 insertions(+), 1 deletion(-) diff --git a/include/simplydt/calendar/abstract_calendar.hpp b/include/simplydt/calendar/abstract_calendar.hpp index a00e5f4..852491d 100644 --- a/include/simplydt/calendar/abstract_calendar.hpp +++ b/include/simplydt/calendar/abstract_calendar.hpp @@ -28,6 +28,8 @@ template ; /*! @brief Calendar date. */ using Date = Date_T; /*! @brief Year integer type. */ @@ -37,7 +39,50 @@ struct CalendricalSystem { /*! @brief Enumeration of calendar days of week. */ using DayOfWeek = DOW_Enum; - //... + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + */ + [[nodiscard]] static constexpr uint8_t getDaysInMonth(const Date& date) noexcept + { + return Calendar::getDaysInMonth(date.year(), date.month()); + } + + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + */ + [[nodiscard]] static constexpr uint16_t getDaysInYear(const Date& date) noexcept + { + return Calendar::getDaysInYear(date.year()); + } + + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + */ + [[nodiscard]] static constexpr bool isValidDate(const Date& date) noexcept + { + return Calendar::isValidDate(date.year(), date.month(), date.day()); + } + + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + */ + [[nodiscard]] static constexpr uint8_t getDayOfWeekIndex(const Date& date) noexcept + { + return Calendar::getDayOfWeekIndex(date.year(), date.month(), date.day()); + } + + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + */ + [[nodiscard]] static constexpr uint8_t getWeeksInMonth(const Date& date) noexcept + { + return Calendar::getWeeksInMonth(date.year(), date.month()); + } private: CalendricalSystem() = delete; From d4cd6fa2eddc55d452449983bdb62f20650c166e Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 13 Aug 2025 17:52:28 -0400 Subject: [PATCH 136/400] Update gregorian_calendar.hpp --- .../calendar/gregorian/gregorian_calendar.hpp | 76 +++++++++++++++++-- 1 file changed, 68 insertions(+), 8 deletions(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp index 5f408ab..b4fc22e 100644 --- a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp @@ -18,6 +18,7 @@ #include "simplydt/calendar/abstract_calendar.hpp" #include "simplydt/calendar/concepts/calendar_contract.hpp" #include "simplydt/calendar/gregorian/gregorian_date.hpp" +#include namespace simplydt::gregorian { @@ -70,6 +71,15 @@ struct GregorianCalendar final : return (year % 4) == 0 && (year % 100 != 0 || year % 400 == 0); } + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + */ + [[nodiscard]] static constexpr bool isLeapYear(const Date& date) noexcept + { + return isLeapYear(date.year()); + } + /*! * @brief * TODO: INCOMPLETE COMMENT!!! @@ -91,7 +101,8 @@ struct GregorianCalendar final : return 0; // Unsupported or invalid switch (month) { - case FEBRUARY: + // February + case 2: switch (isLeapYear(year)) { case true: return 29; @@ -99,10 +110,11 @@ struct GregorianCalendar final : return 28; } - case APRIL: - case JUNE: - case SEPTEMBER: - case NOVEMBER: + // April, June, September, November + case 4: + case 6: + case 9: + case 11: return 30; // January, March, May, July, August, October, December @@ -111,6 +123,15 @@ struct GregorianCalendar final : } } + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + */ + [[nodiscard]] static constexpr uint8_t getDaysInMonth(const Date date) noexcept + { + return Base::getDaysInMonth(date); + } + /*! * @brief * TODO: INCOMPLETE COMMENT!!! @@ -128,6 +149,15 @@ struct GregorianCalendar final : return totalDays; } + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + */ + [[nodiscard]] static constexpr uint16_t getDaysInYear(const Date date) noexcept + { + return Base::getDaysInYear(date); + } + /*! * @brief * TODO: INCOMPLETE COMMENT!!! @@ -145,10 +175,22 @@ struct GregorianCalendar final : const YearInt_t year, const uint8_t month, const uint8_t day ) noexcept { + if (!isValidYear(year)) + return false; + const uint8_t monthTotalDays = getDaysInMonth(year, month); return day <= monthTotalDays; } + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + */ + [[nodiscard]] static constexpr bool isValidDate(const Date date) noexcept + { + return Base::isValidDate(date); + } + /*! * @brief * TODO: INCOMPLETE COMMENT!!! @@ -162,10 +204,10 @@ struct GregorianCalendar final : // Tomohiko Sakamoto's Algorithm const uint8_t monthKey[12] = {0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4}; - const YearInt_t calcYear = year - (month < 3); // Extra days from leap year - // only affect March and later + const YearInt_t modYear = year - (month < 3); // Extra days from leap year + // only affect March and later const int index = - ((year + year / 4 - year / 100 + year / 400 + monthKey[month - 1] + day) % 7); + ((modYear + modYear / 4 - modYear / 100 + modYear / 400 + monthKey[month - 1] + day) % 7); if (index > std::numeric_limits::max() || index > 7) return INVALID_DOW_INDEX; @@ -173,6 +215,15 @@ struct GregorianCalendar final : return static_cast(index); } + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + */ + [[nodiscard]] static constexpr uint8_t getDayOfWeekIndex(const Date date) noexcept + { + return Base::getDayOfWeekIndex(date); + } + /*! * @brief * TODO: INCOMPLETE COMMENT!!! @@ -191,6 +242,15 @@ struct GregorianCalendar final : return (monthCells + 6) / 7; } + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + */ + [[nodiscard]] static constexpr uint8_t getWeeksInMonth(const Date date) noexcept + { + return Base::getWeeksInMonth(date); + } + private: GregorianCalendar() = delete; ~GregorianCalendar() = delete; From 8adc81d79fd766f6889fe98b987fb70f8a23bdfe Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 13 Aug 2025 17:53:35 -0400 Subject: [PATCH 137/400] Update gregorian_calendar.hpp --- .../simplydt/calendar/gregorian/gregorian_calendar.hpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp index b4fc22e..aa5a55a 100644 --- a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp @@ -204,10 +204,12 @@ struct GregorianCalendar final : // Tomohiko Sakamoto's Algorithm const uint8_t monthKey[12] = {0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4}; - const YearInt_t modYear = year - (month < 3); // Extra days from leap year - // only affect March and later + const YearInt_t modYear = year - (month < 3); // Extra days from leap year + // only affect March and later const int index = - ((modYear + modYear / 4 - modYear / 100 + modYear / 400 + monthKey[month - 1] + day) % 7); + ((modYear + modYear / 4 - modYear / 100 + modYear / 400 + monthKey[month - 1] + day + ) % + 7); if (index > std::numeric_limits::max() || index > 7) return INVALID_DOW_INDEX; @@ -238,7 +240,7 @@ struct GregorianCalendar final : return 0; // Unsupported or invalid const uint8_t firstOfMonthDowIndex = getDayOfWeekIndex(year, month, 1); - const uint8_t monthCells = firstOfMonthDowIndex + monthTotalDays; + const uint8_t monthCells = firstOfMonthDowIndex + monthTotalDays; return (monthCells + 6) / 7; } From dca27e23097392fb8bc7236119c679a112a1f080 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 13 Aug 2025 18:19:03 -0400 Subject: [PATCH 138/400] Update gregorian_defs.hpp --- .../calendar/gregorian/gregorian_defs.hpp | 69 ++++++++++++------- 1 file changed, 45 insertions(+), 24 deletions(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_defs.hpp b/include/simplydt/calendar/gregorian/gregorian_defs.hpp index 7eb3fb6..c3cc143 100644 --- a/include/simplydt/calendar/gregorian/gregorian_defs.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_defs.hpp @@ -75,6 +75,42 @@ constexpr Year_Type YEAR_MAXIMUM = 2'038; // TODO: Find real limitation... */ constexpr int ABBREV_LENGTH = 3; +/*! + * @brief + * Minimum day of Gregorian month. + */ +constexpr uint8_t MIN_DAY_OF_MONTH = 1; + +/*! + * @brief + * Maximum day of Gregorian month. + */ +constexpr uint8_t MAX_DAY_OF_MONTH = 31; + +/*! + * @brief + * Minimum month of Gregorian year. + */ +constexpr uint8_t MIN_MONTH_OF_YEAR = 1; + +/*! + * @brief + * Maximum month of Gregorian year. + */ +constexpr uint8_t MAX_MONTH_OF_YEAR = 12; + +/*! + * @brief + * Total number of days in one calendar week. + */ +constexpr uint8_t DAYS_IN_WEEK = 7; + +/*! + * @brief + * Total number of months in one calendar year. + */ +constexpr uint8_t MONTHS_IN_YEAR = 12; + /*! * @brief * Enumeration of Gregorian calendar months. @@ -112,7 +148,7 @@ enum DayOfWeek : uint8_t { * @brief * Array of Gregorian calendar month name literals. */ -constexpr std::array Months = { +constexpr std::array Months = { "January", ///< Index 0 "February", ///< Index 1 "March", ///< Index 2 @@ -132,7 +168,7 @@ constexpr std::array Months = { * Array of abbreviated Gregorian calendar month * names. */ -constexpr std::array MonthAbbrevs = { +constexpr std::array MonthAbbrevs = { std::string_view(Months[JANUARY], ABBREV_LENGTH), ///< Jan std::string_view(Months[FEBRUARY], ABBREV_LENGTH), ///< Feb std::string_view(Months[MARCH], ABBREV_LENGTH), ///< Mar @@ -151,7 +187,7 @@ constexpr std::array MonthAbbrevs = { * @brief * Array of Gregorian calendar day-of-week literals. */ -constexpr std::array DaysOfWeek = { +constexpr std::array DaysOfWeek = { "Sunday", ///< Index 0 "Monday", ///< Index 1 "Tuesday", ///< Index 2 @@ -166,7 +202,7 @@ constexpr std::array DaysOfWeek = { * Array of abbreviated Gregorian calendar day-of-week * literals. */ -constexpr std::array DayOfWeekAbbrevs = { +constexpr std::array DayOfWeekAbbrevs = { std::string_view(DaysOfWeek[SUNDAY], ABBREV_LENGTH), ///< Sun std::string_view(DaysOfWeek[MONDAY], ABBREV_LENGTH), ///< Mon std::string_view(DaysOfWeek[TUESDAY], ABBREV_LENGTH), ///< Tue @@ -188,27 +224,12 @@ constexpr uint8_t INVALID_DOW_INDEX = 255; /*! * @brief - * Minimum day of Gregorian month. - */ -constexpr uint8_t MIN_DAY_OF_MONTH = 1; - -/*! - * @brief - * Maximum day of Gregorian month. - */ -constexpr uint8_t MAX_DAY_OF_MONTH = 31; - -/*! - * @brief - * Minimum month of Gregorian year. - */ -constexpr uint8_t MIN_MONTH_OF_YEAR = 1; - -/*! - * @brief - * Maximum month of Gregorian year. + * Month key table for Tomohiko Sakamoto's algorithm. + * + * @details + * TODO: INCOMPLETE COMMENT!!! */ -constexpr uint8_t MAX_MONTH_OF_YEAR = 12; +static constexpr uint8_t monthKey[12] = {0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4}; } // namespace simplydt::gregorian From 6543629806198af9a6a281bf45599182b88f1d12 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 13 Aug 2025 18:19:11 -0400 Subject: [PATCH 139/400] Update gregorian_calendar.hpp --- .../calendar/gregorian/gregorian_calendar.hpp | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp index aa5a55a..ab80a3f 100644 --- a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp @@ -18,7 +18,6 @@ #include "simplydt/calendar/abstract_calendar.hpp" #include "simplydt/calendar/concepts/calendar_contract.hpp" #include "simplydt/calendar/gregorian/gregorian_date.hpp" -#include namespace simplydt::gregorian { @@ -143,7 +142,7 @@ struct GregorianCalendar final : uint16_t totalDays = 0; - for (uint8_t month = 1; month <= 12; month++) + for (uint8_t month = MIN_MONTH_OF_YEAR; month <= MAX_MONTH_OF_YEAR; month++) totalDays += getDaysInMonth(year, month); return totalDays; @@ -203,15 +202,15 @@ struct GregorianCalendar final : return INVALID_DOW_INDEX; // Tomohiko Sakamoto's Algorithm - const uint8_t monthKey[12] = {0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4}; - const YearInt_t modYear = year - (month < 3); // Extra days from leap year - // only affect March and later + const YearInt_t modYear = year - (month < 3); // Extra days from leap year + // only affect March and later + const uint8_t monthIndex = month - 1; const int index = - ((modYear + modYear / 4 - modYear / 100 + modYear / 400 + monthKey[month - 1] + day - ) % - 7); + ((modYear + modYear / 4 - modYear / 100 + modYear / 400 + monthKey[monthIndex] + + day) % + DAYS_IN_WEEK); - if (index > std::numeric_limits::max() || index > 7) + if (index >= DAYS_IN_WEEK) return INVALID_DOW_INDEX; return static_cast(index); @@ -241,7 +240,7 @@ struct GregorianCalendar final : const uint8_t firstOfMonthDowIndex = getDayOfWeekIndex(year, month, 1); const uint8_t monthCells = firstOfMonthDowIndex + monthTotalDays; - return (monthCells + 6) / 7; + return (monthCells + 6) / DAYS_IN_WEEK; } /*! From 7a549396bbf88c6455c316190ddb63f668ecdab0 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 13 Aug 2025 18:21:15 -0400 Subject: [PATCH 140/400] Update gregorian_defs.hpp --- include/simplydt/calendar/gregorian/gregorian_defs.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_defs.hpp b/include/simplydt/calendar/gregorian/gregorian_defs.hpp index c3cc143..dffb5ce 100644 --- a/include/simplydt/calendar/gregorian/gregorian_defs.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_defs.hpp @@ -229,7 +229,7 @@ constexpr uint8_t INVALID_DOW_INDEX = 255; * @details * TODO: INCOMPLETE COMMENT!!! */ -static constexpr uint8_t monthKey[12] = {0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4}; +static constexpr uint8_t MONTH_KEY[12] = {0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4}; } // namespace simplydt::gregorian From 90475c8e35b067bbd03f092dedfae5ec44177d72 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 13 Aug 2025 18:21:20 -0400 Subject: [PATCH 141/400] Update gregorian_calendar.hpp --- include/simplydt/calendar/gregorian/gregorian_calendar.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp index ab80a3f..239017c 100644 --- a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp @@ -206,7 +206,7 @@ struct GregorianCalendar final : // only affect March and later const uint8_t monthIndex = month - 1; const int index = - ((modYear + modYear / 4 - modYear / 100 + modYear / 400 + monthKey[monthIndex] + + ((modYear + modYear / 4 - modYear / 100 + modYear / 400 + MONTH_KEY[monthIndex] + day) % DAYS_IN_WEEK); From 5cb412951afd54531883c59835371fe260d54013 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 13 Aug 2025 20:47:44 -0400 Subject: [PATCH 142/400] Update gregorian_defs.hpp --- .../calendar/gregorian/gregorian_defs.hpp | 23 +++++++++++++++---- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_defs.hpp b/include/simplydt/calendar/gregorian/gregorian_defs.hpp index dffb5ce..d27e67f 100644 --- a/include/simplydt/calendar/gregorian/gregorian_defs.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_defs.hpp @@ -148,7 +148,7 @@ enum DayOfWeek : uint8_t { * @brief * Array of Gregorian calendar month name literals. */ -constexpr std::array Months = { +inline constexpr std::array Months = { "January", ///< Index 0 "February", ///< Index 1 "March", ///< Index 2 @@ -168,7 +168,7 @@ constexpr std::array Months = { * Array of abbreviated Gregorian calendar month * names. */ -constexpr std::array MonthAbbrevs = { +inline constexpr std::array MonthAbbrevs = { std::string_view(Months[JANUARY], ABBREV_LENGTH), ///< Jan std::string_view(Months[FEBRUARY], ABBREV_LENGTH), ///< Feb std::string_view(Months[MARCH], ABBREV_LENGTH), ///< Mar @@ -187,7 +187,7 @@ constexpr std::array MonthAbbrevs = { * @brief * Array of Gregorian calendar day-of-week literals. */ -constexpr std::array DaysOfWeek = { +inline constexpr std::array DaysOfWeek = { "Sunday", ///< Index 0 "Monday", ///< Index 1 "Tuesday", ///< Index 2 @@ -202,7 +202,7 @@ constexpr std::array DaysOfWeek = { * Array of abbreviated Gregorian calendar day-of-week * literals. */ -constexpr std::array DayOfWeekAbbrevs = { +inline constexpr std::array DayOfWeekAbbrevs = { std::string_view(DaysOfWeek[SUNDAY], ABBREV_LENGTH), ///< Sun std::string_view(DaysOfWeek[MONDAY], ABBREV_LENGTH), ///< Mon std::string_view(DaysOfWeek[TUESDAY], ABBREV_LENGTH), ///< Tue @@ -222,6 +222,19 @@ constexpr std::array DayOfWeekAbbrevs = { */ constexpr uint8_t INVALID_DOW_INDEX = 255; +} // namespace simplydt::gregorian + +/*! + * @brief + * Tomohiko Sakamoto's Algorithm. + * + * @details + * Algorithm for computing day-of-week indecies of + * Gregorian calendar dates by Tomohiko Sakamoto. + */ +namespace simplydt::sakamoto +{ + /*! * @brief * Month key table for Tomohiko Sakamoto's algorithm. @@ -231,6 +244,6 @@ constexpr uint8_t INVALID_DOW_INDEX = 255; */ static constexpr uint8_t MONTH_KEY[12] = {0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4}; -} // namespace simplydt::gregorian +} // namespace simplydt::sakamoto #endif // SIMPLYDT_LIB_GREGORIAN_CALENDAR_DEFINITIONS_H_ From d3ce9cd34898e89fd4643c721401c499a87ec552 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 13 Aug 2025 20:48:06 -0400 Subject: [PATCH 143/400] Update calendar_contract.hpp --- include/simplydt/calendar/concepts/calendar_contract.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/simplydt/calendar/concepts/calendar_contract.hpp b/include/simplydt/calendar/concepts/calendar_contract.hpp index ce54b91..e0050c7 100644 --- a/include/simplydt/calendar/concepts/calendar_contract.hpp +++ b/include/simplydt/calendar/concepts/calendar_contract.hpp @@ -33,7 +33,7 @@ concept contract_abiding_calendar = requires { requires calendar::has_characteristic_query_members; requires calendar::has_calendar_structure_methods; requires calendar::has_date_validation_methods; - // requires calendar::has_date_conversion_methods; + requires calendar::has_date_conversion_methods; }; #ifndef SIMPLYDT_ENFORCE_CALENDAR_CONTRACT From 426136f414757f8ed8251c73bbc3d9b10dabf832 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 13 Aug 2025 20:48:20 -0400 Subject: [PATCH 144/400] Update abstract_calendar.hpp --- .../simplydt/calendar/abstract_calendar.hpp | 36 +++++++------------ 1 file changed, 12 insertions(+), 24 deletions(-) diff --git a/include/simplydt/calendar/abstract_calendar.hpp b/include/simplydt/calendar/abstract_calendar.hpp index 852491d..09a43ee 100644 --- a/include/simplydt/calendar/abstract_calendar.hpp +++ b/include/simplydt/calendar/abstract_calendar.hpp @@ -43,45 +43,33 @@ struct CalendricalSystem { * @brief * TODO: INCOMPLETE COMMENT!!! */ - [[nodiscard]] static constexpr uint8_t getDaysInMonth(const Date& date) noexcept + [[nodiscard]] static constexpr const char* getMonthLiteral(const uint8_t month) noexcept { - return Calendar::getDaysInMonth(date.year(), date.month()); + if (!Calendar::isValidMonth(month)) + return INVALID_LITERAL; + // TODO: INCOMPLETE!!! + // Use template passed constexpr array somehow... + return "temp"; } /*! * @brief * TODO: INCOMPLETE COMMENT!!! */ - [[nodiscard]] static constexpr uint16_t getDaysInYear(const Date& date) noexcept + [[nodiscard]] static constexpr const char* getMonthLiteral(const Month month) noexcept { - return Calendar::getDaysInYear(date.year()); + // TODO: INCOMPLETE!!! + // Use template passed constexpr array somehow... + return "temp"; } /*! * @brief * TODO: INCOMPLETE COMMENT!!! */ - [[nodiscard]] static constexpr bool isValidDate(const Date& date) noexcept + [[nodiscard]] static constexpr const char* getMonthLiteral(const Date date) noexcept { - return Calendar::isValidDate(date.year(), date.month(), date.day()); - } - - /*! - * @brief - * TODO: INCOMPLETE COMMENT!!! - */ - [[nodiscard]] static constexpr uint8_t getDayOfWeekIndex(const Date& date) noexcept - { - return Calendar::getDayOfWeekIndex(date.year(), date.month(), date.day()); - } - - /*! - * @brief - * TODO: INCOMPLETE COMMENT!!! - */ - [[nodiscard]] static constexpr uint8_t getWeeksInMonth(const Date& date) noexcept - { - return Calendar::getWeeksInMonth(date.year(), date.month()); + return date.monthLiteral(); } private: From 700f81a3a0b89fe5b2aca307a27fdb6855c7879b Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 13 Aug 2025 20:48:48 -0400 Subject: [PATCH 145/400] Update gregorian_calendar.hpp --- .../calendar/gregorian/gregorian_calendar.hpp | 52 ++++++++++++++++--- 1 file changed, 45 insertions(+), 7 deletions(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp index 239017c..51461a0 100644 --- a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp @@ -52,6 +52,12 @@ struct GregorianCalendar final : */ static constexpr bool isLunisolarCalendar = false; + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + */ + static constexpr inline const std::array& MONTH_NAMES = Months; + /*! * @brief * Evaluate support of year value. @@ -128,7 +134,7 @@ struct GregorianCalendar final : */ [[nodiscard]] static constexpr uint8_t getDaysInMonth(const Date date) noexcept { - return Base::getDaysInMonth(date); + return getDaysInMonth(date.year(), date.month()); } /*! @@ -154,7 +160,7 @@ struct GregorianCalendar final : */ [[nodiscard]] static constexpr uint16_t getDaysInYear(const Date date) noexcept { - return Base::getDaysInYear(date); + return getDaysInYear(date.year()); } /*! @@ -187,7 +193,7 @@ struct GregorianCalendar final : */ [[nodiscard]] static constexpr bool isValidDate(const Date date) noexcept { - return Base::isValidDate(date); + return isValidDate(date.year(), date.month(), date.day()); } /*! @@ -206,8 +212,8 @@ struct GregorianCalendar final : // only affect March and later const uint8_t monthIndex = month - 1; const int index = - ((modYear + modYear / 4 - modYear / 100 + modYear / 400 + MONTH_KEY[monthIndex] + - day) % + ((modYear + modYear / 4 - modYear / 100 + modYear / 400 + + sakamoto::MONTH_KEY[monthIndex] + day) % DAYS_IN_WEEK); if (index >= DAYS_IN_WEEK) @@ -222,7 +228,7 @@ struct GregorianCalendar final : */ [[nodiscard]] static constexpr uint8_t getDayOfWeekIndex(const Date date) noexcept { - return Base::getDayOfWeekIndex(date); + return getDayOfWeekIndex(date.year(), date.month(), date.day()); } /*! @@ -249,7 +255,39 @@ struct GregorianCalendar final : */ [[nodiscard]] static constexpr uint8_t getWeeksInMonth(const Date date) noexcept { - return Base::getWeeksInMonth(date); + return getWeeksInMonth(date.year(), date.month()); + } + + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + */ + [[nodiscard]] static constexpr stl::UnixTimestamp toUnixTimestamp( + const YearInt_t year, const uint8_t month, const uint8_t day + ) noexcept + { + // TODO: INCOMPLETE!!! + return 0; + } + + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + */ + [[nodiscard]] static constexpr Date fromUnixTimestamp(const stl::UnixTimestamp& timestamp) noexcept + { + // TODO: INCOMPLETE!!! + return Date{}; + } + + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + */ + [[nodiscard]] static Date fromTimePoint(const stl::SystemTimePoint& time_point) noexcept + { + // TODO: INCOMPLETE!!! + return Date{}; } private: From 22d1c6356b8e820a482fc0df1c18ce78aa0d927e Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 13 Aug 2025 20:48:52 -0400 Subject: [PATCH 146/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index 484352d..326f084 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -17,9 +17,15 @@ int main(int argc, char* argv[]) ProjectInfoOut(); //\\// - simplydt::gregorian::GregorianDate demo{2'025, 8, 11}; + using GregorianDate = simplydt::gregorian::GregorianDate; + using GregorianCalendar = simplydt::gregorian::GregorianCalendar; - std::cout << demo << '\n'; + constexpr GregorianDate demo{2'025, 8, 13}; + std::cout << "\nDemo date: " << demo << '\n'; + + constexpr bool isValid = GregorianCalendar::isValidDate(demo); + constexpr uint8_t noWeeks = GregorianCalendar::getWeeksInMonth(demo); + constexpr const char* month = GregorianCalendar::getMonthLiteral(demo); // std::cout << "\n\n\t[ Complete ]" << std::endl; From 372c9d3bfe5ca6deff5a33ae691b0bc714ea0df4 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 13 Aug 2025 21:15:34 -0400 Subject: [PATCH 147/400] Update gregorian_defs.hpp --- include/simplydt/calendar/gregorian/gregorian_defs.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_defs.hpp b/include/simplydt/calendar/gregorian/gregorian_defs.hpp index d27e67f..80227f7 100644 --- a/include/simplydt/calendar/gregorian/gregorian_defs.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_defs.hpp @@ -227,7 +227,7 @@ constexpr uint8_t INVALID_DOW_INDEX = 255; /*! * @brief * Tomohiko Sakamoto's Algorithm. - * + * * @details * Algorithm for computing day-of-week indecies of * Gregorian calendar dates by Tomohiko Sakamoto. From a51ac132a298d841f43bc8d07ea58070e6c5d8c6 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 13 Aug 2025 21:16:08 -0400 Subject: [PATCH 148/400] Update calendar_concepts.hpp --- .../calendar/concepts/calendar_concepts.hpp | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/include/simplydt/calendar/concepts/calendar_concepts.hpp b/include/simplydt/calendar/concepts/calendar_concepts.hpp index fee5ee9..0373056 100644 --- a/include/simplydt/calendar/concepts/calendar_concepts.hpp +++ b/include/simplydt/calendar/concepts/calendar_concepts.hpp @@ -18,6 +18,7 @@ #include "simplydt/calendar/concepts/date_concepts.hpp" #include "simplydt/calendar/type_traits/calendar_traits.hpp" #include "simplydt/common/calendar_defs.hpp" +#include "simplydt/common/stl_chrono_defs.hpp" #include /*! @@ -45,6 +46,21 @@ concept has_characteristic_query_members = requires { { Calendar_Impl::isLunisolarCalendar } -> std::same_as; }; +template +concept has_calendar_name_arrays = requires { + { + Calendar_Impl::MONTH_NAMES + } -> std::same_as>>&>; + + { + Calendar_Impl::DOW_NAMES + } -> std::same_as>>&>; +}; + template concept has_date_validation_methods = requires { { @@ -90,6 +106,25 @@ concept has_calendar_structure_methods = requires { } -> std::same_as; }; +template +concept has_date_conversion_methods = requires { + { + Calendar_Impl::toUnixTimestamp( + std::declval(), + std::declval(), + std::declval() + ) + } -> std::same_as; + + { + Calendar_Impl::fromUnixTimestamp(std::declval()) + } -> std::same_as; + + { + Calendar_Impl::fromTimePoint(std::declval()) + } -> std::same_as; +}; + } // namespace simplydt::concepts::calendar #endif // SIMPLYDT_LIB_CALENDAR_CONCEPTS_H_ From 9f7f2dd8b5a5a90418572773b8481b793adf0322 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 13 Aug 2025 21:16:15 -0400 Subject: [PATCH 149/400] Update calendar_contract.hpp --- include/simplydt/calendar/concepts/calendar_contract.hpp | 1 + 1 file changed, 1 insertion(+) diff --git a/include/simplydt/calendar/concepts/calendar_contract.hpp b/include/simplydt/calendar/concepts/calendar_contract.hpp index e0050c7..b1764f3 100644 --- a/include/simplydt/calendar/concepts/calendar_contract.hpp +++ b/include/simplydt/calendar/concepts/calendar_contract.hpp @@ -31,6 +31,7 @@ concept contract_abiding_calendar = requires { requires calendar::has_contextual_nested_types; requires contract_abiding_date; requires calendar::has_characteristic_query_members; + requires calendar::has_calendar_name_arrays; requires calendar::has_calendar_structure_methods; requires calendar::has_date_validation_methods; requires calendar::has_date_conversion_methods; From b023882fef9c443bbe80a003b060b9fed7509304 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 13 Aug 2025 21:16:53 -0400 Subject: [PATCH 150/400] Update abstract_calendar.hpp --- include/simplydt/calendar/abstract_calendar.hpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/include/simplydt/calendar/abstract_calendar.hpp b/include/simplydt/calendar/abstract_calendar.hpp index 09a43ee..73252fa 100644 --- a/include/simplydt/calendar/abstract_calendar.hpp +++ b/include/simplydt/calendar/abstract_calendar.hpp @@ -47,9 +47,9 @@ struct CalendricalSystem { { if (!Calendar::isValidMonth(month)) return INVALID_LITERAL; - // TODO: INCOMPLETE!!! - // Use template passed constexpr array somehow... - return "temp"; + + const uint8_t monthIndex = month - 1; + return Calendar::MONTH_NAMES[monthIndex]; } /*! @@ -58,9 +58,12 @@ struct CalendricalSystem { */ [[nodiscard]] static constexpr const char* getMonthLiteral(const Month month) noexcept { - // TODO: INCOMPLETE!!! - // Use template passed constexpr array somehow... - return "temp"; + const uint8_t monthIndex = static_cast(month); + + if (!Calendar::isValidMonth(monthIndex + 1)) + return INVALID_LITERAL; + + return Calendar::MONTH_NAMES[monthIndex]; } /*! From 9c059c965c8cbb7d77fa1aa2ac050625052c7285 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 13 Aug 2025 21:17:13 -0400 Subject: [PATCH 151/400] Update gregorian_calendar.hpp --- .../calendar/gregorian/gregorian_calendar.hpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp index 51461a0..fbd3168 100644 --- a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp @@ -56,7 +56,15 @@ struct GregorianCalendar final : * @brief * TODO: INCOMPLETE COMMENT!!! */ - static constexpr inline const std::array& MONTH_NAMES = Months; + static constexpr inline const std::array& MONTH_NAMES = + Months; + + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + */ + static constexpr inline const std::array& DOW_NAMES = + DaysOfWeek; /*! * @brief @@ -274,7 +282,8 @@ struct GregorianCalendar final : * @brief * TODO: INCOMPLETE COMMENT!!! */ - [[nodiscard]] static constexpr Date fromUnixTimestamp(const stl::UnixTimestamp& timestamp) noexcept + [[nodiscard]] static constexpr Date fromUnixTimestamp(const stl::UnixTimestamp& timestamp + ) noexcept { // TODO: INCOMPLETE!!! return Date{}; From 4c1636f7d6f1ec29df251af4366b99d69fefc4ea Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 13 Aug 2025 21:17:29 -0400 Subject: [PATCH 152/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index 326f084..48aff48 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -23,8 +23,8 @@ int main(int argc, char* argv[]) constexpr GregorianDate demo{2'025, 8, 13}; std::cout << "\nDemo date: " << demo << '\n'; - constexpr bool isValid = GregorianCalendar::isValidDate(demo); - constexpr uint8_t noWeeks = GregorianCalendar::getWeeksInMonth(demo); + constexpr bool isValid = GregorianCalendar::isValidDate(demo); + constexpr uint8_t noWeeks = GregorianCalendar::getWeeksInMonth(demo); constexpr const char* month = GregorianCalendar::getMonthLiteral(demo); // From c3d8b8f6a5c6d31f947eb5625cd563bb2ceefd81 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 13 Aug 2025 21:38:42 -0400 Subject: [PATCH 153/400] Update calendar_concepts.hpp --- .../calendar/concepts/calendar_concepts.hpp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/include/simplydt/calendar/concepts/calendar_concepts.hpp b/include/simplydt/calendar/concepts/calendar_concepts.hpp index 0373056..b9f32c6 100644 --- a/include/simplydt/calendar/concepts/calendar_concepts.hpp +++ b/include/simplydt/calendar/concepts/calendar_concepts.hpp @@ -55,10 +55,22 @@ concept has_calendar_name_arrays = requires { std::tuple_size_v>>&>; { - Calendar_Impl::DOW_NAMES + Calendar_Impl::MONTH_ABBREVS + } -> std::same_as>>&>; + + { + Calendar_Impl::DAY_OF_WEEK_NAMES } -> std::same_as>>&>; + std::tuple_size_v>>&>; + + { + Calendar_Impl::DAY_OF_WEEK_ABBREVS + } -> std::same_as>>&>; }; template From 74e0d0b4448330b8d941ce72fb7c42577e4f576a Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 13 Aug 2025 21:38:57 -0400 Subject: [PATCH 154/400] Update abstract_calendar.hpp --- include/simplydt/calendar/abstract_calendar.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/simplydt/calendar/abstract_calendar.hpp b/include/simplydt/calendar/abstract_calendar.hpp index 73252fa..b42b466 100644 --- a/include/simplydt/calendar/abstract_calendar.hpp +++ b/include/simplydt/calendar/abstract_calendar.hpp @@ -47,7 +47,7 @@ struct CalendricalSystem { { if (!Calendar::isValidMonth(month)) return INVALID_LITERAL; - + const uint8_t monthIndex = month - 1; return Calendar::MONTH_NAMES[monthIndex]; } From 5a15318a7991af214631cd25d10e07eb89626272 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 13 Aug 2025 21:39:06 -0400 Subject: [PATCH 155/400] Update gregorian_calendar.hpp --- .../calendar/gregorian/gregorian_calendar.hpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp index fbd3168..ec11254 100644 --- a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp @@ -63,9 +63,23 @@ struct GregorianCalendar final : * @brief * TODO: INCOMPLETE COMMENT!!! */ - static constexpr inline const std::array& DOW_NAMES = + static constexpr inline const std::array& MONTH_ABBREVS = + MonthAbbrevs; + + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + */ + static constexpr inline const std::array& DAY_OF_WEEK_NAMES = DaysOfWeek; + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + */ + static constexpr inline const std::array& + DAY_OF_WEEK_ABBREVS = DayOfWeekAbbrevs; + /*! * @brief * Evaluate support of year value. From fed4a12828059ae4bc958dc4d39974c6b442d654 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Thu, 14 Aug 2025 00:49:51 -0400 Subject: [PATCH 156/400] Update calendar_concepts.hpp --- include/simplydt/calendar/concepts/calendar_concepts.hpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/include/simplydt/calendar/concepts/calendar_concepts.hpp b/include/simplydt/calendar/concepts/calendar_concepts.hpp index b9f32c6..a6a8088 100644 --- a/include/simplydt/calendar/concepts/calendar_concepts.hpp +++ b/include/simplydt/calendar/concepts/calendar_concepts.hpp @@ -81,6 +81,7 @@ concept has_date_validation_methods = requires { { Calendar_Impl::isValidMonth(std::declval()) } -> std::same_as; { Calendar_Impl::isValidDay(std::declval()) } -> std::same_as; + { Calendar_Impl::isValidDOWIndex(std::declval()) } -> std::same_as; { Calendar_Impl::isValidDate( @@ -89,6 +90,10 @@ concept has_date_validation_methods = requires { std::declval() ) } -> std::same_as; + + { + Calendar_Impl::isValidDate(std::declval()) + } -> std::same_as; }; template From 21b4c3beb3b06f41ac1b0485852dc3e85410797a Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Thu, 14 Aug 2025 00:50:09 -0400 Subject: [PATCH 157/400] Update abstract_calendar.hpp --- .../simplydt/calendar/abstract_calendar.hpp | 127 +++++++++++++++++- 1 file changed, 124 insertions(+), 3 deletions(-) diff --git a/include/simplydt/calendar/abstract_calendar.hpp b/include/simplydt/calendar/abstract_calendar.hpp index b42b466..a7db03d 100644 --- a/include/simplydt/calendar/abstract_calendar.hpp +++ b/include/simplydt/calendar/abstract_calendar.hpp @@ -43,7 +43,7 @@ struct CalendricalSystem { * @brief * TODO: INCOMPLETE COMMENT!!! */ - [[nodiscard]] static constexpr const char* getMonthLiteral(const uint8_t month) noexcept + [[nodiscard]] static constexpr const char* getMonthName(const uint8_t month) noexcept { if (!Calendar::isValidMonth(month)) return INVALID_LITERAL; @@ -56,7 +56,7 @@ struct CalendricalSystem { * @brief * TODO: INCOMPLETE COMMENT!!! */ - [[nodiscard]] static constexpr const char* getMonthLiteral(const Month month) noexcept + [[nodiscard]] static constexpr const char* getMonthName(const Month month) noexcept { const uint8_t monthIndex = static_cast(month); @@ -70,11 +70,132 @@ struct CalendricalSystem { * @brief * TODO: INCOMPLETE COMMENT!!! */ - [[nodiscard]] static constexpr const char* getMonthLiteral(const Date date) noexcept + [[nodiscard]] static constexpr const char* getMonthName(const Date date) noexcept { return date.monthLiteral(); } + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + */ + [[nodiscard]] static constexpr std::string getMonthAbbrev(const uint8_t month) noexcept + { + if (!Calendar::isValidMonth(month)) + return INVALID_LITERAL; + + const uint8_t monthIndex = month - 1; + const std::string abbreviation{ Calendar::MONTH_ABBREVS[monthIndex] }; + return abbreviation; + } + + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + */ + [[nodiscard]] static constexpr std::string getMonthAbbrev(const Month month) noexcept + { + const uint8_t monthIndex = static_cast(month); + + if (!Calendar::isValidMonth(monthIndex + 1)) + return INVALID_LITERAL; + + const std::string abbreviation{ Calendar::MONTH_ABBREVS[monthIndex] }; + return abbreviation; + } + + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + */ + [[nodiscard]] static constexpr std::string getMonthAbbrev(const Date date) noexcept + { + return date.monthAbbreviation(); + } + + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + */ + [[nodiscard]] static constexpr Month getMonthEnumRepr(const uint8_t month) noexcept + { + if (!Calendar::isValidMonth(month)) + return static_cast(0); // TODO: Crap... + + const uint8_t monthIndex = month - 1; + return static_cast(monthIndex); + } + + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + */ + [[nodiscard]] static constexpr Month getMonthEnumRepr(const Date date) noexcept + { + return static_cast(date.month() - 1); + } + + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + */ + [[nodiscard]] static constexpr const char* getDayOfWeekName(const Date date) noexcept + { + if (!Calendar::isValidDate(date)) + return INVALID_LITERAL; + + const uint8_t dowIndex = Calendar::getDayOfWeekIndex(date); + return Calendar::DAY_OF_WEEK_NAMES[dowIndex]; + } + + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + */ + [[nodiscard]] static constexpr const char* getDayOfWeekName(const DayOfWeek dow) noexcept + { + const uint8_t dowIndex = static_cast(dow); + + if (!Calendar::isValidDOWIndex(dowIndex)) + return INVALID_LITERAL; + + return Calendar::DAY_OF_WEEK_NAMES[dowIndex]; + } + + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + */ + [[nodiscard]] static constexpr std::string getDayOfWeekAbbrev(const Date date) noexcept + { + if (!isValidDate(date)) + return INVALID_LITERAL; + + const uint8_t dowIndex = Calendar::getDayOfWeekIndex(date); + const std::string abbreviation{ Calendar::DAY_OF_WEEK_ABBREVS[dowIndex] }; + return abbreviation; + } + + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + */ + [[nodiscard]] static constexpr std::string getDayOfWeekAbbrev(const DayOfWeek dow) noexcept + { + // TODO: INCOMPLETE!!! + return "temp"; + } + + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + */ + [[nodiscard]] static constexpr DayOfWeek getDayOfWeekEnumRepr(const Date date) noexcept + { + // TODO: INCOMPLETE!!! + return static_cast(0); + } + private: CalendricalSystem() = delete; ~CalendricalSystem() = delete; From 75acac5ad55eaf1f5f1a4d848afd9bd691180c38 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Thu, 14 Aug 2025 00:50:15 -0400 Subject: [PATCH 158/400] Update gregorian_calendar.hpp --- .../simplydt/calendar/gregorian/gregorian_calendar.hpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp index ec11254..6073d9d 100644 --- a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp @@ -253,6 +253,15 @@ struct GregorianCalendar final : return getDayOfWeekIndex(date.year(), date.month(), date.day()); } + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + */ + [[nodiscard]] static constexpr bool isValidDOWIndex(const uint8_t dow) noexcept + { + return dow > 0 && dow < DAYS_IN_WEEK; + } + /*! * @brief * TODO: INCOMPLETE COMMENT!!! From 42f0723eed03bf6e9c75e23693677bcc308ce5b4 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Thu, 14 Aug 2025 00:50:23 -0400 Subject: [PATCH 159/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index 48aff48..a8f09e7 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -19,13 +19,16 @@ int main(int argc, char* argv[]) //\\// using GregorianDate = simplydt::gregorian::GregorianDate; using GregorianCalendar = simplydt::gregorian::GregorianCalendar; + using Month = simplydt::gregorian::Month; constexpr GregorianDate demo{2'025, 8, 13}; std::cout << "\nDemo date: " << demo << '\n'; constexpr bool isValid = GregorianCalendar::isValidDate(demo); constexpr uint8_t noWeeks = GregorianCalendar::getWeeksInMonth(demo); - constexpr const char* month = GregorianCalendar::getMonthLiteral(demo); + constexpr const char* month = GregorianCalendar::getMonthName(demo); + constexpr simplydt::gregorian::Month mRepr = GregorianCalendar::getMonthEnumRepr(demo); + constexpr const char* dowName = GregorianCalendar::getDayOfWeekName(demo); // std::cout << "\n\n\t[ Complete ]" << std::endl; From e3dc83594ee81135b5125a191afa745d2340b945 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Thu, 14 Aug 2025 01:28:08 -0400 Subject: [PATCH 160/400] Codebase Format --- .../simplydt/calendar/abstract_calendar.hpp | 34 ++++++++++++------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/include/simplydt/calendar/abstract_calendar.hpp b/include/simplydt/calendar/abstract_calendar.hpp index a7db03d..97cf89f 100644 --- a/include/simplydt/calendar/abstract_calendar.hpp +++ b/include/simplydt/calendar/abstract_calendar.hpp @@ -79,13 +79,13 @@ struct CalendricalSystem { * @brief * TODO: INCOMPLETE COMMENT!!! */ - [[nodiscard]] static constexpr std::string getMonthAbbrev(const uint8_t month) noexcept + [[nodiscard]] static std::string getMonthAbbrev(const uint8_t month) noexcept { if (!Calendar::isValidMonth(month)) return INVALID_LITERAL; const uint8_t monthIndex = month - 1; - const std::string abbreviation{ Calendar::MONTH_ABBREVS[monthIndex] }; + const std::string abbreviation{Calendar::MONTH_ABBREVS[monthIndex]}; return abbreviation; } @@ -93,14 +93,14 @@ struct CalendricalSystem { * @brief * TODO: INCOMPLETE COMMENT!!! */ - [[nodiscard]] static constexpr std::string getMonthAbbrev(const Month month) noexcept + [[nodiscard]] static std::string getMonthAbbrev(const Month month) noexcept { const uint8_t monthIndex = static_cast(month); if (!Calendar::isValidMonth(monthIndex + 1)) return INVALID_LITERAL; - const std::string abbreviation{ Calendar::MONTH_ABBREVS[monthIndex] }; + const std::string abbreviation{Calendar::MONTH_ABBREVS[monthIndex]}; return abbreviation; } @@ -108,7 +108,7 @@ struct CalendricalSystem { * @brief * TODO: INCOMPLETE COMMENT!!! */ - [[nodiscard]] static constexpr std::string getMonthAbbrev(const Date date) noexcept + [[nodiscard]] static std::string getMonthAbbrev(const Date date) noexcept { return date.monthAbbreviation(); } @@ -166,13 +166,13 @@ struct CalendricalSystem { * @brief * TODO: INCOMPLETE COMMENT!!! */ - [[nodiscard]] static constexpr std::string getDayOfWeekAbbrev(const Date date) noexcept + [[nodiscard]] static std::string getDayOfWeekAbbrev(const Date date) noexcept { - if (!isValidDate(date)) + if (!Calendar::isValidDate(date)) return INVALID_LITERAL; const uint8_t dowIndex = Calendar::getDayOfWeekIndex(date); - const std::string abbreviation{ Calendar::DAY_OF_WEEK_ABBREVS[dowIndex] }; + const std::string abbreviation{Calendar::DAY_OF_WEEK_ABBREVS[dowIndex]}; return abbreviation; } @@ -180,10 +180,15 @@ struct CalendricalSystem { * @brief * TODO: INCOMPLETE COMMENT!!! */ - [[nodiscard]] static constexpr std::string getDayOfWeekAbbrev(const DayOfWeek dow) noexcept + [[nodiscard]] static std::string getDayOfWeekAbbrev(const DayOfWeek dow) noexcept { - // TODO: INCOMPLETE!!! - return "temp"; + const uint8_t dowIndex = static_cast(dow); + + if (!Calendar::isValidDOWIndex(dowIndex)) + return INVALID_LITERAL; + + const std::string abbreviation{Calendar::DAY_OF_WEEK_ABBREVS[dowIndex]}; + return abbreviation; } /*! @@ -192,8 +197,11 @@ struct CalendricalSystem { */ [[nodiscard]] static constexpr DayOfWeek getDayOfWeekEnumRepr(const Date date) noexcept { - // TODO: INCOMPLETE!!! - return static_cast(0); + if (!Calendar::isValidDate(date)) + return static_cast(0); // TODO: Oh no.. another one... + + const uint8_t dowIndex = Calendar::getDayOfWeekIndex(date); + return static_cast(dowIndex); } private: From a10b1b1e71d4135edb1dfa9e7ab024f53b43c530 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Thu, 14 Aug 2025 01:28:57 -0400 Subject: [PATCH 161/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index a8f09e7..a853837 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -19,16 +19,18 @@ int main(int argc, char* argv[]) //\\// using GregorianDate = simplydt::gregorian::GregorianDate; using GregorianCalendar = simplydt::gregorian::GregorianCalendar; - using Month = simplydt::gregorian::Month; + using Month = simplydt::gregorian::Month; - constexpr GregorianDate demo{2'025, 8, 13}; + constexpr GregorianDate demo{2'025, 8, 14}; std::cout << "\nDemo date: " << demo << '\n'; - constexpr bool isValid = GregorianCalendar::isValidDate(demo); - constexpr uint8_t noWeeks = GregorianCalendar::getWeeksInMonth(demo); - constexpr const char* month = GregorianCalendar::getMonthName(demo); - constexpr simplydt::gregorian::Month mRepr = GregorianCalendar::getMonthEnumRepr(demo); - constexpr const char* dowName = GregorianCalendar::getDayOfWeekName(demo); + constexpr bool isValid = GregorianCalendar::isValidDate(demo); + constexpr uint8_t noWeeks = GregorianCalendar::getWeeksInMonth(demo); + constexpr const char* month = GregorianCalendar::getMonthName(demo); + constexpr simplydt::gregorian::Month monthRepr = GregorianCalendar::getMonthEnumRepr(demo); + constexpr const char* dowName = GregorianCalendar::getDayOfWeekName(demo); + constexpr simplydt::gregorian::DayOfWeek dowRepr = + GregorianCalendar::getDayOfWeekEnumRepr(demo); // std::cout << "\n\n\t[ Complete ]" << std::endl; From a86dec3c54c6e83191afd996b0b469f55bdf31a1 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Thu, 14 Aug 2025 02:09:58 -0400 Subject: [PATCH 162/400] Update simplydt_defs.hpp --- include/simplydt/common/simplydt_defs.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/simplydt/common/simplydt_defs.hpp b/include/simplydt/common/simplydt_defs.hpp index 71eaf67..ca8f84e 100644 --- a/include/simplydt/common/simplydt_defs.hpp +++ b/include/simplydt/common/simplydt_defs.hpp @@ -55,7 +55,7 @@ enum DatetimeComponent : uint8_t { * @brief * Invalid literal. */ -inline const char* INVALID_LITERAL = "invalid"; +constexpr const char* INVALID_LITERAL = "invalid"; } // namespace simplydt From c170525ee325423fb74a79ed6b2a0eec3a8b66d4 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Thu, 14 Aug 2025 22:03:25 -0400 Subject: [PATCH 163/400] Update gregorian_defs.hpp --- .../simplydt/calendar/gregorian/gregorian_defs.hpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/include/simplydt/calendar/gregorian/gregorian_defs.hpp b/include/simplydt/calendar/gregorian/gregorian_defs.hpp index 80227f7..12cad15 100644 --- a/include/simplydt/calendar/gregorian/gregorian_defs.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_defs.hpp @@ -64,6 +64,13 @@ constexpr Year_Type YEAR_MINIMUM = 1'601; */ constexpr Year_Type YEAR_MAXIMUM = 2'038; // TODO: Find real limitation... +/*! + * @brief + * Total number of calendar years in one Gregorian + * era. + */ +constexpr Year_Type YEARS_IN_ERA = 400; + /*! * @brief * Abbreviation length for Gregorian calendar name @@ -105,6 +112,12 @@ constexpr uint8_t MAX_MONTH_OF_YEAR = 12; */ constexpr uint8_t DAYS_IN_WEEK = 7; +/*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + */ +constexpr uint16_t DAYS_IN_YEAR_INT = 365; + /*! * @brief * Total number of months in one calendar year. From 646bb3e38277063ab87091c2789a6a395edc6c8a Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Thu, 14 Aug 2025 22:16:16 -0400 Subject: [PATCH 164/400] Update gregorian_defs.hpp --- .../simplydt/calendar/gregorian/gregorian_defs.hpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_defs.hpp b/include/simplydt/calendar/gregorian/gregorian_defs.hpp index 12cad15..978f621 100644 --- a/include/simplydt/calendar/gregorian/gregorian_defs.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_defs.hpp @@ -116,7 +116,19 @@ constexpr uint8_t DAYS_IN_WEEK = 7; * @brief * TODO: INCOMPLETE COMMENT!!! */ -constexpr uint16_t DAYS_IN_YEAR_INT = 365; +constexpr uint16_t DAYS_IN_YEAR = 365; + +/*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + */ +constexpr uint16_t DAYS_IN_LEAP_YEAR = 366; + +/*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + */ +constexpr inline float AVG_DAYS_IN_YEAR = 365.25; /*! * @brief From 58847bda290b73ee097a68333c1072cea1670bc8 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Thu, 14 Aug 2025 22:16:38 -0400 Subject: [PATCH 165/400] Update gregorian_calendar.hpp --- .../calendar/gregorian/gregorian_calendar.hpp | 51 ++++++++++++++++++- 1 file changed, 49 insertions(+), 2 deletions(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp index 6073d9d..07bdb34 100644 --- a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp @@ -95,7 +95,7 @@ struct GregorianCalendar final : */ [[nodiscard]] static constexpr bool isLeapYear(const YearInt_t year) noexcept { - return (year % 4) == 0 && (year % 100 != 0 || year % 400 == 0); + return (year % 4) == 0 && (year % 100 != 0 || year % YEARS_IN_ERA == 0); } /*! @@ -234,7 +234,7 @@ struct GregorianCalendar final : // only affect March and later const uint8_t monthIndex = month - 1; const int index = - ((modYear + modYear / 4 - modYear / 100 + modYear / 400 + + ((modYear + modYear / 4 - modYear / 100 + modYear / YEARS_IN_ERA + sakamoto::MONTH_KEY[monthIndex] + day) % DAYS_IN_WEEK); @@ -289,6 +289,53 @@ struct GregorianCalendar final : return getWeeksInMonth(date.year(), date.month()); } + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + */ + [[nodiscard]] static constexpr int32_t toDaysSinceEpoch( + YearInt_t year, uint8_t month, uint8_t day + ) noexcept + { + // Convert {year, month, day} triple into a serial count of days. + // CREDITS: Howard Hinnant [Mr. Chrono] - (Ripple Labs) + year -= month <= 2; + const int era = year / YEARS_IN_ERA; + const unsigned yoe = static_cast(year - era * YEARS_IN_ERA); + const unsigned doy = (153*(month + (month > 2 ? -3 : 9)) + 2)/5 + day-1; + const unsigned doe = yoe * DAYS_IN_YEAR + yoe/4 - yoe/100 + doy; + return static_cast(era * 146097 + static_cast(doe) - 719468); + } + + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + */ + [[nodiscard]] static constexpr int32_t toDaysSinceEpoch(const Date date) noexcept + { + return toDaysSinceEpoch(date.year(), date.month(), date.day()); + } + + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + */ + [[nodiscard]] static constexpr Date fromDaysSinceEpoch(int32_t serial_days) noexcept + { + // Convert a serial count of days into a {year, month, day} triple. + // CREDITS: Howard Hinnant [Mr. Chrono] - (Ripple Labs) + serial_days += 719468; + const int era = (serial_days >= 0 ? serial_days : serial_days - 146096) / 146097; + const unsigned doe = static_cast(serial_days - era * 146097); + const unsigned yoe = (doe - doe/1460 + doe/36524 - doe/146096) / DAYS_IN_YEAR; + const YearInt_t y = static_cast(yoe) + era * YEARS_IN_ERA; + const unsigned doy = doe - (DAYS_IN_YEAR*yoe + yoe/4 - yoe/100); + const unsigned mp = (5*doy + 2)/153; + const uint8_t d = static_cast(doy - (153*mp+2)/5 + 1); + const uint8_t m = static_cast(mp + (mp < 10 ? 3 : -9)); + return Date{ static_cast(y + (m <= 2)), m, d }; + } + /*! * @brief * TODO: INCOMPLETE COMMENT!!! From 294780155ad4e669efc35eba0cbda1d4404977fc Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Thu, 14 Aug 2025 22:16:43 -0400 Subject: [PATCH 166/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index a853837..ef55c52 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -5,7 +5,22 @@ * * ~ CLI Debug Executable Notes / TO-DO List ~ * -* -> [] N/a +* -> [] :: Simply Datetime Units :: +* -> [] using Days = int32_t +* -> [] using Hours = int32_t +* -> [] ... +* +* -> [] (Need a base class to compose int32_t) +* -> [] (Present common functionality amongst units) +* -> [] (Units interact with date/time types) +* -> [] (Units can automatically convert from one another) +* +* +* -> [] :: Month Vars :: +* -> [] constexpr uint8_t January = 1 +* -> [] constexpr uint8_t February = 2 +* -> [] constexpr uint8_t March = 3 +* -> [] ... * \* /// \\\ /// \\\ /// | END | \\\ /// \\\ /// \\\ */ @@ -20,6 +35,7 @@ int main(int argc, char* argv[]) using GregorianDate = simplydt::gregorian::GregorianDate; using GregorianCalendar = simplydt::gregorian::GregorianCalendar; using Month = simplydt::gregorian::Month; + using UnixTimestamp = simplydt::stl::UnixTimestamp; constexpr GregorianDate demo{2'025, 8, 14}; std::cout << "\nDemo date: " << demo << '\n'; @@ -31,6 +47,10 @@ int main(int argc, char* argv[]) constexpr const char* dowName = GregorianCalendar::getDayOfWeekName(demo); constexpr simplydt::gregorian::DayOfWeek dowRepr = GregorianCalendar::getDayOfWeekEnumRepr(demo); + constexpr UnixTimestamp serialDays = GregorianCalendar::toDaysSinceEpoch(demo); + constexpr GregorianDate fromSerial = GregorianCalendar::fromDaysSinceEpoch(0); + // int32_t toDaysSinceEpoch() + // Date fromDaysSinceEpoch() // std::cout << "\n\n\t[ Complete ]" << std::endl; From abd0dab43d1055cde6611ad5c3a2439f5c10a701 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Thu, 14 Aug 2025 22:18:35 -0400 Subject: [PATCH 167/400] Update calendar_concepts.hpp --- .../calendar/concepts/calendar_concepts.hpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/include/simplydt/calendar/concepts/calendar_concepts.hpp b/include/simplydt/calendar/concepts/calendar_concepts.hpp index a6a8088..828bc8b 100644 --- a/include/simplydt/calendar/concepts/calendar_concepts.hpp +++ b/include/simplydt/calendar/concepts/calendar_concepts.hpp @@ -51,24 +51,26 @@ concept has_calendar_name_arrays = requires { { Calendar_Impl::MONTH_NAMES } -> std::same_as>>&>; + const char*, + std::tuple_size_v>>&>; { Calendar_Impl::MONTH_ABBREVS } -> std::same_as>>&>; + std::string_view, + std::tuple_size_v>>&>; { Calendar_Impl::DAY_OF_WEEK_NAMES - } -> std::same_as std::same_as>>&>; { Calendar_Impl::DAY_OF_WEEK_ABBREVS - } -> std::same_as std::same_as>>&>; }; From 62822d47c877d1a5475f8ee223bf13209ffde54e Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Thu, 14 Aug 2025 22:18:39 -0400 Subject: [PATCH 168/400] Update gregorian_calendar.hpp --- .../calendar/gregorian/gregorian_calendar.hpp | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp index 07bdb34..ce7cc03 100644 --- a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp @@ -300,11 +300,11 @@ struct GregorianCalendar final : // Convert {year, month, day} triple into a serial count of days. // CREDITS: Howard Hinnant [Mr. Chrono] - (Ripple Labs) year -= month <= 2; - const int era = year / YEARS_IN_ERA; + const int era = year / YEARS_IN_ERA; const unsigned yoe = static_cast(year - era * YEARS_IN_ERA); - const unsigned doy = (153*(month + (month > 2 ? -3 : 9)) + 2)/5 + day-1; - const unsigned doe = yoe * DAYS_IN_YEAR + yoe/4 - yoe/100 + doy; - return static_cast(era * 146097 + static_cast(doe) - 719468); + const unsigned doy = (153 * (month + (month > 2 ? -3 : 9)) + 2) / 5 + day - 1; + const unsigned doe = yoe * DAYS_IN_YEAR + yoe / 4 - yoe / 100 + doy; + return static_cast(era * 146'097 + static_cast(doe) - 719'468); } /*! @@ -324,16 +324,16 @@ struct GregorianCalendar final : { // Convert a serial count of days into a {year, month, day} triple. // CREDITS: Howard Hinnant [Mr. Chrono] - (Ripple Labs) - serial_days += 719468; - const int era = (serial_days >= 0 ? serial_days : serial_days - 146096) / 146097; - const unsigned doe = static_cast(serial_days - era * 146097); - const unsigned yoe = (doe - doe/1460 + doe/36524 - doe/146096) / DAYS_IN_YEAR; - const YearInt_t y = static_cast(yoe) + era * YEARS_IN_ERA; - const unsigned doy = doe - (DAYS_IN_YEAR*yoe + yoe/4 - yoe/100); - const unsigned mp = (5*doy + 2)/153; - const uint8_t d = static_cast(doy - (153*mp+2)/5 + 1); - const uint8_t m = static_cast(mp + (mp < 10 ? 3 : -9)); - return Date{ static_cast(y + (m <= 2)), m, d }; + serial_days += 719'468; + const int era = (serial_days >= 0 ? serial_days : serial_days - 146'096) / 146'097; + const unsigned doe = static_cast(serial_days - era * 146'097); + const unsigned yoe = (doe - doe / 1'460 + doe / 36'524 - doe / 146'096) / DAYS_IN_YEAR; + const YearInt_t y = static_cast(yoe) + era * YEARS_IN_ERA; + const unsigned doy = doe - (DAYS_IN_YEAR * yoe + yoe / 4 - yoe / 100); + const unsigned mp = (5 * doy + 2) / 153; + const uint8_t d = static_cast(doy - (153 * mp + 2) / 5 + 1); + const uint8_t m = static_cast(mp + (mp < 10 ? 3 : -9)); + return Date{static_cast(y + (m <= 2)), m, d}; } /*! From 9f1f8f6ece3ab0f223e3cb44f18703aa7143e80f Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Thu, 14 Aug 2025 22:18:43 -0400 Subject: [PATCH 169/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index ef55c52..978480b 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -9,13 +9,13 @@ * -> [] using Days = int32_t * -> [] using Hours = int32_t * -> [] ... -* +* * -> [] (Need a base class to compose int32_t) * -> [] (Present common functionality amongst units) * -> [] (Units interact with date/time types) * -> [] (Units can automatically convert from one another) -* -* +* +* * -> [] :: Month Vars :: * -> [] constexpr uint8_t January = 1 * -> [] constexpr uint8_t February = 2 From 4ba22bc31361b14203a58e09082551750b97bb9b Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Thu, 14 Aug 2025 22:45:21 -0400 Subject: [PATCH 170/400] Update gregorian_calendar.hpp --- .../calendar/gregorian/gregorian_calendar.hpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp index ce7cc03..8913525 100644 --- a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp @@ -344,8 +344,16 @@ struct GregorianCalendar final : const YearInt_t year, const uint8_t month, const uint8_t day ) noexcept { - // TODO: INCOMPLETE!!! - return 0; + return static_cast(toDaysSinceEpoch(year, month, day) * 86'400); + } + + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + */ + [[nodiscard]] static constexpr stl::UnixTimestamp toUnixTimestamp(const Date date) noexcept + { + return toUnixTimestamp(date.year(), date.month(), date.day()); } /*! From 5c9e67a00b80e05349dda37cd96b1f9410743f2d Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Thu, 14 Aug 2025 22:46:03 -0400 Subject: [PATCH 171/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index 978480b..65f342f 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -37,7 +37,7 @@ int main(int argc, char* argv[]) using Month = simplydt::gregorian::Month; using UnixTimestamp = simplydt::stl::UnixTimestamp; - constexpr GregorianDate demo{2'025, 8, 14}; + constexpr GregorianDate demo{2'025, 8, 15}; std::cout << "\nDemo date: " << demo << '\n'; constexpr bool isValid = GregorianCalendar::isValidDate(demo); @@ -49,6 +49,8 @@ int main(int argc, char* argv[]) GregorianCalendar::getDayOfWeekEnumRepr(demo); constexpr UnixTimestamp serialDays = GregorianCalendar::toDaysSinceEpoch(demo); constexpr GregorianDate fromSerial = GregorianCalendar::fromDaysSinceEpoch(0); + constexpr UnixTimestamp tzz = + GregorianCalendar::toUnixTimestamp(GregorianDate{2'004, 9, 17}); // int32_t toDaysSinceEpoch() // Date fromDaysSinceEpoch() // From 6d76d2a702b49c9cdf6d1cffcb5b850480d21ea5 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Thu, 14 Aug 2025 22:53:01 -0400 Subject: [PATCH 172/400] Update gregorian_calendar.hpp --- include/simplydt/calendar/gregorian/gregorian_calendar.hpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp index 8913525..9dd3b52 100644 --- a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp @@ -297,8 +297,8 @@ struct GregorianCalendar final : YearInt_t year, uint8_t month, uint8_t day ) noexcept { - // Convert {year, month, day} triple into a serial count of days. // CREDITS: Howard Hinnant [Mr. Chrono] - (Ripple Labs) + // Convert {year, month, day} triple into a serial count of days. year -= month <= 2; const int era = year / YEARS_IN_ERA; const unsigned yoe = static_cast(year - era * YEARS_IN_ERA); @@ -322,8 +322,8 @@ struct GregorianCalendar final : */ [[nodiscard]] static constexpr Date fromDaysSinceEpoch(int32_t serial_days) noexcept { - // Convert a serial count of days into a {year, month, day} triple. // CREDITS: Howard Hinnant [Mr. Chrono] - (Ripple Labs) + // Convert a serial count of days into a {year, month, day} triple. serial_days += 719'468; const int era = (serial_days >= 0 ? serial_days : serial_days - 146'096) / 146'097; const unsigned doe = static_cast(serial_days - era * 146'097); @@ -363,8 +363,7 @@ struct GregorianCalendar final : [[nodiscard]] static constexpr Date fromUnixTimestamp(const stl::UnixTimestamp& timestamp ) noexcept { - // TODO: INCOMPLETE!!! - return Date{}; + return fromDaysSinceEpoch(static_cast(timestamp / 86'400)); } /*! From 3606ddfb7ca856444c8fb3b18f0247cc51c6c1a8 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Thu, 14 Aug 2025 22:53:04 -0400 Subject: [PATCH 173/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index 65f342f..636b07f 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -51,6 +51,8 @@ int main(int argc, char* argv[]) constexpr GregorianDate fromSerial = GregorianCalendar::fromDaysSinceEpoch(0); constexpr UnixTimestamp tzz = GregorianCalendar::toUnixTimestamp(GregorianDate{2'004, 9, 17}); + constexpr GregorianDate zzt = + GregorianCalendar::fromUnixTimestamp(1'095'379'200); // 2004-09-17T00:00:00.00 // int32_t toDaysSinceEpoch() // Date fromDaysSinceEpoch() // From 56a43758b74081ad41c12e7699dc459c99fb4102 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Thu, 14 Aug 2025 23:00:22 -0400 Subject: [PATCH 174/400] Update gregorian_calendar.hpp --- include/simplydt/calendar/gregorian/gregorian_calendar.hpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp index 9dd3b52..e778bed 100644 --- a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp @@ -229,7 +229,8 @@ struct GregorianCalendar final : if (!isValidDate(year, month, day)) return INVALID_DOW_INDEX; - // Tomohiko Sakamoto's Algorithm + // CREDITS: Tomohiko Sakamoto + // Day-of-week index algorithm const YearInt_t modYear = year - (month < 3); // Extra days from leap year // only affect March and later const uint8_t monthIndex = month - 1; From 01aa53d7a9534a0b92f2ae5c5bab015dd1cefba3 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Thu, 14 Aug 2025 23:56:41 -0400 Subject: [PATCH 175/400] Update gregorian_calendar.hpp --- .../calendar/gregorian/gregorian_calendar.hpp | 29 +++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp index e778bed..d9959f0 100644 --- a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp @@ -18,6 +18,7 @@ #include "simplydt/calendar/abstract_calendar.hpp" #include "simplydt/calendar/concepts/calendar_contract.hpp" #include "simplydt/calendar/gregorian/gregorian_date.hpp" +#include "simplydt/common/stl_chrono_utils.hpp" namespace simplydt::gregorian { @@ -373,8 +374,32 @@ struct GregorianCalendar final : */ [[nodiscard]] static Date fromTimePoint(const stl::SystemTimePoint& time_point) noexcept { - // TODO: INCOMPLETE!!! - return Date{}; + const stl::UnixTimestamp secsSinceEpoch = stl::SystemClock::to_time_t(time_point); + stl::CalendarDateTime dateBuffer{}; + + if (!stl::deriveLocalDateTimeFromTimestamp(&secsSinceEpoch, &dateBuffer)) + return Date{}; // Failed to interpret local date + + return Date{ + static_cast(dateBuffer.tm_year + 1'900), // tm_year measures years since 1900 + static_cast(dateBuffer.tm_mon + 1), // tm_mon measures months since January + static_cast(dateBuffer.tm_mday) + }; + } + + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + */ + [[nodiscard]] static Date fromTimePoint( + const stl::SystemTimePoint& time_point, const bool local + ) noexcept + { + if (local) + return fromTimePoint(time_point); + + const stl::UnixTimestamp secsSinceEpoch = stl::SystemClock::to_time_t(time_point); + return fromUnixTimestamp(secsSinceEpoch); } private: From ac2362ed75c2318dc194d1c91125e3743fffbbcd Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Thu, 14 Aug 2025 23:56:45 -0400 Subject: [PATCH 176/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index 636b07f..33b3bee 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -53,6 +53,8 @@ int main(int argc, char* argv[]) GregorianCalendar::toUnixTimestamp(GregorianDate{2'004, 9, 17}); constexpr GregorianDate zzt = GregorianCalendar::fromUnixTimestamp(1'095'379'200); // 2004-09-17T00:00:00.00 + const GregorianDate bzr = GregorianCalendar::fromTimePoint(std::chrono::system_clock::now(), false); + std::cout << bzr << '\n'; // int32_t toDaysSinceEpoch() // Date fromDaysSinceEpoch() // From 0a6aad5f5aac390ed9ebb44bc30b1b23d82f9188 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Thu, 14 Aug 2025 23:58:15 -0400 Subject: [PATCH 177/400] Update gregorian_calendar.hpp --- .../simplydt/calendar/gregorian/gregorian_calendar.hpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp index d9959f0..a2e4baf 100644 --- a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp @@ -381,8 +381,12 @@ struct GregorianCalendar final : return Date{}; // Failed to interpret local date return Date{ - static_cast(dateBuffer.tm_year + 1'900), // tm_year measures years since 1900 - static_cast(dateBuffer.tm_mon + 1), // tm_mon measures months since January + static_cast( + dateBuffer.tm_year + 1'900 + ), // tm_year measures years since 1900 + static_cast( + dateBuffer.tm_mon + 1 + ), // tm_mon measures months since January static_cast(dateBuffer.tm_mday) }; } From a33edb245af7fce7088214d91a55b1e2c7af9ccb Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Thu, 14 Aug 2025 23:58:26 -0400 Subject: [PATCH 178/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index 33b3bee..37e98fd 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -53,7 +53,8 @@ int main(int argc, char* argv[]) GregorianCalendar::toUnixTimestamp(GregorianDate{2'004, 9, 17}); constexpr GregorianDate zzt = GregorianCalendar::fromUnixTimestamp(1'095'379'200); // 2004-09-17T00:00:00.00 - const GregorianDate bzr = GregorianCalendar::fromTimePoint(std::chrono::system_clock::now(), false); + const GregorianDate bzr = + GregorianCalendar::fromTimePoint(std::chrono::system_clock::now(), false); std::cout << bzr << '\n'; // int32_t toDaysSinceEpoch() // Date fromDaysSinceEpoch() From 587deb1d9811a90e9cd5fddd67a825c86e53dccf Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Fri, 15 Aug 2025 00:10:29 -0400 Subject: [PATCH 179/400] Legal Notice Banner Update --- cffi/include/simplydt/common/c_datetime_defs.h | 2 +- cffi/include/simplydt/common/c_datetime_utils.h | 2 +- cffi/src/common/c_datetime_utils.cpp | 2 +- include/simplydt/calendar/abstract_calendar.hpp | 2 +- include/simplydt/calendar/concepts/calendar_concepts.hpp | 2 +- include/simplydt/calendar/concepts/calendar_contract.hpp | 2 +- include/simplydt/calendar/concepts/date_concepts.hpp | 2 +- include/simplydt/calendar/concepts/date_contract.hpp | 2 +- include/simplydt/calendar/date/abstract_date.hpp | 2 +- include/simplydt/calendar/type_traits/calendar_traits.hpp | 2 +- include/simplydt/calendar/type_traits/date_traits.hpp | 2 +- include/simplydt/common/calendar_defs.hpp | 2 +- include/simplydt/common/simplydt_defs.hpp | 2 +- include/simplydt/common/stl_chrono_defs.hpp | 2 +- include/simplydt/common/stl_chrono_utils.hpp | 2 +- include/simplydt/common/string_utils.hpp | 2 +- lib/metadata/info.h | 2 +- lib/metadata/templ/info.h.in | 2 +- lib/metadata/templ/version.h.in | 2 +- lib/metadata/version.h | 2 +- src/coord_universal_time/utc_time.cpp | 2 +- src/gregorian_calendar/gregorian_date.cpp | 2 +- 22 files changed, 22 insertions(+), 22 deletions(-) diff --git a/cffi/include/simplydt/common/c_datetime_defs.h b/cffi/include/simplydt/common/c_datetime_defs.h index a641b9f..e1f284a 100644 --- a/cffi/include/simplydt/common/c_datetime_defs.h +++ b/cffi/include/simplydt/common/c_datetime_defs.h @@ -1,5 +1,5 @@ -// Copyright (C) 2023-2025 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. +// Copyright (C) 2026 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. // Released under the terms of the GNU Affero General Public License version 3. // [ISJTB-CXX-XL20230401-000001] diff --git a/cffi/include/simplydt/common/c_datetime_utils.h b/cffi/include/simplydt/common/c_datetime_utils.h index 773bbd5..4fc2557 100644 --- a/cffi/include/simplydt/common/c_datetime_utils.h +++ b/cffi/include/simplydt/common/c_datetime_utils.h @@ -1,5 +1,5 @@ -// Copyright (C) 2023-2025 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. +// Copyright (C) 2026 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. // Released under the terms of the GNU Affero General Public License version 3. // [ISJTB-CXX-XL20230401-000001] diff --git a/cffi/src/common/c_datetime_utils.cpp b/cffi/src/common/c_datetime_utils.cpp index 083b1f6..fef3257 100644 --- a/cffi/src/common/c_datetime_utils.cpp +++ b/cffi/src/common/c_datetime_utils.cpp @@ -1,5 +1,5 @@ -// Copyright (C) 2023-2025 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. +// Copyright (C) 2026 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. // Released under the terms of the GNU Affero General Public License version 3. // [ISJTB-CXX-XL20230401-000001] diff --git a/include/simplydt/calendar/abstract_calendar.hpp b/include/simplydt/calendar/abstract_calendar.hpp index 97cf89f..7c6a631 100644 --- a/include/simplydt/calendar/abstract_calendar.hpp +++ b/include/simplydt/calendar/abstract_calendar.hpp @@ -1,5 +1,5 @@ -// Copyright (C) 2023-2025 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. +// Copyright (C) 2026 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. // Released under the terms of the GNU Affero General Public License version 3. // [ISJTB-CXX-XL20230401-000001] diff --git a/include/simplydt/calendar/concepts/calendar_concepts.hpp b/include/simplydt/calendar/concepts/calendar_concepts.hpp index 828bc8b..fb1e503 100644 --- a/include/simplydt/calendar/concepts/calendar_concepts.hpp +++ b/include/simplydt/calendar/concepts/calendar_concepts.hpp @@ -1,5 +1,5 @@ -// Copyright (C) 2023-2025 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. +// Copyright (C) 2026 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. // Released under the terms of the GNU Affero General Public License version 3. // [ISJTB-CXX-XL20230401-000001] diff --git a/include/simplydt/calendar/concepts/calendar_contract.hpp b/include/simplydt/calendar/concepts/calendar_contract.hpp index b1764f3..58cb28a 100644 --- a/include/simplydt/calendar/concepts/calendar_contract.hpp +++ b/include/simplydt/calendar/concepts/calendar_contract.hpp @@ -1,5 +1,5 @@ -// Copyright (C) 2023-2025 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. +// Copyright (C) 2026 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. // Released under the terms of the GNU Affero General Public License version 3. // [ISJTB-CXX-XL20230401-000001] diff --git a/include/simplydt/calendar/concepts/date_concepts.hpp b/include/simplydt/calendar/concepts/date_concepts.hpp index ad7dd45..63545cd 100644 --- a/include/simplydt/calendar/concepts/date_concepts.hpp +++ b/include/simplydt/calendar/concepts/date_concepts.hpp @@ -1,5 +1,5 @@ -// Copyright (C) 2023-2025 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. +// Copyright (C) 2026 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. // Released under the terms of the GNU Affero General Public License version 3. // [ISJTB-CXX-XL20230401-000001] diff --git a/include/simplydt/calendar/concepts/date_contract.hpp b/include/simplydt/calendar/concepts/date_contract.hpp index a10747f..58ff971 100644 --- a/include/simplydt/calendar/concepts/date_contract.hpp +++ b/include/simplydt/calendar/concepts/date_contract.hpp @@ -1,5 +1,5 @@ -// Copyright (C) 2023-2025 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. +// Copyright (C) 2026 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. // Released under the terms of the GNU Affero General Public License version 3. // [ISJTB-CXX-XL20230401-000001] diff --git a/include/simplydt/calendar/date/abstract_date.hpp b/include/simplydt/calendar/date/abstract_date.hpp index 3b68ac2..49200a1 100644 --- a/include/simplydt/calendar/date/abstract_date.hpp +++ b/include/simplydt/calendar/date/abstract_date.hpp @@ -1,5 +1,5 @@ -// Copyright (C) 2023-2025 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. +// Copyright (C) 2026 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. // Released under the terms of the GNU Affero General Public License version 3. // [ISJTB-CXX-XL20230401-000001] diff --git a/include/simplydt/calendar/type_traits/calendar_traits.hpp b/include/simplydt/calendar/type_traits/calendar_traits.hpp index 0a4eeb6..c79efd8 100644 --- a/include/simplydt/calendar/type_traits/calendar_traits.hpp +++ b/include/simplydt/calendar/type_traits/calendar_traits.hpp @@ -1,5 +1,5 @@ -// Copyright (C) 2023-2025 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. +// Copyright (C) 2026 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. // Released under the terms of the GNU Affero General Public License version 3. // [ISJTB-CXX-XL20230401-000001] diff --git a/include/simplydt/calendar/type_traits/date_traits.hpp b/include/simplydt/calendar/type_traits/date_traits.hpp index f868416..202c431 100644 --- a/include/simplydt/calendar/type_traits/date_traits.hpp +++ b/include/simplydt/calendar/type_traits/date_traits.hpp @@ -1,5 +1,5 @@ -// Copyright (C) 2023-2025 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. +// Copyright (C) 2026 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. // Released under the terms of the GNU Affero General Public License version 3. // [ISJTB-CXX-XL20230401-000001] diff --git a/include/simplydt/common/calendar_defs.hpp b/include/simplydt/common/calendar_defs.hpp index 0f49acd..739e35e 100644 --- a/include/simplydt/common/calendar_defs.hpp +++ b/include/simplydt/common/calendar_defs.hpp @@ -1,5 +1,5 @@ -// Copyright (C) 2023-2025 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. +// Copyright (C) 2026 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. // Released under the terms of the GNU Affero General Public License version 3. // [ISJTB-CXX-XL20230401-000001] diff --git a/include/simplydt/common/simplydt_defs.hpp b/include/simplydt/common/simplydt_defs.hpp index ca8f84e..ff81efd 100644 --- a/include/simplydt/common/simplydt_defs.hpp +++ b/include/simplydt/common/simplydt_defs.hpp @@ -1,5 +1,5 @@ -// Copyright (C) 2023-2025 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. +// Copyright (C) 2026 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. // Released under the terms of the GNU Affero General Public License version 3. // [ISJTB-CXX-XL20230401-000001] diff --git a/include/simplydt/common/stl_chrono_defs.hpp b/include/simplydt/common/stl_chrono_defs.hpp index bb23f90..4969d17 100644 --- a/include/simplydt/common/stl_chrono_defs.hpp +++ b/include/simplydt/common/stl_chrono_defs.hpp @@ -1,5 +1,5 @@ -// Copyright (C) 2023-2025 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. +// Copyright (C) 2026 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. // Released under the terms of the GNU Affero General Public License version 3. // [ISJTB-CXX-XL20230401-000001] diff --git a/include/simplydt/common/stl_chrono_utils.hpp b/include/simplydt/common/stl_chrono_utils.hpp index fa33e06..5153613 100644 --- a/include/simplydt/common/stl_chrono_utils.hpp +++ b/include/simplydt/common/stl_chrono_utils.hpp @@ -1,5 +1,5 @@ -// Copyright (C) 2023-2025 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. +// Copyright (C) 2026 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. // Released under the terms of the GNU Affero General Public License version 3. // [ISJTB-CXX-XL20230401-000001] diff --git a/include/simplydt/common/string_utils.hpp b/include/simplydt/common/string_utils.hpp index 4ed0882..b7432ad 100644 --- a/include/simplydt/common/string_utils.hpp +++ b/include/simplydt/common/string_utils.hpp @@ -1,5 +1,5 @@ -// Copyright (C) 2023-2025 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. +// Copyright (C) 2026 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. // Released under the terms of the GNU Affero General Public License version 3. // [ISJTB-CXX-XL20230401-000001] diff --git a/lib/metadata/info.h b/lib/metadata/info.h index 75123ef..96df0c7 100644 --- a/lib/metadata/info.h +++ b/lib/metadata/info.h @@ -1,5 +1,5 @@ -// Copyright (C) 2023-2025 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. +// Copyright (C) 2026 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. // Released under the terms of the GNU Affero General Public License version 3. // [ISJTB-CXX-XL20230401-000001] diff --git a/lib/metadata/templ/info.h.in b/lib/metadata/templ/info.h.in index 6b0e685..9a5f0ad 100644 --- a/lib/metadata/templ/info.h.in +++ b/lib/metadata/templ/info.h.in @@ -1,5 +1,5 @@ -// Copyright (C) 2023-2025 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. +// Copyright (C) 2026 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. // Released under the terms of the GNU Affero General Public License version 3. // [ISJTB-CXX-XL20230401-000001] diff --git a/lib/metadata/templ/version.h.in b/lib/metadata/templ/version.h.in index fab714c..9632985 100644 --- a/lib/metadata/templ/version.h.in +++ b/lib/metadata/templ/version.h.in @@ -1,5 +1,5 @@ -// Copyright (C) 2023-2025 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. +// Copyright (C) 2026 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. // Released under the terms of the GNU Affero General Public License version 3. // [ISJTB-CXX-XL20230401-000001] diff --git a/lib/metadata/version.h b/lib/metadata/version.h index f1f3cf9..e3a6b15 100644 --- a/lib/metadata/version.h +++ b/lib/metadata/version.h @@ -1,5 +1,5 @@ -// Copyright (C) 2023-2025 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. +// Copyright (C) 2026 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. // Released under the terms of the GNU Affero General Public License version 3. // [ISJTB-CXX-XL20230401-000001] diff --git a/src/coord_universal_time/utc_time.cpp b/src/coord_universal_time/utc_time.cpp index af00a0c..b40e7e6 100644 --- a/src/coord_universal_time/utc_time.cpp +++ b/src/coord_universal_time/utc_time.cpp @@ -1,5 +1,5 @@ -// Copyright (C) 2023-2025 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. +// Copyright (C) 2026 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. // Released under the terms of the GNU Affero General Public License version 3. // [ISJTB-CXX-XL20230401-000001] diff --git a/src/gregorian_calendar/gregorian_date.cpp b/src/gregorian_calendar/gregorian_date.cpp index f602ba6..21707aa 100644 --- a/src/gregorian_calendar/gregorian_date.cpp +++ b/src/gregorian_calendar/gregorian_date.cpp @@ -1,5 +1,5 @@ -// Copyright (C) 2023-2025 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. +// Copyright (C) 2026 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. // Released under the terms of the GNU Affero General Public License version 3. // [ISJTB-CXX-XL20230401-000001] From b43d78496ecaf945a2513172ed369d5720cc43e0 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Fri, 15 Aug 2025 00:30:42 -0400 Subject: [PATCH 180/400] Update gregorian_defs.hpp --- .../calendar/gregorian/gregorian_defs.hpp | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_defs.hpp b/include/simplydt/calendar/gregorian/gregorian_defs.hpp index 978f621..31138cf 100644 --- a/include/simplydt/calendar/gregorian/gregorian_defs.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_defs.hpp @@ -114,19 +114,21 @@ constexpr uint8_t DAYS_IN_WEEK = 7; /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Total number of days in one common calendar + * year. */ constexpr uint16_t DAYS_IN_YEAR = 365; /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Total number of days in one calendar leap + * year. */ constexpr uint16_t DAYS_IN_LEAP_YEAR = 366; /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Average amount of days per calendar year. */ constexpr inline float AVG_DAYS_IN_YEAR = 365.25; @@ -262,10 +264,14 @@ namespace simplydt::sakamoto /*! * @brief - * Month key table for Tomohiko Sakamoto's algorithm. + * Month offset lookup table for Tomohiko Sakamoto's + * algorithm. * * @details - * TODO: INCOMPLETE COMMENT!!! + * Each value is a precomputed offset added in the + * algorithm's summation. The offsets compactly encode + * month length variations and leap year alignment, + * avoiding branches when calculating the day-of-week. */ static constexpr uint8_t MONTH_KEY[12] = {0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4}; From 59f3d7661cb76b45b6e282cc95c75f3991882829 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Fri, 15 Aug 2025 02:44:53 -0400 Subject: [PATCH 181/400] Documentation Update --- .../simplydt/calendar/abstract_calendar.hpp | 165 ++++++++++++++++-- 1 file changed, 152 insertions(+), 13 deletions(-) diff --git a/include/simplydt/calendar/abstract_calendar.hpp b/include/simplydt/calendar/abstract_calendar.hpp index 7c6a631..baadf56 100644 --- a/include/simplydt/calendar/abstract_calendar.hpp +++ b/include/simplydt/calendar/abstract_calendar.hpp @@ -41,7 +41,17 @@ struct CalendricalSystem { /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Returns name of a calendar month by its numeric value. + * + * @details + * Expects a 1-based month number (1 = January ... 12 = December). + * If the month value is invalid for the current calendar + * implementation, the function returns a predefined invalid + * string literal. Month names are provided by the derived + * calendar's `MONTH_NAMES` array. + * + * @return + * Month name */ [[nodiscard]] static constexpr const char* getMonthName(const uint8_t month) noexcept { @@ -54,7 +64,19 @@ struct CalendricalSystem { /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Returns name of a calendar month from its enumeration + * representation. + * + * @details + * Accepts a month enumeration constant defined by the derived + * calendar implementation. The enumeration is expected to use + * zero-based indexing (0 = January ... 11 = December). If the + * month value is invalid for the current calendar, the function + * returns a predefined invalid string literal. Month names are + * sourced from the derived calendar's `MONTH_NAMES` array. + * + * @return + * Month name */ [[nodiscard]] static constexpr const char* getMonthName(const Month month) noexcept { @@ -68,7 +90,15 @@ struct CalendricalSystem { /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Returns month name of calendar date. + * + * @details + * Extracts month from calendar defined date implementation + * and returns its corresponding month name using the derived + * calendar's `MONTH_NAMES` array. + * + * @return + * Month name */ [[nodiscard]] static constexpr const char* getMonthName(const Date date) noexcept { @@ -77,7 +107,18 @@ struct CalendricalSystem { /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Returns abbreviated name of a calendar month by its numeric + * value. + * + * @details + * Expects a 1-based month number (1 = January ... 12 = December). + * If the month value is invalid for the current calendar + * implementation, the function returns a predefined invalid + * string literal. Month abbreviations are provided by the + * derived calendar's `MONTH_ABBREVS` array. + * + * @return + * Abbreviated month name */ [[nodiscard]] static std::string getMonthAbbrev(const uint8_t month) noexcept { @@ -91,7 +132,20 @@ struct CalendricalSystem { /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Returns abbreviated name of a calendar month from its + * enumeration representation. + * + * @details + * Accepts a month enumeration constant defined by the derived + * calendar implementation. The enumeration is expected to use + * zero-based indexing (0 = January ... 11 = December). If the + * month value is invalid for the current calendar, the function + * returns a predefined invalid string literal. Month + * abbreviations are sourced from the derived calendar's + * `MONTH_ABBREVS` array. + * + * @return + * Abbreviated month name */ [[nodiscard]] static std::string getMonthAbbrev(const Month month) noexcept { @@ -106,7 +160,15 @@ struct CalendricalSystem { /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Returns abbreviated month name of calendar date. + * + * @details + * Extracts month from calendar defined date implementation + * and returns its corresponding abbreviated month name using + * the derived calendar's `MONTH_ABBREVS` array. + * + * @return + * Abbreviated month name */ [[nodiscard]] static std::string getMonthAbbrev(const Date date) noexcept { @@ -115,7 +177,18 @@ struct CalendricalSystem { /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Converts a numeric month value to its corresponding + * enumeration representation. + * + * @details + * Expects a 1-based month number (1 = January ... 12 = December). + * If the value is invalid for the current calendar implementation, + * the function returns a fallback enumeration value (0). The + * returned value uses zero-based indexing of the derived + * calendar's `Month` enumeration. + * + * @return + * Calendar month enum value */ [[nodiscard]] static constexpr Month getMonthEnumRepr(const uint8_t month) noexcept { @@ -128,7 +201,16 @@ struct CalendricalSystem { /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Converts a calendar date month to its corresponding + * enumeration representation. + * + * @details + * Extracts month from calendar defined date implementation and + * converts it to the zero-based `Month` enumeration defined by + * the derived calendar implementation. + * + * @return + * Calendar month enum value */ [[nodiscard]] static constexpr Month getMonthEnumRepr(const Date date) noexcept { @@ -137,7 +219,17 @@ struct CalendricalSystem { /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Returns day-of-week name of calendar date. + * + * @details + * Validates the given `Date` instance and determines its + * day-of-week index using the derived calendar's + * `getDayOfWeekIndex()` method. Returns the corresponding name + * from the `DAY_OF_WEEK_NAMES` array, or a predefined invalid + * string literal if the date is not valid. + * + * @return + * Day-of-week name */ [[nodiscard]] static constexpr const char* getDayOfWeekName(const Date date) noexcept { @@ -150,7 +242,20 @@ struct CalendricalSystem { /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Returns name of a calendar day-of-week from its enumeration + * representation. + * + * @details + * Accepts a day-of-week enumeration constant defined by the + * derived calendar implementation. The enumeration is expected + * to use zero-based indexing (0 = Sunday ... 6 = Saturday). If + * the day-of-week value is invalid for the current calendar, the + * function returns a predefined invalid string literal. + * day-of-week names are sourced from the derived calendar's + * `DAY_OF_WEEK_NAMES` array. + * + * @return + * Day-of-week name */ [[nodiscard]] static constexpr const char* getDayOfWeekName(const DayOfWeek dow) noexcept { @@ -164,7 +269,17 @@ struct CalendricalSystem { /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Returns abbreviated day-of-week name of calendar date. + * + * @details + * Validates the given `Date` instance and determines its + * day-of-week index using the derived calendar's + * `getDayOfWeekIndex()` method. Returns the corresponding + * abbreviated name from the `DAY_OF_WEEK_ABBREVS` array, or a + * predefined invalid string literal if the date is not valid. + * + * @return + * Abbreviated day-of-week name */ [[nodiscard]] static std::string getDayOfWeekAbbrev(const Date date) noexcept { @@ -178,7 +293,20 @@ struct CalendricalSystem { /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Returns abbreviated name of a calendar day-of-week from its + * enumeration representation. + * + * @details + * Accepts a day-of-week enumeration constant defined by the derived + * calendar implementation. The enumeration is expected to use + * zero-based indexing (0 = Sunday ... 6 = Saturday). If the + * day-of-week value is invalid for the current calendar, the + * function returns a predefined invalid string literal. Day-of-week + * abbreviations are sourced from the derived calendar's + * `DAY_OF_WEEK_ABBREVS` array. + * + * @return + * Abbreviated day-of-week name */ [[nodiscard]] static std::string getDayOfWeekAbbrev(const DayOfWeek dow) noexcept { @@ -193,7 +321,18 @@ struct CalendricalSystem { /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Converts a calendar date to its corresponding day-of-week + * enumeration representation. + * + * @details + * Validates the given `Date` instance and determines its + * day-of-week index using the derived calendar's + * `getDayOfWeekIndex()` method. Returns the corresponding + * day-of-week enumeration representation using the `DayOfWeek` + * enumeration defined by the derived calendar. + * + * @return + * Calendar day-of-week enum value */ [[nodiscard]] static constexpr DayOfWeek getDayOfWeekEnumRepr(const Date date) noexcept { From db5d9d9ec731f1206d72e738da30c05b0b770b62 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Fri, 15 Aug 2025 03:26:35 -0400 Subject: [PATCH 182/400] Update abstract_calendar.hpp --- include/simplydt/calendar/abstract_calendar.hpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/include/simplydt/calendar/abstract_calendar.hpp b/include/simplydt/calendar/abstract_calendar.hpp index baadf56..3720cde 100644 --- a/include/simplydt/calendar/abstract_calendar.hpp +++ b/include/simplydt/calendar/abstract_calendar.hpp @@ -23,6 +23,20 @@ namespace simplydt /*! * @brief * Base calendar agnostic system. + * + * @details + * This class serves as a foundational interface for calendar + * systems, providing a generic and extensible structure for + * calendar operations. It is designed to be agnostic of any + * specific calendar implementation, allowing derived calendars + * to define their own month and day-of-week enumerations, date + * representations, and naming conventions. This type is not + * self-constructable and must be inherited by a concrete + * implementation that presents a valid public API. Implementations + * should seek confirmation their API is compliant by invoking the + * calendar contract enforcement macro just after the body of the + * implementation. Failing to be compliant can result in substitution + * errors or undefined behavior. */ template struct CalendricalSystem { From be36e33020160e05b21e1eaa603cde96e080cdf5 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Fri, 15 Aug 2025 03:27:25 -0400 Subject: [PATCH 183/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index 37e98fd..84c766b 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -22,6 +22,11 @@ * -> [] constexpr uint8_t March = 3 * -> [] ... * +* -> [] :: Output Styles :: +* -> [] StandardStyle ----> 2004-09-17:00:00:00.000 +* -> [] UnixStyle --------> 2004-09-17T00:00:00.000 +* -> [] ... +* \* /// \\\ /// \\\ /// | END | \\\ /// \\\ /// \\\ */ // Includes... @@ -56,8 +61,6 @@ int main(int argc, char* argv[]) const GregorianDate bzr = GregorianCalendar::fromTimePoint(std::chrono::system_clock::now(), false); std::cout << bzr << '\n'; - // int32_t toDaysSinceEpoch() - // Date fromDaysSinceEpoch() // std::cout << "\n\n\t[ Complete ]" << std::endl; From 2ad9de875355ada4c05987263bc8479787c5e05e Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Fri, 15 Aug 2025 03:33:20 -0400 Subject: [PATCH 184/400] Update calendar_concepts.hpp --- .../calendar/concepts/calendar_concepts.hpp | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/include/simplydt/calendar/concepts/calendar_concepts.hpp b/include/simplydt/calendar/concepts/calendar_concepts.hpp index fb1e503..9eca01b 100644 --- a/include/simplydt/calendar/concepts/calendar_concepts.hpp +++ b/include/simplydt/calendar/concepts/calendar_concepts.hpp @@ -51,26 +51,24 @@ concept has_calendar_name_arrays = requires { { Calendar_Impl::MONTH_NAMES } -> std::same_as>>&>; + const char*, + std::tuple_size_v>>&>; { Calendar_Impl::MONTH_ABBREVS } -> std::same_as>>&>; + std::string_view, + std::tuple_size_v>>&>; { Calendar_Impl::DAY_OF_WEEK_NAMES - } - -> std::same_as std::same_as>>&>; { Calendar_Impl::DAY_OF_WEEK_ABBREVS - } - -> std::same_as std::same_as>>&>; }; From 3588e2ef63784b3a6479826238695d943ae9ac6e Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Fri, 15 Aug 2025 18:28:21 -0400 Subject: [PATCH 185/400] Update gregorian_defs.hpp --- .../calendar/gregorian/gregorian_defs.hpp | 42 +++++++++++++++++-- 1 file changed, 39 insertions(+), 3 deletions(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_defs.hpp b/include/simplydt/calendar/gregorian/gregorian_defs.hpp index 31138cf..9cb02ed 100644 --- a/include/simplydt/calendar/gregorian/gregorian_defs.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_defs.hpp @@ -71,6 +71,42 @@ constexpr Year_Type YEAR_MAXIMUM = 2'038; // TODO: Find real limitation... */ constexpr Year_Type YEARS_IN_ERA = 400; +/*! @brief The month of January (1). */ +constexpr uint8_t January = 1; + +/*! @brief The month of February (2). */ +constexpr uint8_t February = 2; + +/*! @brief The month of March (3). */ +constexpr uint8_t March = 3; + +/*! @brief The month of April (4). */ +constexpr uint8_t April = 4; + +/*! @brief The month of May (5). */ +constexpr uint8_t May = 5; + +/*! @brief The month of June (6). */ +constexpr uint8_t June = 6; + +/*! @brief The month of July (7). */ +constexpr uint8_t July = 7; + +/*! @brief The month of August (8). */ +constexpr uint8_t August = 8; + +/*! @brief The month of September (9). */ +constexpr uint8_t September = 9; + +/*! @brief The month of October (10). */ +constexpr uint8_t October = 10; + +/*! @brief The month of November (11). */ +constexpr uint8_t November = 11; + +/*! @brief The month of December (12). */ +constexpr uint8_t December = 12; + /*! * @brief * Abbreviation length for Gregorian calendar name @@ -98,13 +134,13 @@ constexpr uint8_t MAX_DAY_OF_MONTH = 31; * @brief * Minimum month of Gregorian year. */ -constexpr uint8_t MIN_MONTH_OF_YEAR = 1; +constexpr uint8_t MIN_MONTH_OF_YEAR = January; /*! * @brief * Maximum month of Gregorian year. */ -constexpr uint8_t MAX_MONTH_OF_YEAR = 12; +constexpr uint8_t MAX_MONTH_OF_YEAR = December; /*! * @brief @@ -273,7 +309,7 @@ namespace simplydt::sakamoto * month length variations and leap year alignment, * avoiding branches when calculating the day-of-week. */ -static constexpr uint8_t MONTH_KEY[12] = {0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4}; +inline constexpr uint8_t MONTH_KEY[gregorian::MONTHS_IN_YEAR] = {0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4}; } // namespace simplydt::sakamoto From 88ba2a735bda9b2d09ca61f947f53dda3b442c26 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Fri, 15 Aug 2025 18:28:33 -0400 Subject: [PATCH 186/400] Documentation Update --- .../calendar/gregorian/gregorian_calendar.hpp | 384 ++++++++++++++---- 1 file changed, 308 insertions(+), 76 deletions(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp index a2e4baf..da385ec 100644 --- a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp @@ -31,52 +31,68 @@ struct GregorianCalendar final : public CalendricalSystem { /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Identifies the calendar system represented by this + * implementation. */ static constexpr CalendarSystem calendar = CalendarSystem::GREGORIAN; /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Indicates whether the calendar system is solar-based. + * + * @details + * This constant specifies that the Gregorian calendar system + * follows a solar model, where date progression is based on + * the Earth's orbit around the Sun. */ static constexpr bool isSolarCalendar = true; /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Indicates whether the calendar system is lunar-based. + * + * @details + * This constant specifies that the Gregorian calendar system + * does not follow a lunar model, which bases months on the + * phases of the Moon. */ static constexpr bool isLunarCalendar = false; /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Indicates whether the calendar system is lunisolar-based. + * + * @details + * This constant specifies that the Gregorian calendar system + * does not follow a lunisolar model, which combines solar + * and lunar cycles to structure months and years. */ static constexpr bool isLunisolarCalendar = false; /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Full names of Gregorian calendar months. */ static constexpr inline const std::array& MONTH_NAMES = Months; /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Abbreviated names of Gregorian calendar months. */ static constexpr inline const std::array& MONTH_ABBREVS = MonthAbbrevs; /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Full names of Gregorian calendar days-of-week. */ static constexpr inline const std::array& DAY_OF_WEEK_NAMES = DaysOfWeek; /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Abbreviated names of Gregorian calendar days-of-week. */ static constexpr inline const std::array& DAY_OF_WEEK_ABBREVS = DayOfWeekAbbrevs; @@ -84,6 +100,14 @@ struct GregorianCalendar final : /*! * @brief * Evaluate support of year value. + * + * @details + * This function returns true if the given year falls within + * the inclusive bounds defined by `YEAR_MINIMUM` and + * `YEAR_MAXIMUM` for the Gregorian calendar system. + * + * @return + * True if supported year value */ [[nodiscard]] static constexpr bool isValidYear(const YearInt_t year) noexcept { @@ -92,7 +116,16 @@ struct GregorianCalendar final : /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Determines whether a given year is a leap year. + * + * @details + * This function checks if the specified year qualifies as a + * leap year under Gregorian calendar rules. A year is + * considered a leap year if it is divisible by 4, except for + * years divisible by 100 unless it is also divisible by 400. + * + * @return + * True if provided year is a leap year */ [[nodiscard]] static constexpr bool isLeapYear(const YearInt_t year) noexcept { @@ -101,7 +134,10 @@ struct GregorianCalendar final : /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Determines whether a given date is within a leap year. + * + * @return + * True if provided date is within a leap year */ [[nodiscard]] static constexpr bool isLeapYear(const Date& date) noexcept { @@ -110,7 +146,51 @@ struct GregorianCalendar final : /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Returns total number of days in a given calendar year. + * + * @details + * Determines whether the specified year is a leap year and + * returns `DAYS_IN_LEAP_YEAR` or `DAYS_IN_YEAR` accordingly. + * If the year is unsupported the function returns 0. + * + * @return + * Total days in year + */ + [[nodiscard]] static constexpr uint16_t getDaysInYear(const YearInt_t year) noexcept + { + if (!isValidYear(year)) + return 0; // Unsupported year + + return isLeapYear(year) ? DAYS_IN_LEAP_YEAR : DAYS_IN_YEAR; + } + + /*! + * @brief + * Returns total number of days in the year of a given date. + * + * @details + * Extracts the year from the provided `Date` to determine + * the total number of days in the year. + * + * @return + * Total days in year + */ + [[nodiscard]] static constexpr uint16_t getDaysInYear(const Date date) noexcept + { + return getDaysInYear(date.year()); + } + + /*! + * @brief + * Checks if a month value is within valid range. + * + * @details + * This function returns true if the given month falls within + * the inclusive bounds defined by `MIN_MONTH_OF_YEAR` and + * `MAX_MONTH_OF_YEAR` for the Gregorian calendar system. + * + * @return + * True if valid numerical month value */ [[nodiscard]] static constexpr bool isValidMonth(const uint8_t month) noexcept { @@ -119,7 +199,18 @@ struct GregorianCalendar final : /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Returns total number of days in a given month of a + * specified year. + * + * @details + * This function handles the varying lengths of months in + * the Gregorian calendar, including the special case of + * February during a leap year. The function first validates + * the year and month; if either is invalid, it returns 0 to + * indicate an unsupported or invalid date component. + * + * @return + * Total days in month */ [[nodiscard]] static constexpr uint8_t getDaysInMonth( const YearInt_t year, const uint8_t month @@ -129,8 +220,7 @@ struct GregorianCalendar final : return 0; // Unsupported or invalid switch (month) { - // February - case 2: + case February: switch (isLeapYear(year)) { case true: return 29; @@ -138,11 +228,10 @@ struct GregorianCalendar final : return 28; } - // April, June, September, November - case 4: - case 6: - case 9: - case 11: + case April: + case June: + case September: + case November: return 30; // January, March, May, July, August, October, December @@ -153,7 +242,15 @@ struct GregorianCalendar final : /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Returns total number of days in the month of a specified + * date. + * + * @details + * Extracts the year and month from the provided `Date` to + * determine the total number of days in the dates month. + * + * @return + * Total days in month */ [[nodiscard]] static constexpr uint8_t getDaysInMonth(const Date date) noexcept { @@ -162,33 +259,15 @@ struct GregorianCalendar final : /*! * @brief - * TODO: INCOMPLETE COMMENT!!! - */ - [[nodiscard]] static constexpr uint16_t getDaysInYear(const YearInt_t year) noexcept - { - if (!isValidYear(year)) - return 0; // Unsupported year - - uint16_t totalDays = 0; - - for (uint8_t month = MIN_MONTH_OF_YEAR; month <= MAX_MONTH_OF_YEAR; month++) - totalDays += getDaysInMonth(year, month); - - return totalDays; - } - - /*! - * @brief - * TODO: INCOMPLETE COMMENT!!! - */ - [[nodiscard]] static constexpr uint16_t getDaysInYear(const Date date) noexcept - { - return getDaysInYear(date.year()); - } - - /*! - * @brief - * TODO: INCOMPLETE COMMENT!!! + * Checks if a day value is within valid range. + * + * @details + * This function returns true if the given day falls within + * the inclusive bounds defined by `MIN_DAY_OF_MONTH` and + * `MAX_DAY_OF_MONTH` for the Gregorian calendar system. + * + * @return + * True if valid day value */ [[nodiscard]] static constexpr bool isValidDay(const uint8_t day) noexcept { @@ -197,7 +276,18 @@ struct GregorianCalendar final : /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Checks if a given year, month, and day combination form + * a valid calendar date. + * + * @details + * This function returns true when the provided date parameters + * describe a real date on the Gregorian calendar. This is + * achieved by comparing the dates day to the total number + * of days in the month. If the provided year is not supported, + * the function returns false. + * + * @return + * True if date exists on calendar */ [[nodiscard]] static constexpr bool isValidDate( const YearInt_t year, const uint8_t month, const uint8_t day @@ -212,7 +302,14 @@ struct GregorianCalendar final : /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Checks if a given date is a valid calendar date. + * + * @details + * Extracts components from the provided `Date` to determine + * validity of the date. + * + * @return + * True if date exists on calendar */ [[nodiscard]] static constexpr bool isValidDate(const Date date) noexcept { @@ -221,10 +318,37 @@ struct GregorianCalendar final : /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Checks if a day-of-week index is within valid range. + * + * @details + * Accepts a zero-based day-of-week index + * (0 = Sunday ... 6 = Saturday). Returns true only if the + * index is less than `DAYS_IN_WEEK`. + * + * @return + * True if valid day-of-week index + */ + [[nodiscard]] static constexpr bool isValidDOWIndex(const uint8_t dow) noexcept + { + return dow < DAYS_IN_WEEK; + } + + /*! + * @brief + * Calculates day-of-week index for a given calendar date. + * + * @details + * Implements Tomohiko Sakamoto's algorithm to determine + * the day of the week for the specified year, month, and + * day combination. Returns a zero-based day-of-week index + * (0 = Sunday ... 6 = Saturday), or `INVALID_DOW_INDEX` + * if the provided date does not exist on the calendar. + * + * @return + * Day-of-week index */ [[nodiscard]] static constexpr uint8_t getDayOfWeekIndex( - const YearInt_t year, const uint8_t month, const uint8_t day + YearInt_t year, uint8_t month, uint8_t day ) noexcept { if (!isValidDate(year, month, day)) @@ -232,11 +356,11 @@ struct GregorianCalendar final : // CREDITS: Tomohiko Sakamoto // Day-of-week index algorithm - const YearInt_t modYear = year - (month < 3); // Extra days from leap year - // only affect March and later + year -= (month < March); // Extra days from leap year + // only affect March and later const uint8_t monthIndex = month - 1; const int index = - ((modYear + modYear / 4 - modYear / 100 + modYear / YEARS_IN_ERA + + ((year + year / 4 - year / 100 + year / YEARS_IN_ERA + sakamoto::MONTH_KEY[monthIndex] + day) % DAYS_IN_WEEK); @@ -248,7 +372,14 @@ struct GregorianCalendar final : /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Calculates day-of-week index for a given calendar date. + * + * @details + * Extracts the year, month, and day from the given `Date` + * instance to compute the zero-based day-of-week index. + * + * @return + * Day-of-week index */ [[nodiscard]] static constexpr uint8_t getDayOfWeekIndex(const Date date) noexcept { @@ -257,16 +388,19 @@ struct GregorianCalendar final : /*! * @brief - * TODO: INCOMPLETE COMMENT!!! - */ - [[nodiscard]] static constexpr bool isValidDOWIndex(const uint8_t dow) noexcept - { - return dow > 0 && dow < DAYS_IN_WEEK; - } - - /*! - * @brief - * TODO: INCOMPLETE COMMENT!!! + * Determines number of weeks a specified month spans + * over the calendar. + * + * @details + * Calculates how many full or partial weeks are needed to + * contain all days of the specified month in a standard + * calendar grid. The result depends on the day of the week + * the month starts on and the total number of days in the + * month. Returns 0 if the month is invalid or if the + * provided year is unsupported. + * + * @return + * Number of weeks month spans */ [[nodiscard]] static constexpr uint8_t getWeeksInMonth( const YearInt_t year, const uint8_t month @@ -284,7 +418,16 @@ struct GregorianCalendar final : /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Determines number of weeks a calendar dates month + * spans over the calendar. + * + * @details + * Extracts the year and month from the provided `Date` + * instance to calculate the number of weeks a month + * spans over the calendar. + * + * @return + * Number of weeks month spans */ [[nodiscard]] static constexpr uint8_t getWeeksInMonth(const Date date) noexcept { @@ -293,7 +436,17 @@ struct GregorianCalendar final : /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Converts a calendar date to serial number of days since + * Unix epoch. + * + * @details + * Uses Howard Hinnant’s civil date algorithm to convert + * a year, month, day combination into a signed day count + * relative to the Unix epoch (1970-01-01 = day 0). The + * result can be negative for dates before the epoch. + * + * @return + * Days since January 1, 1970 */ [[nodiscard]] static constexpr int32_t toDaysSinceEpoch( YearInt_t year, uint8_t month, uint8_t day @@ -301,17 +454,27 @@ struct GregorianCalendar final : { // CREDITS: Howard Hinnant [Mr. Chrono] - (Ripple Labs) // Convert {year, month, day} triple into a serial count of days. - year -= month <= 2; + year -= month <= February; const int era = year / YEARS_IN_ERA; const unsigned yoe = static_cast(year - era * YEARS_IN_ERA); - const unsigned doy = (153 * (month + (month > 2 ? -3 : 9)) + 2) / 5 + day - 1; + const unsigned doy = (153 * (month + (month > February ? -3 : 9)) + 2) / 5 + day - 1; const unsigned doe = yoe * DAYS_IN_YEAR + yoe / 4 - yoe / 100 + doy; return static_cast(era * 146'097 + static_cast(doe) - 719'468); } /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Converts a calendar date to serial number of days since + * Unix epoch. + * + * @details + * Extracts the date components from the provided `Date` + * instance to calculate a signed day count relative to + * the Unix epoch (1970-01-01 = day 0). The result can be + * negative for dates before the epoch. + * + * @return + * Days since January 1, 1970 */ [[nodiscard]] static constexpr int32_t toDaysSinceEpoch(const Date date) noexcept { @@ -320,7 +483,18 @@ struct GregorianCalendar final : /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Converts a serial count of days since Unix epoch to + * a calendar date. + * + * @details + * Uses Howard Hinnant’s civil date algorithm to convert + * a signed day count relative to the Unix epoch + * (1970-01-01 = day 0) into a year, month, day combination. + * Returns a `GregorianDate` representing the calculated + * civil date. + * + * @return + * Gregorian calendar date */ [[nodiscard]] static constexpr Date fromDaysSinceEpoch(int32_t serial_days) noexcept { @@ -340,7 +514,19 @@ struct GregorianCalendar final : /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Converts a calendar date to a Unix timestamp (seconds + * since epoch). + * + * @details + * Uses `toDaysSinceEpoch()` to calculate the number of + * days since the Unix epoch (1970-01-01) and multiplies + * by the number of seconds in a day to obtain the + * equivalent timestamp in seconds. The returned value + * is stored in `stl::UnixTimestamp` and may be negative + * for dates before the epoch. + * + * @return + * Unix timestamp */ [[nodiscard]] static constexpr stl::UnixTimestamp toUnixTimestamp( const YearInt_t year, const uint8_t month, const uint8_t day @@ -351,7 +537,17 @@ struct GregorianCalendar final : /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Converts a calendar date to a Unix timestamp (seconds + * since epoch). + * + * @details + * Extracts the date components from the provided `Date` + * instance to calculate the corresponding Unix timestamp. + * The returned value is stored in `stl::UnixTimestamp` + * and may be negative for dates before the epoch. + * + * @return + * Unix timestamp */ [[nodiscard]] static constexpr stl::UnixTimestamp toUnixTimestamp(const Date date) noexcept { @@ -360,7 +556,18 @@ struct GregorianCalendar final : /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Converts a Unix timestamp (seconds since epoch) to a + * calendar date. + * + * @details + * Divides the given `stl::UnixTimestamp` by the number + * of seconds in a day to convert seconds to whole days + * since the Unix epoch (1970-01-01), then calls + * `fromDaysSinceEpoch()` to obtain the corresponding + * calendar date. + * + * @return + * Gregorian calendar date */ [[nodiscard]] static constexpr Date fromUnixTimestamp(const stl::UnixTimestamp& timestamp ) noexcept @@ -370,7 +577,21 @@ struct GregorianCalendar final : /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Converts a system clock time point to a local calendar + * date. + * + * @details + * Interprets the given `stl::SystemTimePoint` as local + * time by converting it to a Unix timestamp and then + * populating a `std::tm` structure via + * `stl::deriveLocalDateTimeFromTimestamp()`. The + * resulting year, month, and day fields are used to + * construct and return a `GregorianDate`. If the local + * date conversion fails a default constructed Gregorian + * date is returned. + * + * @return + * Gregorian calendar date */ [[nodiscard]] static Date fromTimePoint(const stl::SystemTimePoint& time_point) noexcept { @@ -393,7 +614,18 @@ struct GregorianCalendar final : /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Converts a system clock time point to a local calendar + * date. + * + * @details + * If `local` is true (time-zone), interprets the given + * `stl::SystemTimePoint` as local time. If `local` is false + * (no time-zone), interprets the time point as UTC. If the + * local date conversion fails a default constructed Gregorian + * date is returned. + * + * @return + * Gregorian calendar date */ [[nodiscard]] static Date fromTimePoint( const stl::SystemTimePoint& time_point, const bool local From da0d68fcd5515842ae25bea6635cec1a79ca6207 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Fri, 15 Aug 2025 18:28:45 -0400 Subject: [PATCH 187/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index 84c766b..213d387 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -5,28 +5,28 @@ * * ~ CLI Debug Executable Notes / TO-DO List ~ * -* -> [] :: Simply Datetime Units :: -* -> [] using Days = int32_t -* -> [] using Hours = int32_t -* -> [] ... -* -* -> [] (Need a base class to compose int32_t) +* -> [] :: Simply Datetime Time Units :: +* -> [] template struct TimeUnit { ... }; <---(Composes int32_t) * -> [] (Present common functionality amongst units) * -> [] (Units interact with date/time types) * -> [] (Units can automatically convert from one another) * -* -* -> [] :: Month Vars :: -* -> [] constexpr uint8_t January = 1 -* -> [] constexpr uint8_t February = 2 -* -> [] constexpr uint8_t March = 3 +* -> [] struct Days : public TimeUnit { ... }; +* -> [] struct Hours : public TimeUnit<1, 24> { ... }; +* -> [] struct Minutes : public TimeUnit<1, 1'440> { ... }; * -> [] ... * -* -> [] :: Output Styles :: +* +* -> [] :: Datetime Output Styles :: * -> [] StandardStyle ----> 2004-09-17:00:00:00.000 * -> [] UnixStyle --------> 2004-09-17T00:00:00.000 +* -> [] CivilStyle -------> 2004-09-17 00:00:00 * -> [] ... * +* +* -> [] static constexpr uint8_t getWeeksInMonth() <--- Returns whole weeks in month +* -> [] static constexpr uint8_t getWeeksSpanned() <--- Returns weeks spanned by month +* \* /// \\\ /// \\\ /// | END | \\\ /// \\\ /// \\\ */ // Includes... @@ -50,6 +50,8 @@ int main(int argc, char* argv[]) constexpr const char* month = GregorianCalendar::getMonthName(demo); constexpr simplydt::gregorian::Month monthRepr = GregorianCalendar::getMonthEnumRepr(demo); constexpr const char* dowName = GregorianCalendar::getDayOfWeekName(demo); + constexpr bool isLeap = GregorianCalendar::isLeapYear(demo); + constexpr uint16_t daysInYr = GregorianCalendar::getDaysInYear(demo); constexpr simplydt::gregorian::DayOfWeek dowRepr = GregorianCalendar::getDayOfWeekEnumRepr(demo); constexpr UnixTimestamp serialDays = GregorianCalendar::toDaysSinceEpoch(demo); From 27c87b0fc582299fcfe4e4b18f2a95e5ace3f2c9 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Fri, 15 Aug 2025 18:35:34 -0400 Subject: [PATCH 188/400] Update gregorian_defs.hpp --- .../calendar/gregorian/gregorian_defs.hpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_defs.hpp b/include/simplydt/calendar/gregorian/gregorian_defs.hpp index 9cb02ed..fe6c106 100644 --- a/include/simplydt/calendar/gregorian/gregorian_defs.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_defs.hpp @@ -309,7 +309,20 @@ namespace simplydt::sakamoto * month length variations and leap year alignment, * avoiding branches when calculating the day-of-week. */ -inline constexpr uint8_t MONTH_KEY[gregorian::MONTHS_IN_YEAR] = {0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4}; +inline constexpr uint8_t MONTH_KEY[gregorian::MONTHS_IN_YEAR] = { + 0, ///< January offset + 3, ///< February offset + 2, ///< March offset + 5, ///< April offset + 0, ///< May offset + 3, ///< June offset + 5, ///< July offset + 1, ///< August offset + 4, ///< September offset + 6, ///< October offset + 2, ///< November offset + 4 ///< December offset +}; } // namespace simplydt::sakamoto From cd6a4923590696cc9890a2f7a1628a2f54333f2d Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Fri, 15 Aug 2025 18:35:47 -0400 Subject: [PATCH 189/400] Update gregorian_calendar.hpp --- .../calendar/gregorian/gregorian_calendar.hpp | 76 +++++++++---------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp index da385ec..cb2bec7 100644 --- a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp @@ -147,12 +147,12 @@ struct GregorianCalendar final : /*! * @brief * Returns total number of days in a given calendar year. - * + * * @details * Determines whether the specified year is a leap year and * returns `DAYS_IN_LEAP_YEAR` or `DAYS_IN_YEAR` accordingly. * If the year is unsupported the function returns 0. - * + * * @return * Total days in year */ @@ -167,11 +167,11 @@ struct GregorianCalendar final : /*! * @brief * Returns total number of days in the year of a given date. - * + * * @details * Extracts the year from the provided `Date` to determine * the total number of days in the year. - * + * * @return * Total days in year */ @@ -201,14 +201,14 @@ struct GregorianCalendar final : * @brief * Returns total number of days in a given month of a * specified year. - * + * * @details * This function handles the varying lengths of months in * the Gregorian calendar, including the special case of * February during a leap year. The function first validates * the year and month; if either is invalid, it returns 0 to * indicate an unsupported or invalid date component. - * + * * @return * Total days in month */ @@ -244,11 +244,11 @@ struct GregorianCalendar final : * @brief * Returns total number of days in the month of a specified * date. - * + * * @details * Extracts the year and month from the provided `Date` to * determine the total number of days in the dates month. - * + * * @return * Total days in month */ @@ -278,14 +278,14 @@ struct GregorianCalendar final : * @brief * Checks if a given year, month, and day combination form * a valid calendar date. - * + * * @details * This function returns true when the provided date parameters * describe a real date on the Gregorian calendar. This is * achieved by comparing the dates day to the total number * of days in the month. If the provided year is not supported, * the function returns false. - * + * * @return * True if date exists on calendar */ @@ -303,11 +303,11 @@ struct GregorianCalendar final : /*! * @brief * Checks if a given date is a valid calendar date. - * + * * @details * Extracts components from the provided `Date` to determine * validity of the date. - * + * * @return * True if date exists on calendar */ @@ -319,12 +319,12 @@ struct GregorianCalendar final : /*! * @brief * Checks if a day-of-week index is within valid range. - * + * * @details * Accepts a zero-based day-of-week index * (0 = Sunday ... 6 = Saturday). Returns true only if the * index is less than `DAYS_IN_WEEK`. - * + * * @return * True if valid day-of-week index */ @@ -336,14 +336,14 @@ struct GregorianCalendar final : /*! * @brief * Calculates day-of-week index for a given calendar date. - * + * * @details * Implements Tomohiko Sakamoto's algorithm to determine * the day of the week for the specified year, month, and * day combination. Returns a zero-based day-of-week index * (0 = Sunday ... 6 = Saturday), or `INVALID_DOW_INDEX` * if the provided date does not exist on the calendar. - * + * * @return * Day-of-week index */ @@ -373,11 +373,11 @@ struct GregorianCalendar final : /*! * @brief * Calculates day-of-week index for a given calendar date. - * + * * @details * Extracts the year, month, and day from the given `Date` * instance to compute the zero-based day-of-week index. - * + * * @return * Day-of-week index */ @@ -390,7 +390,7 @@ struct GregorianCalendar final : * @brief * Determines number of weeks a specified month spans * over the calendar. - * + * * @details * Calculates how many full or partial weeks are needed to * contain all days of the specified month in a standard @@ -398,7 +398,7 @@ struct GregorianCalendar final : * the month starts on and the total number of days in the * month. Returns 0 if the month is invalid or if the * provided year is unsupported. - * + * * @return * Number of weeks month spans */ @@ -420,12 +420,12 @@ struct GregorianCalendar final : * @brief * Determines number of weeks a calendar dates month * spans over the calendar. - * + * * @details * Extracts the year and month from the provided `Date` * instance to calculate the number of weeks a month * spans over the calendar. - * + * * @return * Number of weeks month spans */ @@ -438,13 +438,13 @@ struct GregorianCalendar final : * @brief * Converts a calendar date to serial number of days since * Unix epoch. - * + * * @details * Uses Howard Hinnant’s civil date algorithm to convert * a year, month, day combination into a signed day count * relative to the Unix epoch (1970-01-01 = day 0). The * result can be negative for dates before the epoch. - * + * * @return * Days since January 1, 1970 */ @@ -466,13 +466,13 @@ struct GregorianCalendar final : * @brief * Converts a calendar date to serial number of days since * Unix epoch. - * + * * @details * Extracts the date components from the provided `Date` * instance to calculate a signed day count relative to * the Unix epoch (1970-01-01 = day 0). The result can be * negative for dates before the epoch. - * + * * @return * Days since January 1, 1970 */ @@ -485,14 +485,14 @@ struct GregorianCalendar final : * @brief * Converts a serial count of days since Unix epoch to * a calendar date. - * + * * @details * Uses Howard Hinnant’s civil date algorithm to convert * a signed day count relative to the Unix epoch * (1970-01-01 = day 0) into a year, month, day combination. * Returns a `GregorianDate` representing the calculated * civil date. - * + * * @return * Gregorian calendar date */ @@ -516,7 +516,7 @@ struct GregorianCalendar final : * @brief * Converts a calendar date to a Unix timestamp (seconds * since epoch). - * + * * @details * Uses `toDaysSinceEpoch()` to calculate the number of * days since the Unix epoch (1970-01-01) and multiplies @@ -524,7 +524,7 @@ struct GregorianCalendar final : * equivalent timestamp in seconds. The returned value * is stored in `stl::UnixTimestamp` and may be negative * for dates before the epoch. - * + * * @return * Unix timestamp */ @@ -539,13 +539,13 @@ struct GregorianCalendar final : * @brief * Converts a calendar date to a Unix timestamp (seconds * since epoch). - * + * * @details * Extracts the date components from the provided `Date` * instance to calculate the corresponding Unix timestamp. * The returned value is stored in `stl::UnixTimestamp` * and may be negative for dates before the epoch. - * + * * @return * Unix timestamp */ @@ -558,14 +558,14 @@ struct GregorianCalendar final : * @brief * Converts a Unix timestamp (seconds since epoch) to a * calendar date. - * + * * @details * Divides the given `stl::UnixTimestamp` by the number * of seconds in a day to convert seconds to whole days * since the Unix epoch (1970-01-01), then calls * `fromDaysSinceEpoch()` to obtain the corresponding * calendar date. - * + * * @return * Gregorian calendar date */ @@ -579,7 +579,7 @@ struct GregorianCalendar final : * @brief * Converts a system clock time point to a local calendar * date. - * + * * @details * Interprets the given `stl::SystemTimePoint` as local * time by converting it to a Unix timestamp and then @@ -589,7 +589,7 @@ struct GregorianCalendar final : * construct and return a `GregorianDate`. If the local * date conversion fails a default constructed Gregorian * date is returned. - * + * * @return * Gregorian calendar date */ @@ -616,14 +616,14 @@ struct GregorianCalendar final : * @brief * Converts a system clock time point to a local calendar * date. - * + * * @details * If `local` is true (time-zone), interprets the given * `stl::SystemTimePoint` as local time. If `local` is false * (no time-zone), interprets the time point as UTC. If the * local date conversion fails a default constructed Gregorian * date is returned. - * + * * @return * Gregorian calendar date */ From cbaffba7d184031ecfcabdf969e1866e8e5988b5 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Fri, 15 Aug 2025 19:19:54 -0400 Subject: [PATCH 190/400] Update date_traits.hpp --- include/simplydt/calendar/type_traits/date_traits.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/simplydt/calendar/type_traits/date_traits.hpp b/include/simplydt/calendar/type_traits/date_traits.hpp index 202c431..50befcb 100644 --- a/include/simplydt/calendar/type_traits/date_traits.hpp +++ b/include/simplydt/calendar/type_traits/date_traits.hpp @@ -35,7 +35,7 @@ namespace simplydt::type_traits namespace simplydt::type_traits::date { -// TODO: INCOMPLETE!!! +//... } From bd0644215b880858bbf637d84b5da94d493038a7 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Fri, 15 Aug 2025 19:19:57 -0400 Subject: [PATCH 191/400] Update calendar_traits.hpp --- include/simplydt/calendar/type_traits/calendar_traits.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/simplydt/calendar/type_traits/calendar_traits.hpp b/include/simplydt/calendar/type_traits/calendar_traits.hpp index c79efd8..26241a6 100644 --- a/include/simplydt/calendar/type_traits/calendar_traits.hpp +++ b/include/simplydt/calendar/type_traits/calendar_traits.hpp @@ -26,7 +26,7 @@ namespace simplydt::type_traits::calendar { -// TODO: INCOMPLETE!!! +//... } From d56baecc82077f5d46b6ca6d723f62768deba126 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Fri, 15 Aug 2025 19:21:11 -0400 Subject: [PATCH 192/400] Update date_contract.hpp --- include/simplydt/calendar/concepts/date_contract.hpp | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/include/simplydt/calendar/concepts/date_contract.hpp b/include/simplydt/calendar/concepts/date_contract.hpp index 58ff971..21f2917 100644 --- a/include/simplydt/calendar/concepts/date_contract.hpp +++ b/include/simplydt/calendar/concepts/date_contract.hpp @@ -33,12 +33,9 @@ concept contract_abiding_date = requires { requires date::has_basic_state_methods; requires date::is_stream_out_compatible; requires date::has_date_literal_methods; - // TODO: INCOMPLETE!!! - // -> Type needs to be copy constructable - // -> Type needs to be copy assignable - // -> Type needs to be default constructable??? - // -> Type needs to be moveable? (Investment for container compatibility?) - // + requires std::default_initializable; + requires std::copyable; + requires std::destructible; }; } // namespace simplydt::concepts From 32a21110a58431e6735459945f7a8db0f9dc531c Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Fri, 15 Aug 2025 19:58:59 -0400 Subject: [PATCH 193/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index 213d387..c0cbeee 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -24,8 +24,9 @@ * -> [] ... * * -* -> [] static constexpr uint8_t getWeeksInMonth() <--- Returns whole weeks in month -* -> [] static constexpr uint8_t getWeeksSpanned() <--- Returns weeks spanned by month +* -> [] :: GregorianCalendar Static Methods :: +* -> [] static constexpr uint8_t getWeeksInMonth() <------ Returns whole weeks in month +* -> [] static constexpr uint8_t getWeeksMonthSpans() <--- Returns weeks spanned by month * \* /// \\\ /// \\\ /// | END | \\\ /// \\\ /// \\\ */ From 06bc0673e9eb8adbef46a1b39285394a5b32280d Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Fri, 15 Aug 2025 20:41:41 -0400 Subject: [PATCH 194/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index c0cbeee..d7cd219 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -6,12 +6,12 @@ * ~ CLI Debug Executable Notes / TO-DO List ~ * * -> [] :: Simply Datetime Time Units :: -* -> [] template struct TimeUnit { ... }; <---(Composes int32_t) +* -> [] template struct TimeUnit { ... }; <---(Composes int32_t) * -> [] (Present common functionality amongst units) * -> [] (Units interact with date/time types) * -> [] (Units can automatically convert from one another) * -* -> [] struct Days : public TimeUnit { ... }; +* -> [] struct Days : public TimeUnit { ... }; * -> [] struct Hours : public TimeUnit<1, 24> { ... }; * -> [] struct Minutes : public TimeUnit<1, 1'440> { ... }; * -> [] ... @@ -25,8 +25,19 @@ * * * -> [] :: GregorianCalendar Static Methods :: -* -> [] static constexpr uint8_t getWeeksInMonth() <------ Returns whole weeks in month -* -> [] static constexpr uint8_t getWeeksMonthSpans() <--- Returns weeks spanned by month +* -> [] static constexpr uint8_t getWeeksInMonth() <------(Returns whole weeks in month) +* -> [] static constexpr uint8_t getWeeksMonthSpans() <---(Returns weeks spanned by month) +* +* +* -> [] :: Common Time Definitions :: +* -> [] using Time_t = float; +* -> [] inline constexpr Time_t NOON = 0.5; +* -> [] inline constexpr Time_t MIDNIGHT = 0.0; +* -> [] ... +* +* +* -> [] :: Library Compile-Time Utilities :: +* -> [] template struct ArgParams<...>; <---(Holds argument parameter types) * \* /// \\\ /// \\\ /// | END | \\\ /// \\\ /// \\\ */ From 4582bc1cef4a2aa4f77898c3d02af1a604926ce6 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Fri, 15 Aug 2025 23:13:28 -0400 Subject: [PATCH 195/400] Update gregorian_date.hpp --- include/simplydt/calendar/gregorian/gregorian_date.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_date.hpp b/include/simplydt/calendar/gregorian/gregorian_date.hpp index 8ad26b5..b80831a 100644 --- a/include/simplydt/calendar/gregorian/gregorian_date.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_date.hpp @@ -41,7 +41,7 @@ namespace simplydt::gregorian * the real-world calendar. The calendar can verify * the validity of the date held by this type. */ -struct GregorianDate : public CalendarDate { +struct GregorianDate final : public CalendarDate { /*! @brief Underlying date representation type. */ using Repr_Type = uint32_t; From 8b107084dbe649b225d57450fef2a3bd580cadd9 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Fri, 15 Aug 2025 23:19:52 -0400 Subject: [PATCH 196/400] Update diagrams.drawio --- docs/prj/diagrams.drawio | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/docs/prj/diagrams.drawio b/docs/prj/diagrams.drawio index 15249d8..99bdad7 100644 --- a/docs/prj/diagrams.drawio +++ b/docs/prj/diagrams.drawio @@ -1,4 +1,4 @@ - + @@ -14,12 +14,12 @@ - + - - + + @@ -43,9 +43,6 @@ - - - @@ -55,17 +52,22 @@ - - - + + + + + + + + - + @@ -137,7 +139,7 @@ - + From ad82555282a2fac39e521eeed426ccf35ae5fb9b Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sat, 16 Aug 2025 00:22:32 -0400 Subject: [PATCH 197/400] Update abstract_date.hpp --- include/simplydt/calendar/date/abstract_date.hpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/include/simplydt/calendar/date/abstract_date.hpp b/include/simplydt/calendar/date/abstract_date.hpp index 49200a1..6d71665 100644 --- a/include/simplydt/calendar/date/abstract_date.hpp +++ b/include/simplydt/calendar/date/abstract_date.hpp @@ -43,6 +43,10 @@ struct CalendarDate { /*! @brief Date year type. */ using YearInt_t = Year_T; + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + */ [[nodiscard]] std::optional getComponent(const CalendarComponent component ) const { From e6fcd77b97849354b99492625a3a9aa1dc0a9a9d Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sat, 16 Aug 2025 01:49:08 -0400 Subject: [PATCH 198/400] Update diagrams.drawio --- docs/prj/diagrams.drawio | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/prj/diagrams.drawio b/docs/prj/diagrams.drawio index 99bdad7..606836c 100644 --- a/docs/prj/diagrams.drawio +++ b/docs/prj/diagrams.drawio @@ -63,6 +63,9 @@ + + + From 4ccebeae0f7238dd9bb26cd97386aaddc9f7aece Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sun, 17 Aug 2025 12:02:31 -0400 Subject: [PATCH 199/400] Update diagrams.drawio --- docs/prj/diagrams.drawio | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/prj/diagrams.drawio b/docs/prj/diagrams.drawio index 606836c..f4da91a 100644 --- a/docs/prj/diagrams.drawio +++ b/docs/prj/diagrams.drawio @@ -66,6 +66,9 @@ + + + From 54e3d0c9456f53099d571d2ef9c94adbe6430a4f Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sun, 17 Aug 2025 12:08:57 -0400 Subject: [PATCH 200/400] Create time_defs.hpp --- include/simplydt/common/time_defs.hpp | 63 +++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 include/simplydt/common/time_defs.hpp diff --git a/include/simplydt/common/time_defs.hpp b/include/simplydt/common/time_defs.hpp new file mode 100644 index 0000000..e5a11da --- /dev/null +++ b/include/simplydt/common/time_defs.hpp @@ -0,0 +1,63 @@ + +// Copyright (C) 2026 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. +// Released under the terms of the GNU Affero General Public License version 3. + +// [ISJTB-CXX-XL20230401-000001] + +/*! + * @file time_defs.hpp + * + * @brief + * General time definitions. + */ + + +#ifndef SIMPLYDT_LIB_GENERAL_TIME_DEFINITIONS_H_ +#define SIMPLYDT_LIB_GENERAL_TIME_DEFINITIONS_H_ + +#include "simplydt/common/simplydt_defs.hpp" +#include + +namespace simplydt +{ + +/*! + * @brief + * Time representation type. + * + * @details + * The underlying type used to represent temporal + * time. Optimal for second precision. + */ +using Time_t = uint32_t; + +/*! @brief Total number of seconds in one day. */ +constexpr uint32_t SECONDS_IN_DAY = 86'400; + +/*! @brief Total number of seconds in one hour. */ +constexpr uint16_t SECONDS_IN_HOUR = 3'600; + +/*! @brief Total number of seconds in one minute. */ +constexpr uint8_t SECONDS_IN_MINUTE = 60; + +/*! @brief Total number of minutes in one day. */ +constexpr uint16_t MINUTES_IN_DAY = 1'440; + +/*! @brief Total number of minutes in one hour. */ +constexpr uint8_t MINUTES_IN_HOUR = 60; + +/*! @brief Total number of hours in one day. */ +constexpr uint8_t HOURS_IN_DAY = 24; + +/*! @brief Midnight (00:00:00 AM). */ +constexpr Time_t MIDNIGHT = 0; + +/*! @brief Noon (12:00:00 PM). */ +constexpr Time_t NOON = SECONDS_IN_DAY / 2; + +/*! @brief End of day (23:59:59 PM) */ +constexpr Time_t TIME_MAX = SECONDS_IN_DAY - 1; + +} // namespace simplydt + +#endif // SIMPLYDT_LIB_GENERAL_TIME_DEFINITIONS_H_ From 7e2400d02a55ee8e8adfdb049d14160bcd29b107 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sun, 17 Aug 2025 23:29:52 -0400 Subject: [PATCH 201/400] Create time_math.hpp --- include/simplydt/time/time_math.hpp | 107 ++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 include/simplydt/time/time_math.hpp diff --git a/include/simplydt/time/time_math.hpp b/include/simplydt/time/time_math.hpp new file mode 100644 index 0000000..eec2df4 --- /dev/null +++ b/include/simplydt/time/time_math.hpp @@ -0,0 +1,107 @@ + +// Copyright (C) 2026 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. +// Released under the terms of the GNU Affero General Public License version 3. + +// [ISJTB-CXX-XL20230401-000001] + +/*! + * @file time_math.hpp + * + * @brief + * Temporal time math operations utility. + */ + + +#ifndef SIMPLYDT_LIB_TEMPORAL_TIME_MATH_H_ +#define SIMPLYDT_LIB_TEMPORAL_TIME_MATH_H_ + +#include "simplydt/common/time_defs.hpp" +#include + +namespace simplydt +{ + +/*! + * @brief + * Time calculator structure. + */ +struct TimeCalc final { + /*! + * @brief + * Converts an hour, minute, and second combination to + * a serial count of seconds since start of day. + * + * @return + * Seconds since start of day + */ + [[nodiscard]] static constexpr Time_t timeToSerialSecs( + const uint8_t hr, const uint8_t min, const uint8_t sec + ) noexcept + { + if ((hr >= HOURS_IN_DAY) || (min >= MINUTES_IN_HOUR) || (sec >= SECONDS_IN_MINUTE)) + return MIDNIGHT; // Invalid time parameters + + const uint32_t secsSinceMidnight = + (hr * SECONDS_IN_HOUR) + (min * SECONDS_IN_MINUTE) + sec; + return static_cast(secsSinceMidnight); + } + + /*! + * @brief + * Calculates hour of time from serial count of + * seconds since start of day. + * + * @return + * Time hour component + */ + [[nodiscard]] static constexpr uint8_t hourFromSerialSecs(const Time_t secs_in_day + ) noexcept + { + if (secs_in_day >= SECONDS_IN_DAY) + return 0; // Invalid serial seconds count + + return static_cast(secs_in_day / SECONDS_IN_HOUR); + } + + /*! + * @brief + * Calculates minute of time from serial count of + * seconds since start of day. + * + * @return + * Time minute component + */ + [[nodiscard]] static constexpr uint8_t minuteFromSerialSecs(const Time_t secs_in_day + ) noexcept + { + if (secs_in_day >= SECONDS_IN_DAY) + return 0; // Invalid serial seconds count + + return static_cast((secs_in_day % SECONDS_IN_HOUR) / SECONDS_IN_MINUTE); + } + + /*! + * @brief + * Calculates second of time from serial count of + * seconds since start of day. + * + * @return + * Time second component + */ + [[nodiscard]] static constexpr uint8_t secondFromSerialSecs(const Time_t secs_in_day + ) noexcept + { + if (secs_in_day >= SECONDS_IN_DAY) + return 0; // Invalid serial seconds count + + return static_cast(secs_in_day % SECONDS_IN_MINUTE); + } + + private: + TimeCalc() = delete; + ~TimeCalc() = delete; +}; + +} // namespace simplydt + +#endif // SIMPLYDT_LIB_TEMPORAL_TIME_MATH_H_ From 75942509a14bce008b45d8dc19868a339d9c8113 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sun, 17 Aug 2025 23:30:35 -0400 Subject: [PATCH 202/400] Create abstract_time.hpp --- include/simplydt/time/abstract_time.hpp | 63 +++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 include/simplydt/time/abstract_time.hpp diff --git a/include/simplydt/time/abstract_time.hpp b/include/simplydt/time/abstract_time.hpp new file mode 100644 index 0000000..21d53eb --- /dev/null +++ b/include/simplydt/time/abstract_time.hpp @@ -0,0 +1,63 @@ + +// Copyright (C) 2026 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. +// Released under the terms of the GNU Affero General Public License version 3. + +// [ISJTB-CXX-XL20230401-000001] + +/*! + * @file abstract_time.hpp + * + * @brief + * Base CRTP time declaration. + */ + + +#ifndef SIMPLYDT_LIB_BASE_TEMPORAL_TIME_H_ +#define SIMPLYDT_LIB_BASE_TEMPORAL_TIME_H_ + +#include "simplydt/common/time_defs.hpp" +#include "simplydt/time/time_math.hpp" + +namespace simplydt +{ + +template +struct TimeSystem { + /*! @brief Time system implementation. */ + using Time = Time_Impl; + /*! @brief Underlying time representation type. */ + using Repr_Type = Integer_T; + + /*! + * @brief + * Intercepts invalid time-in-day values and returns + * midnight (00:00:00 AM). + * + * @return + * Provided time-in-day value, midnight otherwise + */ + [[nodiscard]] static constexpr Repr_Type useDefaultIfInvalid(const Repr_Type& time_in_day + ) noexcept + { + return time_in_day >= Time::FULL_DAY ? MIDNIGHT : time_in_day; + } + + private: + TimeSystem() = default; + ~TimeSystem() = default; + friend Time_Impl; + + [[nodiscard]] const Time& thisImpl() const noexcept + { + return static_cast(*this); + } + + [[nodiscard]] Time& thisImpl() noexcept + { + return static_cast(*this); + } +}; + +} // namespace simplydt + +#endif // SIMPLYDT_LIB_BASE_TEMPORAL_TIME_H_ From ac893e3a54d8b44ac6b5ec606866f6fce5422282 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sun, 17 Aug 2025 23:31:28 -0400 Subject: [PATCH 203/400] Create utc_defs.hpp --- include/simplydt/time/utc/utc_defs.hpp | 36 ++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 include/simplydt/time/utc/utc_defs.hpp diff --git a/include/simplydt/time/utc/utc_defs.hpp b/include/simplydt/time/utc/utc_defs.hpp new file mode 100644 index 0000000..a39f569 --- /dev/null +++ b/include/simplydt/time/utc/utc_defs.hpp @@ -0,0 +1,36 @@ + +// Copyright (C) 2026 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. +// Released under the terms of the GNU Affero General Public License version 3. + +// [ISJTB-CXX-XL20230401-000001] + +/*! + * @file utc_defs.hpp + * + * @brief + * Coordinated Universal Time (UTC) system + * definitions. + */ + + +#ifndef SIMPLYDT_LIB_COORDINATED_UNIVERSAL_TIME_DEFINITIONS_H_ +#define SIMPLYDT_LIB_COORDINATED_UNIVERSAL_TIME_DEFINITIONS_H_ + +#include +#include +#include + +/*! + * @namespace simplydt::utc + * + * @brief + * Coordinated Universal Time (UTC) system. + */ +namespace simplydt::utc +{ + +// + +} // namespace simplydt::utc + +#endif // SIMPLYDT_LIB_COORDINATED_UNIVERSAL_TIME_DEFINITIONS_H_ From d325ac1d1dee8be851fb005289885b0f688f096d Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sun, 17 Aug 2025 23:31:37 -0400 Subject: [PATCH 204/400] Create utc_time.hpp --- include/simplydt/time/utc/utc_time.hpp | 103 +++++++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 include/simplydt/time/utc/utc_time.hpp diff --git a/include/simplydt/time/utc/utc_time.hpp b/include/simplydt/time/utc/utc_time.hpp new file mode 100644 index 0000000..c0abf18 --- /dev/null +++ b/include/simplydt/time/utc/utc_time.hpp @@ -0,0 +1,103 @@ + +// Copyright (C) 2026 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. +// Released under the terms of the GNU Affero General Public License version 3. + +// [ISJTB-CXX-XL20230401-000001] + +/*! + * @file utc_time.hpp + * + * @brief + * Coordinated Universal Time (UTC) declaration. + */ + + +#ifndef SIMPLYDT_LIB_COORDINATED_UNIVERSAL_TIME_STRUCT_H_ +#define SIMPLYDT_LIB_COORDINATED_UNIVERSAL_TIME_STRUCT_H_ + +#include "simplydt/time/abstract_time.hpp" +#include "simplydt/time/concepts/time_api_contract.hpp" +#include "simplydt/time/utc/utc_defs.hpp" + +namespace simplydt::utc +{ + +struct UTCTime final : public TimeSystem { + /*! @brief One complete day. */ + static constexpr Time_t FULL_DAY = SECONDS_IN_DAY; + + /*! + * @brief + * Construct UTC time using hour, minute, and second + * values. + */ + constexpr UTCTime(const uint8_t hour, const uint8_t minute, const uint8_t second) noexcept + : TimeSystem{}, + timeInDay{useDefaultIfInvalid(TimeCalc::timeToSerialSecs(hour, minute, second))} + { + // + } + + /*! + * @brief + * Construct UTC time using hour and minute values; + * assume second = 0. + */ + constexpr UTCTime(const uint8_t hour, const uint8_t minute) noexcept + : TimeSystem{}, + timeInDay{useDefaultIfInvalid(TimeCalc::timeToSerialSecs(hour, minute, 0))} + { + // + } + + /*! + * @brief + * Construct UTC time using an hour value; assume + * minute and second = 0. + */ + explicit constexpr UTCTime(const uint8_t hour) noexcept + : TimeSystem{}, + timeInDay{useDefaultIfInvalid(TimeCalc::timeToSerialSecs(hour, 0, 0))} + { + // + } + + /*! + * @brief + * Construct default UTC time (midnight). + */ + constexpr UTCTime() noexcept : TimeSystem{}, timeInDay{MIDNIGHT} + { + // + } + + ~UTCTime() = default; + + friend inline std::ostream& operator<<(std::ostream& os, const UTCTime time) noexcept + { + // TODO: INCOMPLETE!!! + return os; + } + + [[nodiscard]] constexpr uint8_t hour() const noexcept + { + return TimeCalc::hourFromSerialSecs(this->timeInDay); + } + + [[nodiscard]] constexpr uint8_t minute() const noexcept + { + return TimeCalc::minuteFromSerialSecs(this->timeInDay); + } + + [[nodiscard]] constexpr uint8_t second() const noexcept + { + return TimeCalc::secondFromSerialSecs(this->timeInDay); + } + + private: + Time_t timeInDay; ///< Time of day +}; + +} // namespace simplydt::utc + +#endif // SIMPLYDT_LIB_COORDINATED_UNIVERSAL_TIME_STRUCT_H_ From f7cdc956652a20f4dcf4313a6d3f7f71fb2d68ee Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sun, 17 Aug 2025 23:33:08 -0400 Subject: [PATCH 205/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index d7cd219..d5aa0c0 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -30,10 +30,8 @@ * * * -> [] :: Common Time Definitions :: -* -> [] using Time_t = float; -* -> [] inline constexpr Time_t NOON = 0.5; -* -> [] inline constexpr Time_t MIDNIGHT = 0.0; -* -> [] ... +* -> [] using ExTime_t = uint64_t; +* -> [] constexpr ExTime_t EX_TIME_MAX = NANOSECS_IN_DAY - 1; * * * -> [] :: Library Compile-Time Utilities :: @@ -43,6 +41,8 @@ // Includes... #include "simplydt/calendar/gregorian/gregorian_calendar.hpp" +#include "simplydt/time/utc/utc_time.hpp" +#include "simplydt/common/time_defs.hpp" int main(int argc, char* argv[]) { @@ -53,6 +53,7 @@ int main(int argc, char* argv[]) using GregorianCalendar = simplydt::gregorian::GregorianCalendar; using Month = simplydt::gregorian::Month; using UnixTimestamp = simplydt::stl::UnixTimestamp; + using UTCTime = simplydt::utc::UTCTime; constexpr GregorianDate demo{2'025, 8, 15}; std::cout << "\nDemo date: " << demo << '\n'; @@ -75,6 +76,12 @@ int main(int argc, char* argv[]) const GregorianDate bzr = GregorianCalendar::fromTimePoint(std::chrono::system_clock::now(), false); std::cout << bzr << '\n'; + + constexpr UTCTime dvq = UTCTime{14, 37, 48}; + // constexpr bool eqlTst = dvq == dvq; + constexpr uint8_t hr = dvq.hour(); + constexpr uint8_t min = dvq.minute(); + constexpr uint8_t sec = dvq.second(); // std::cout << "\n\n\t[ Complete ]" << std::endl; From 32aa544d57d37f04786cb863c378c443d5f3a75b Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sun, 17 Aug 2025 23:42:09 -0400 Subject: [PATCH 206/400] Update diagrams.drawio --- docs/prj/diagrams.drawio | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/docs/prj/diagrams.drawio b/docs/prj/diagrams.drawio index f4da91a..64554bb 100644 --- a/docs/prj/diagrams.drawio +++ b/docs/prj/diagrams.drawio @@ -14,7 +14,7 @@ - + @@ -52,9 +52,6 @@ - - - @@ -63,11 +60,11 @@ - - + + - - + + From ef8c3842cef245488d1aa69f50a0eaf7b2703497 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sun, 17 Aug 2025 23:58:04 -0400 Subject: [PATCH 207/400] Update abstract_time.hpp --- include/simplydt/time/abstract_time.hpp | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/include/simplydt/time/abstract_time.hpp b/include/simplydt/time/abstract_time.hpp index 21d53eb..94544dc 100644 --- a/include/simplydt/time/abstract_time.hpp +++ b/include/simplydt/time/abstract_time.hpp @@ -8,7 +8,7 @@ * @file abstract_time.hpp * * @brief - * Base CRTP time declaration. + * Base time system declaration. */ @@ -28,20 +28,6 @@ struct TimeSystem { /*! @brief Underlying time representation type. */ using Repr_Type = Integer_T; - /*! - * @brief - * Intercepts invalid time-in-day values and returns - * midnight (00:00:00 AM). - * - * @return - * Provided time-in-day value, midnight otherwise - */ - [[nodiscard]] static constexpr Repr_Type useDefaultIfInvalid(const Repr_Type& time_in_day - ) noexcept - { - return time_in_day >= Time::FULL_DAY ? MIDNIGHT : time_in_day; - } - private: TimeSystem() = default; ~TimeSystem() = default; From 961cd98365a15ad015addef002f764a4eb5c4958 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sun, 17 Aug 2025 23:58:12 -0400 Subject: [PATCH 208/400] Update utc_time.hpp --- include/simplydt/time/utc/utc_time.hpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/include/simplydt/time/utc/utc_time.hpp b/include/simplydt/time/utc/utc_time.hpp index c0abf18..1d91cc6 100644 --- a/include/simplydt/time/utc/utc_time.hpp +++ b/include/simplydt/time/utc/utc_time.hpp @@ -26,6 +26,20 @@ struct UTCTime final : public TimeSystem { /*! @brief One complete day. */ static constexpr Time_t FULL_DAY = SECONDS_IN_DAY; + /*! + * @brief + * Intercepts invalid time-in-day values and returns + * midnight (00:00:00 AM). + * + * @return + * Provided time-in-day value, midnight otherwise + */ + [[nodiscard]] static constexpr Time_t useDefaultIfInvalid(const Time_t& time_in_day + ) noexcept + { + return time_in_day >= FULL_DAY ? MIDNIGHT : time_in_day; + } + /*! * @brief * Construct UTC time using hour, minute, and second From 28990d8bd38c9f03b75e369fe5326040d2035e07 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sun, 17 Aug 2025 23:59:07 -0400 Subject: [PATCH 209/400] Update abstract_date.hpp --- include/simplydt/calendar/date/abstract_date.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/simplydt/calendar/date/abstract_date.hpp b/include/simplydt/calendar/date/abstract_date.hpp index 6d71665..4e70f8e 100644 --- a/include/simplydt/calendar/date/abstract_date.hpp +++ b/include/simplydt/calendar/date/abstract_date.hpp @@ -8,7 +8,7 @@ * @file abstract_date.hpp * * @brief - * Base CRTP calendar date declaration. + * Abstract calendar date declaration. */ From d19f0e684d75b5419462b601a8ca9a540ce98564 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sun, 17 Aug 2025 23:59:11 -0400 Subject: [PATCH 210/400] Update abstract_time.hpp --- include/simplydt/time/abstract_time.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/simplydt/time/abstract_time.hpp b/include/simplydt/time/abstract_time.hpp index 94544dc..ed45d29 100644 --- a/include/simplydt/time/abstract_time.hpp +++ b/include/simplydt/time/abstract_time.hpp @@ -8,7 +8,7 @@ * @file abstract_time.hpp * * @brief - * Base time system declaration. + * Abstract time system declaration. */ From 3e6b209b1402257a4111f6f2a09250b22039c354 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 18 Aug 2025 00:00:29 -0400 Subject: [PATCH 211/400] Update abstract_time.hpp --- include/simplydt/time/abstract_time.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/simplydt/time/abstract_time.hpp b/include/simplydt/time/abstract_time.hpp index ed45d29..614e246 100644 --- a/include/simplydt/time/abstract_time.hpp +++ b/include/simplydt/time/abstract_time.hpp @@ -21,12 +21,12 @@ namespace simplydt { -template +template struct TimeSystem { /*! @brief Time system implementation. */ using Time = Time_Impl; /*! @brief Underlying time representation type. */ - using Repr_Type = Integer_T; + using Repr_Type = Repr_T; private: TimeSystem() = default; From 79816eb2e9197adbfed890b1fbaf895d7efdbdee Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 18 Aug 2025 00:42:56 -0400 Subject: [PATCH 212/400] Delete time_math.hpp --- include/simplydt/time/time_math.hpp | 107 ---------------------------- 1 file changed, 107 deletions(-) delete mode 100644 include/simplydt/time/time_math.hpp diff --git a/include/simplydt/time/time_math.hpp b/include/simplydt/time/time_math.hpp deleted file mode 100644 index eec2df4..0000000 --- a/include/simplydt/time/time_math.hpp +++ /dev/null @@ -1,107 +0,0 @@ - -// Copyright (C) 2026 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. -// Released under the terms of the GNU Affero General Public License version 3. - -// [ISJTB-CXX-XL20230401-000001] - -/*! - * @file time_math.hpp - * - * @brief - * Temporal time math operations utility. - */ - - -#ifndef SIMPLYDT_LIB_TEMPORAL_TIME_MATH_H_ -#define SIMPLYDT_LIB_TEMPORAL_TIME_MATH_H_ - -#include "simplydt/common/time_defs.hpp" -#include - -namespace simplydt -{ - -/*! - * @brief - * Time calculator structure. - */ -struct TimeCalc final { - /*! - * @brief - * Converts an hour, minute, and second combination to - * a serial count of seconds since start of day. - * - * @return - * Seconds since start of day - */ - [[nodiscard]] static constexpr Time_t timeToSerialSecs( - const uint8_t hr, const uint8_t min, const uint8_t sec - ) noexcept - { - if ((hr >= HOURS_IN_DAY) || (min >= MINUTES_IN_HOUR) || (sec >= SECONDS_IN_MINUTE)) - return MIDNIGHT; // Invalid time parameters - - const uint32_t secsSinceMidnight = - (hr * SECONDS_IN_HOUR) + (min * SECONDS_IN_MINUTE) + sec; - return static_cast(secsSinceMidnight); - } - - /*! - * @brief - * Calculates hour of time from serial count of - * seconds since start of day. - * - * @return - * Time hour component - */ - [[nodiscard]] static constexpr uint8_t hourFromSerialSecs(const Time_t secs_in_day - ) noexcept - { - if (secs_in_day >= SECONDS_IN_DAY) - return 0; // Invalid serial seconds count - - return static_cast(secs_in_day / SECONDS_IN_HOUR); - } - - /*! - * @brief - * Calculates minute of time from serial count of - * seconds since start of day. - * - * @return - * Time minute component - */ - [[nodiscard]] static constexpr uint8_t minuteFromSerialSecs(const Time_t secs_in_day - ) noexcept - { - if (secs_in_day >= SECONDS_IN_DAY) - return 0; // Invalid serial seconds count - - return static_cast((secs_in_day % SECONDS_IN_HOUR) / SECONDS_IN_MINUTE); - } - - /*! - * @brief - * Calculates second of time from serial count of - * seconds since start of day. - * - * @return - * Time second component - */ - [[nodiscard]] static constexpr uint8_t secondFromSerialSecs(const Time_t secs_in_day - ) noexcept - { - if (secs_in_day >= SECONDS_IN_DAY) - return 0; // Invalid serial seconds count - - return static_cast(secs_in_day % SECONDS_IN_MINUTE); - } - - private: - TimeCalc() = delete; - ~TimeCalc() = delete; -}; - -} // namespace simplydt - -#endif // SIMPLYDT_LIB_TEMPORAL_TIME_MATH_H_ From 48f4e5d0c46d403ac32ad1ed1750ade8400953dd Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 18 Aug 2025 00:43:09 -0400 Subject: [PATCH 213/400] Update time_defs.hpp --- include/simplydt/common/time_defs.hpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/include/simplydt/common/time_defs.hpp b/include/simplydt/common/time_defs.hpp index e5a11da..03d2f13 100644 --- a/include/simplydt/common/time_defs.hpp +++ b/include/simplydt/common/time_defs.hpp @@ -49,13 +49,13 @@ constexpr uint8_t MINUTES_IN_HOUR = 60; /*! @brief Total number of hours in one day. */ constexpr uint8_t HOURS_IN_DAY = 24; -/*! @brief Midnight (00:00:00 AM). */ +/*! @brief Midnight in serial seconds (00:00:00 AM). */ constexpr Time_t MIDNIGHT = 0; -/*! @brief Noon (12:00:00 PM). */ +/*! @brief Noon in serial seconds (12:00:00 PM). */ constexpr Time_t NOON = SECONDS_IN_DAY / 2; -/*! @brief End of day (23:59:59 PM) */ +/*! @brief End of day in serial seconds (23:59:59 PM) */ constexpr Time_t TIME_MAX = SECONDS_IN_DAY - 1; } // namespace simplydt From 8c2f8ac9dea507c1ac37de8f010ccd8ae4d53273 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 18 Aug 2025 00:43:27 -0400 Subject: [PATCH 214/400] Update abstract_time.hpp --- include/simplydt/time/abstract_time.hpp | 74 ++++++++++++++++++++++++- 1 file changed, 73 insertions(+), 1 deletion(-) diff --git a/include/simplydt/time/abstract_time.hpp b/include/simplydt/time/abstract_time.hpp index 614e246..ad7a71b 100644 --- a/include/simplydt/time/abstract_time.hpp +++ b/include/simplydt/time/abstract_time.hpp @@ -16,7 +16,6 @@ #define SIMPLYDT_LIB_BASE_TEMPORAL_TIME_H_ #include "simplydt/common/time_defs.hpp" -#include "simplydt/time/time_math.hpp" namespace simplydt { @@ -25,9 +24,82 @@ template struct TimeSystem { /*! @brief Time system implementation. */ using Time = Time_Impl; + /*! @brief Time system base class. */ + using Base = TimeSystem; /*! @brief Underlying time representation type. */ using Repr_Type = Repr_T; + /*! + * @brief + * Converts an hour, minute, and second combination to + * a serial count of seconds since start of day. + * + * @return + * Seconds since start of day + */ + [[nodiscard]] static constexpr Time_t toSerialSeconds( + const uint8_t hr, const uint8_t min, const uint8_t sec + ) noexcept + { + if ((hr >= HOURS_IN_DAY) || (min >= MINUTES_IN_HOUR) || (sec >= SECONDS_IN_MINUTE)) + return MIDNIGHT; // Invalid time parameters + + const uint32_t secsSinceMidnight = + (hr * SECONDS_IN_HOUR) + (min * SECONDS_IN_MINUTE) + sec; + return static_cast(secsSinceMidnight); + } + + /*! + * @brief + * Calculates hour of time from serial count of + * seconds since start of day. + * + * @return + * Time hour component + */ + [[nodiscard]] static constexpr uint8_t hourFromSerialSecs(const Time_t secs_in_day + ) noexcept + { + if (secs_in_day >= SECONDS_IN_DAY) + return 0; // Invalid serial seconds count + + return static_cast(secs_in_day / SECONDS_IN_HOUR); + } + + /*! + * @brief + * Calculates minute of time from serial count of + * seconds since start of day. + * + * @return + * Time minute component + */ + [[nodiscard]] static constexpr uint8_t minuteFromSerialSecs(const Time_t secs_in_day + ) noexcept + { + if (secs_in_day >= SECONDS_IN_DAY) + return 0; // Invalid serial seconds count + + return static_cast((secs_in_day % SECONDS_IN_HOUR) / SECONDS_IN_MINUTE); + } + + /*! + * @brief + * Calculates second of time from serial count of + * seconds since start of day. + * + * @return + * Time second component + */ + [[nodiscard]] static constexpr uint8_t secondFromSerialSecs(const Time_t secs_in_day + ) noexcept + { + if (secs_in_day >= SECONDS_IN_DAY) + return 0; // Invalid serial seconds count + + return static_cast(secs_in_day % SECONDS_IN_MINUTE); + } + private: TimeSystem() = default; ~TimeSystem() = default; From a3e1f58b47c02e133ac0ac6c39ee8f169da679af Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 18 Aug 2025 00:44:07 -0400 Subject: [PATCH 215/400] Update utc_time.hpp --- include/simplydt/time/utc/utc_time.hpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/include/simplydt/time/utc/utc_time.hpp b/include/simplydt/time/utc/utc_time.hpp index 1d91cc6..66cf6d2 100644 --- a/include/simplydt/time/utc/utc_time.hpp +++ b/include/simplydt/time/utc/utc_time.hpp @@ -28,16 +28,16 @@ struct UTCTime final : public TimeSystem { /*! * @brief - * Intercepts invalid time-in-day values and returns + * Intercepts invalid serial seconds values and returns * midnight (00:00:00 AM). * * @return - * Provided time-in-day value, midnight otherwise + * Midnight if invalid, provided time-in-day value otherwise */ [[nodiscard]] static constexpr Time_t useDefaultIfInvalid(const Time_t& time_in_day ) noexcept { - return time_in_day >= FULL_DAY ? MIDNIGHT : time_in_day; + return time_in_day >= SECONDS_IN_DAY ? MIDNIGHT : time_in_day; } /*! @@ -47,7 +47,7 @@ struct UTCTime final : public TimeSystem { */ constexpr UTCTime(const uint8_t hour, const uint8_t minute, const uint8_t second) noexcept : TimeSystem{}, - timeInDay{useDefaultIfInvalid(TimeCalc::timeToSerialSecs(hour, minute, second))} + timeInDay{Base::toSerialSeconds(hour, minute, second)} { // } @@ -59,7 +59,7 @@ struct UTCTime final : public TimeSystem { */ constexpr UTCTime(const uint8_t hour, const uint8_t minute) noexcept : TimeSystem{}, - timeInDay{useDefaultIfInvalid(TimeCalc::timeToSerialSecs(hour, minute, 0))} + timeInDay{Base::toSerialSeconds(hour, minute, 0)} { // } @@ -71,7 +71,7 @@ struct UTCTime final : public TimeSystem { */ explicit constexpr UTCTime(const uint8_t hour) noexcept : TimeSystem{}, - timeInDay{useDefaultIfInvalid(TimeCalc::timeToSerialSecs(hour, 0, 0))} + timeInDay{Base::toSerialSeconds(hour, 0, 0)} { // } @@ -95,17 +95,17 @@ struct UTCTime final : public TimeSystem { [[nodiscard]] constexpr uint8_t hour() const noexcept { - return TimeCalc::hourFromSerialSecs(this->timeInDay); + return Base::hourFromSerialSecs(this->timeInDay); } [[nodiscard]] constexpr uint8_t minute() const noexcept { - return TimeCalc::minuteFromSerialSecs(this->timeInDay); + return Base::minuteFromSerialSecs(this->timeInDay); } [[nodiscard]] constexpr uint8_t second() const noexcept { - return TimeCalc::secondFromSerialSecs(this->timeInDay); + return Base::secondFromSerialSecs(this->timeInDay); } private: From 1d3f6f502dc0c0b5d7722f07e4d411910a375f49 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 18 Aug 2025 01:40:47 -0400 Subject: [PATCH 216/400] Update utc_time.hpp --- include/simplydt/time/utc/utc_time.hpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/include/simplydt/time/utc/utc_time.hpp b/include/simplydt/time/utc/utc_time.hpp index 66cf6d2..173511e 100644 --- a/include/simplydt/time/utc/utc_time.hpp +++ b/include/simplydt/time/utc/utc_time.hpp @@ -18,6 +18,7 @@ #include "simplydt/time/abstract_time.hpp" #include "simplydt/time/concepts/time_api_contract.hpp" #include "simplydt/time/utc/utc_defs.hpp" +#include "simplydt/time/units/time_units.hpp" namespace simplydt::utc { @@ -76,6 +77,13 @@ struct UTCTime final : public TimeSystem { // } + constexpr UTCTime(const Seconds secs_in_day) noexcept + : TimeSystem{}, + timeInDay{useDefaultIfInvalid(secs_in_day.count())} + { + // + } + /*! * @brief * Construct default UTC time (midnight). From a2ac35640312a5a0de9663303cb265b1bf1848fb Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 18 Aug 2025 01:40:56 -0400 Subject: [PATCH 217/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index d5aa0c0..835c0ec 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -78,6 +78,7 @@ int main(int argc, char* argv[]) std::cout << bzr << '\n'; constexpr UTCTime dvq = UTCTime{14, 37, 48}; + constexpr UTCTime gbx = UTCTime{simplydt::Seconds{68}}; // constexpr bool eqlTst = dvq == dvq; constexpr uint8_t hr = dvq.hour(); constexpr uint8_t min = dvq.minute(); From e5bf98ab546a66ae960df069f758dd2249af6dd3 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 18 Aug 2025 01:41:08 -0400 Subject: [PATCH 218/400] Create time_units.hpp --- include/simplydt/time/units/time_units.hpp | 38 ++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 include/simplydt/time/units/time_units.hpp diff --git a/include/simplydt/time/units/time_units.hpp b/include/simplydt/time/units/time_units.hpp new file mode 100644 index 0000000..91e3ff3 --- /dev/null +++ b/include/simplydt/time/units/time_units.hpp @@ -0,0 +1,38 @@ + +// Copyright (C) 2026 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. +// Released under the terms of the GNU Affero General Public License version 3. + +// [ISJTB-CXX-XL20230401-000001] + +/*! + * @file time_units.hpp + * + * @brief + * Aliases of individual units of time. + */ + + +#ifndef SIMPLYDT_LIB_TIME_UNITS_H_ +#define SIMPLYDT_LIB_TIME_UNITS_H_ + +#include "simplydt/common/time_defs.hpp" +#include + +namespace simplydt +{ + +/*! @brief Seconds time unit. */ +using Seconds = std::chrono::duration>; + +/*! @brief Minutes time unit. */ +using Minutes = std::chrono::duration>; + +/*! @brief Hours time unit. */ +using Hours = std::chrono::duration>; + +/*! @brief Days time unit. */ +using Days = std::chrono::duration>; + +} // namespace simplydt + +#endif // SIMPLYDT_LIB_TIME_UNITS_H_ From 0576f71a33fe114cc4444345d4f181ce34896d48 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 18 Aug 2025 04:48:26 -0400 Subject: [PATCH 219/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index 835c0ec..d3b5aaa 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -78,11 +78,13 @@ int main(int argc, char* argv[]) std::cout << bzr << '\n'; constexpr UTCTime dvq = UTCTime{14, 37, 48}; - constexpr UTCTime gbx = UTCTime{simplydt::Seconds{68}}; + constexpr UTCTime gbx = UTCTime{simplydt::Hours{23} + simplydt::Minutes{15}}; // constexpr bool eqlTst = dvq == dvq; constexpr uint8_t hr = dvq.hour(); constexpr uint8_t min = dvq.minute(); constexpr uint8_t sec = dvq.second(); + + constexpr simplydt::Seconds evv = simplydt::Minutes{1} + simplydt::Seconds{14}; // std::cout << "\n\n\t[ Complete ]" << std::endl; From cfc2d0d0b60d61f13fb8465128c002c21d8199ff Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 18 Aug 2025 05:00:54 -0400 Subject: [PATCH 220/400] Create time_concepts.hpp --- .../simplydt/time/concepts/time_concepts.hpp | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 include/simplydt/time/concepts/time_concepts.hpp diff --git a/include/simplydt/time/concepts/time_concepts.hpp b/include/simplydt/time/concepts/time_concepts.hpp new file mode 100644 index 0000000..5a0ca4e --- /dev/null +++ b/include/simplydt/time/concepts/time_concepts.hpp @@ -0,0 +1,33 @@ + +// Copyright (C) 2026 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. +// Released under the terms of the GNU Affero General Public License version 3. + +// [ISJTB-CXX-XL20230401-000001] + +/*! + * @file time_concepts.hpp + * + * @brief + * Agnostic temporal time concepts. + */ + + +#ifndef SIMPLYDT_LIB_TEMPORAL_TIME_CONCEPTS_H_ +#define SIMPLYDT_LIB_TEMPORAL_TIME_CONCEPTS_H_ + +//... + +/*! + * @namespace simplydt::concepts::time + * + * @brief + * Temporal time concepts. + */ +namespace simplydt::concepts::time +{ + +//... + +} // namespace simplydt::concepts::time + +#endif // SIMPLYDT_LIB_TEMPORAL_TIME_CONCEPTS_H_ From d66f9a45fde8b3b1de9df0d4cb9dbfa38ab5cb13 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 18 Aug 2025 05:00:58 -0400 Subject: [PATCH 221/400] Create time_api_contract.hpp --- .../time/concepts/time_api_contract.hpp | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 include/simplydt/time/concepts/time_api_contract.hpp diff --git a/include/simplydt/time/concepts/time_api_contract.hpp b/include/simplydt/time/concepts/time_api_contract.hpp new file mode 100644 index 0000000..c47dd66 --- /dev/null +++ b/include/simplydt/time/concepts/time_api_contract.hpp @@ -0,0 +1,45 @@ + +// Copyright (C) 2026 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. +// Released under the terms of the GNU Affero General Public License version 3. + +// [ISJTB-CXX-XL20230401-000001] + +/*! + * @file time_api_contract.hpp + * + * @brief + * Conceptual temporaal time implementation contract. + */ + + +#ifndef SIMPLYDT_LIB_TEMPORAL_TIME_CONTRACT_CONCEPT_H_ +#define SIMPLYDT_LIB_TEMPORAL_TIME_CONTRACT_CONCEPT_H_ + +#include "simplydt/time/concepts/time_concepts.hpp" + +namespace simplydt::concepts +{ + +/*! + * @brief + * Concept of a type that meets the criteria to be + * considered a useable calendar date implementation. + */ +template +concept contract_abiding_time = requires { + // TODO: INCOMPLETE!!! + requires std::is_same_v; +}; + +} // namespace simplydt::concepts + +#ifndef SIMPLYDT_ENFORCE_TIME_CONTRACT +/*! @brief Macro for asserting time implementation interface contract. */ +# define SIMPLYDT_ENFORCE_TIME_CONTRACT(Class) \ + static_assert( \ + simplydt::concepts::contract_abiding_time, \ + #Class " implementation does not fulfill the public API contract." \ + ) +#endif + +#endif // SIMPLYDT_LIB_TEMPORAL_TIME_CONTRACT_CONCEPT_H_ From 5c6c0f1e5e4be6f4d9d63e6cdf0c9b8cfc7bbd5b Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 18 Aug 2025 05:01:02 -0400 Subject: [PATCH 222/400] Update utc_time.hpp --- include/simplydt/time/utc/utc_time.hpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/simplydt/time/utc/utc_time.hpp b/include/simplydt/time/utc/utc_time.hpp index 173511e..6803959 100644 --- a/include/simplydt/time/utc/utc_time.hpp +++ b/include/simplydt/time/utc/utc_time.hpp @@ -120,6 +120,8 @@ struct UTCTime final : public TimeSystem { Time_t timeInDay; ///< Time of day }; +SIMPLYDT_ENFORCE_TIME_CONTRACT(UTCTime); + } // namespace simplydt::utc #endif // SIMPLYDT_LIB_COORDINATED_UNIVERSAL_TIME_STRUCT_H_ From 76b1d9458c8335e78b31a7112c005876e527fb45 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 18 Aug 2025 05:22:05 -0400 Subject: [PATCH 223/400] Macro Fix --- include/simplydt/calendar/concepts/calendar_contract.hpp | 2 +- include/simplydt/calendar/concepts/date_contract.hpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/include/simplydt/calendar/concepts/calendar_contract.hpp b/include/simplydt/calendar/concepts/calendar_contract.hpp index 58cb28a..a237833 100644 --- a/include/simplydt/calendar/concepts/calendar_contract.hpp +++ b/include/simplydt/calendar/concepts/calendar_contract.hpp @@ -43,7 +43,7 @@ concept contract_abiding_calendar = requires { static_assert( \ simplydt::concepts::contract_abiding_calendar, \ #Class " implementation does not fulfill the public API contract." \ - ); + ) #endif } // namespace simplydt::concepts diff --git a/include/simplydt/calendar/concepts/date_contract.hpp b/include/simplydt/calendar/concepts/date_contract.hpp index 21f2917..6947a63 100644 --- a/include/simplydt/calendar/concepts/date_contract.hpp +++ b/include/simplydt/calendar/concepts/date_contract.hpp @@ -46,7 +46,7 @@ concept contract_abiding_date = requires { static_assert( \ simplydt::concepts::contract_abiding_date, \ #Class " implementation does not fulfill the public API contract." \ - ); + ) #endif #endif // SIMPLYDT_LIB_CALENDAR_DATE_CONTRACT_CONCEPT_H_ From f16adbed52028665ad6dd9f00eaaf879649ddb61 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 18 Aug 2025 05:22:16 -0400 Subject: [PATCH 224/400] Update utc_time.hpp --- include/simplydt/time/utc/utc_time.hpp | 29 +++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/include/simplydt/time/utc/utc_time.hpp b/include/simplydt/time/utc/utc_time.hpp index 6803959..f2d813e 100644 --- a/include/simplydt/time/utc/utc_time.hpp +++ b/include/simplydt/time/utc/utc_time.hpp @@ -41,6 +41,24 @@ struct UTCTime final : public TimeSystem { return time_in_day >= SECONDS_IN_DAY ? MIDNIGHT : time_in_day; } + /*! + * @brief + * Intercepts invalid time parameters and returns midnight + * (00:00:00 AM). + * + * @return + * Midnight if invalid, provided time-in-day value otherwise + */ + [[nodiscard]] static constexpr Time_t useDefaultIfInvalid( + const uint8_t& hour, const uint8_t& minute, const uint8_t& second + ) noexcept + { + if ((hour >= HOURS_IN_DAY) || (minute >= MINUTES_IN_HOUR) || (second >= SECONDS_IN_MINUTE)) + return MIDNIGHT; // Invalid time parameters + + return Base::toSerialSeconds(hour, minute, second); + } + /*! * @brief * Construct UTC time using hour, minute, and second @@ -48,7 +66,7 @@ struct UTCTime final : public TimeSystem { */ constexpr UTCTime(const uint8_t hour, const uint8_t minute, const uint8_t second) noexcept : TimeSystem{}, - timeInDay{Base::toSerialSeconds(hour, minute, second)} + timeInDay{useDefaultIfInvalid(hour, minute, second)} { // } @@ -60,7 +78,7 @@ struct UTCTime final : public TimeSystem { */ constexpr UTCTime(const uint8_t hour, const uint8_t minute) noexcept : TimeSystem{}, - timeInDay{Base::toSerialSeconds(hour, minute, 0)} + timeInDay{useDefaultIfInvalid(hour, minute, 0)} { // } @@ -72,11 +90,16 @@ struct UTCTime final : public TimeSystem { */ explicit constexpr UTCTime(const uint8_t hour) noexcept : TimeSystem{}, - timeInDay{Base::toSerialSeconds(hour, 0, 0)} + timeInDay{useDefaultIfInvalid(hour, 0, 0)} { // } + /*! + * @brief + * Construct UTC time from seconds since start of + * day. + */ constexpr UTCTime(const Seconds secs_in_day) noexcept : TimeSystem{}, timeInDay{useDefaultIfInvalid(secs_in_day.count())} From ace313bf573fc0521c53cbaec269dbc4d33c3031 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 18 Aug 2025 22:37:31 -0400 Subject: [PATCH 225/400] Date Contract Update --- include/simplydt/calendar/concepts/date_concepts.hpp | 2 +- include/simplydt/calendar/gregorian/gregorian_date.hpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/include/simplydt/calendar/concepts/date_concepts.hpp b/include/simplydt/calendar/concepts/date_concepts.hpp index 63545cd..d13bd42 100644 --- a/include/simplydt/calendar/concepts/date_concepts.hpp +++ b/include/simplydt/calendar/concepts/date_concepts.hpp @@ -72,7 +72,7 @@ concept has_comparison_methods = requires(const Date_Impl& d) { template concept has_date_literal_methods = requires(const Date_Impl& d) { - { d.monthLiteral() } -> std::same_as; + { d.monthStr() } -> std::same_as; { d.monthAbbreviation() } -> std::same_as; { d.toStr() } -> std::same_as; }; diff --git a/include/simplydt/calendar/gregorian/gregorian_date.hpp b/include/simplydt/calendar/gregorian/gregorian_date.hpp index b80831a..2481efb 100644 --- a/include/simplydt/calendar/gregorian/gregorian_date.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_date.hpp @@ -252,7 +252,7 @@ struct GregorianDate final : public CalendarDate { * @return * Month literal */ - [[nodiscard]] constexpr const char* monthLiteral() const noexcept + [[nodiscard]] constexpr const char* monthStr() const noexcept { const uint8_t monthIndex = extractEncodedMonth(this->date) - 1; return Months[monthIndex]; From fd025f29602dc19b7353457b7590a98ab13764a6 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 18 Aug 2025 22:37:56 -0400 Subject: [PATCH 226/400] Update abstract_calendar.hpp --- include/simplydt/calendar/abstract_calendar.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/simplydt/calendar/abstract_calendar.hpp b/include/simplydt/calendar/abstract_calendar.hpp index 3720cde..ce0d666 100644 --- a/include/simplydt/calendar/abstract_calendar.hpp +++ b/include/simplydt/calendar/abstract_calendar.hpp @@ -116,7 +116,7 @@ struct CalendricalSystem { */ [[nodiscard]] static constexpr const char* getMonthName(const Date date) noexcept { - return date.monthLiteral(); + return getMonthName(date.month()); } /*! @@ -186,7 +186,7 @@ struct CalendricalSystem { */ [[nodiscard]] static std::string getMonthAbbrev(const Date date) noexcept { - return date.monthAbbreviation(); + return getMonthAbbrev(date.month()); } /*! From 14f18fed805260a87c43b360e464f6696a0754f3 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 18 Aug 2025 22:38:12 -0400 Subject: [PATCH 227/400] Update time_defs.hpp --- include/simplydt/common/time_defs.hpp | 38 +++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/include/simplydt/common/time_defs.hpp b/include/simplydt/common/time_defs.hpp index 03d2f13..82f9f0d 100644 --- a/include/simplydt/common/time_defs.hpp +++ b/include/simplydt/common/time_defs.hpp @@ -16,11 +16,21 @@ #define SIMPLYDT_LIB_GENERAL_TIME_DEFINITIONS_H_ #include "simplydt/common/simplydt_defs.hpp" +#include #include namespace simplydt { +/*! + * @brief + * Enumeration of available time standards. + */ +enum TimeStandard : uint8_t { + UTC, ///< Universal Coordinated Time + TAI, ///< International Atomic Time +}; + /*! * @brief * Time representation type. @@ -58,6 +68,34 @@ constexpr Time_t NOON = SECONDS_IN_DAY / 2; /*! @brief End of day in serial seconds (23:59:59 PM) */ constexpr Time_t TIME_MAX = SECONDS_IN_DAY - 1; +/*! + * @brief + * Enumeration of individual time components. + */ +enum class TimeComponent : uint8_t { + NANOSECOND = DatetimeComponent::NANOSECOND, ///< Time nanosecond component + MILLISECOND = DatetimeComponent::MILLISECOND, ///< Time millisecond component + SECOND = DatetimeComponent::SECOND, ///< Time second component + MINUTE = DatetimeComponent::MINUTE, ///< Time minute component + HOUR = DatetimeComponent::HOUR ///< Time hour component +}; + +/*! + * @brief + * Binary 12-hour clock meridiem indicators. + */ +enum MeridiemPhase : uint8_t { + AM, ///< Anti meridiem (before midday) + PM ///< Post meridiem (after midday) +}; + +/*! + * @brief + * Binary meridiem indicator literals for 12-hour + * clocks. + */ +inline constexpr std::array MeridiemPhases = {"AM", "PM"}; + } // namespace simplydt #endif // SIMPLYDT_LIB_GENERAL_TIME_DEFINITIONS_H_ From 722934a8dd05ad72b919eff0726a42e70563d3d6 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 18 Aug 2025 22:38:20 -0400 Subject: [PATCH 228/400] Update time_units.hpp --- include/simplydt/time/units/time_units.hpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/include/simplydt/time/units/time_units.hpp b/include/simplydt/time/units/time_units.hpp index 91e3ff3..447d8d7 100644 --- a/include/simplydt/time/units/time_units.hpp +++ b/include/simplydt/time/units/time_units.hpp @@ -22,16 +22,16 @@ namespace simplydt { /*! @brief Seconds time unit. */ -using Seconds = std::chrono::duration>; +using Seconds = std::chrono::duration>; /*! @brief Minutes time unit. */ -using Minutes = std::chrono::duration>; +using Minutes = std::chrono::duration>; /*! @brief Hours time unit. */ -using Hours = std::chrono::duration>; +using Hours = std::chrono::duration>; /*! @brief Days time unit. */ -using Days = std::chrono::duration>; +using Days = std::chrono::duration>; } // namespace simplydt From fdb9d1f521a9cb99751f482995c2a5dca8ae91f0 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 18 Aug 2025 22:38:39 -0400 Subject: [PATCH 229/400] Update utc_time.hpp --- include/simplydt/time/utc/utc_time.hpp | 178 +++++++++++++++++++++++-- 1 file changed, 167 insertions(+), 11 deletions(-) diff --git a/include/simplydt/time/utc/utc_time.hpp b/include/simplydt/time/utc/utc_time.hpp index f2d813e..b98b3bb 100644 --- a/include/simplydt/time/utc/utc_time.hpp +++ b/include/simplydt/time/utc/utc_time.hpp @@ -17,13 +17,44 @@ #include "simplydt/time/abstract_time.hpp" #include "simplydt/time/concepts/time_api_contract.hpp" -#include "simplydt/time/utc/utc_defs.hpp" #include "simplydt/time/units/time_units.hpp" +#include "simplydt/time/utc/utc_defs.hpp" namespace simplydt::utc { struct UTCTime final : public TimeSystem { + /*! + * @brief + * Identifies the time system represented by this + * implementation. + */ + static constexpr TimeStandard standard = TimeStandard::UTC; + + /*! + * @brief + * Indicates whether the time system is based on celestial + * motion. + * + * @details + * Specifies that UTC is a celestial time system. While its + * rate is derived from atomic clocks, it is fundamentally + * tied to the Earth's rotation (a celestial phenomenon) + * through the mechanism of leap seconds. + */ + static constexpr bool isCelestialTimeSystem = true; + + /*! + * @brief + * Indicates whether the time system is a pure atomic time + * scale. + * + * @details + * Specifies that UTC is not a pure atomic time system which + * is a continuous time scale based solely on atomic clocks. + */ + static constexpr bool isPureAtomicTimeSystem = false; + /*! @brief One complete day. */ static constexpr Time_t FULL_DAY = SECONDS_IN_DAY; @@ -53,20 +84,37 @@ struct UTCTime final : public TimeSystem { const uint8_t& hour, const uint8_t& minute, const uint8_t& second ) noexcept { - if ((hour >= HOURS_IN_DAY) || (minute >= MINUTES_IN_HOUR) || (second >= SECONDS_IN_MINUTE)) + if ((hour >= HOURS_IN_DAY) || (minute >= MINUTES_IN_HOUR) || + (second >= SECONDS_IN_MINUTE)) return MIDNIGHT; // Invalid time parameters - + return Base::toSerialSeconds(hour, minute, second); } + /*! + * @brief + * Intercepts invalid serial seconds and returns midnight + * (00:00:00 AM). + * + * @return + * Midnight if invalid, provided time-in-day value otherwise + */ + [[nodiscard]] static constexpr Time_t useDefaultIfInvalid(const Seconds& secs_in_day + ) noexcept + { + if ((secs_in_day.count() < MIDNIGHT) || (secs_in_day.count() >= SECONDS_IN_DAY)) + return MIDNIGHT; + + return static_cast(secs_in_day.count()); + } + /*! * @brief * Construct UTC time using hour, minute, and second * values. */ constexpr UTCTime(const uint8_t hour, const uint8_t minute, const uint8_t second) noexcept - : TimeSystem{}, - timeInDay{useDefaultIfInvalid(hour, minute, second)} + : TimeSystem{}, timeInDay{useDefaultIfInvalid(hour, minute, second)} { // } @@ -77,8 +125,7 @@ struct UTCTime final : public TimeSystem { * assume second = 0. */ constexpr UTCTime(const uint8_t hour, const uint8_t minute) noexcept - : TimeSystem{}, - timeInDay{useDefaultIfInvalid(hour, minute, 0)} + : TimeSystem{}, timeInDay{useDefaultIfInvalid(hour, minute, 0)} { // } @@ -89,8 +136,7 @@ struct UTCTime final : public TimeSystem { * minute and second = 0. */ explicit constexpr UTCTime(const uint8_t hour) noexcept - : TimeSystem{}, - timeInDay{useDefaultIfInvalid(hour, 0, 0)} + : TimeSystem{}, timeInDay{useDefaultIfInvalid(hour, 0, 0)} { // } @@ -101,8 +147,7 @@ struct UTCTime final : public TimeSystem { * day. */ constexpr UTCTime(const Seconds secs_in_day) noexcept - : TimeSystem{}, - timeInDay{useDefaultIfInvalid(secs_in_day.count())} + : TimeSystem{}, timeInDay{useDefaultIfInvalid(secs_in_day)} { // } @@ -124,16 +169,127 @@ struct UTCTime final : public TimeSystem { return os; } + /*! @brief Evaluate equivalence of UTC times. */ + [[nodiscard]] constexpr bool operator==(const UTCTime time) const noexcept + { + return this->timeInDay == time.timeInDay; + } + + /*! @brief Determine if left-hand side is sequentially before right-hand side. */ + [[nodiscard]] constexpr bool operator<(const UTCTime time) const noexcept + { + return this->timeInDay < time.timeInDay; + } + + /*! @brief Determine if left-hand side is sequentially after right-hand side. */ + [[nodiscard]] constexpr bool operator>(const UTCTime time) const noexcept + { + return this->timeInDay > time.timeInDay; + } + + [[nodiscard]] constexpr bool operator<=(const UTCTime time) const noexcept + { + return this->timeInDay <= time.timeInDay; + } + + [[nodiscard]] constexpr bool operator>=(const UTCTime time) const noexcept + { + return this->timeInDay >= time.timeInDay; + } + + /*! @brief Index UTC time components. */ + [[nodiscard]] std::optional operator[](const TimeComponent component + ) const noexcept + { + // TODO: INCOMPLETE!!! + return std::nullopt; + } + + /*! + * @brief + * Evaluate if time is midnight. + * + * @return + * True if time is midnight + */ + [[nodiscard]] constexpr bool isDefault() const noexcept + { + return this->timeInDay == MIDNIGHT; + } + + /*! + * @brief + * Time hour component (24-hour). + * + * @return + * Hour of UTC time + */ [[nodiscard]] constexpr uint8_t hour() const noexcept { return Base::hourFromSerialSecs(this->timeInDay); } + /*! + * @brief + * Time hour component (12-hour). + * + * @return + * Hour of UTC time + */ + [[nodiscard]] constexpr uint8_t hour12() const noexcept + { + return Base::hourFromSerialSecs(this->timeInDay) % 12; + } + + /*! + * @brief + * Time meridiem phase literal. + * + * @return + * Meridiem phase abbreviation + */ + [[nodiscard]] constexpr const char* hourPhaseStr() const noexcept + { + if (this->hour() >= 12) + return MeridiemPhases[PM]; + + return MeridiemPhases[AM]; + } + + /*! + * @brief + * Time meridiem phase indicator. + * + * @return + * Meridiem phase enum representation + */ + [[nodiscard]] constexpr MeridiemPhase hourPhaseEnumRepr() const noexcept + { + if (this->hour() >= 12) + return MeridiemPhase::PM; + + return MeridiemPhase::AM; + } + + /*! + * @brief + * Time minute component. + * + * @return + * Minute of UTC time + */ [[nodiscard]] constexpr uint8_t minute() const noexcept { return Base::minuteFromSerialSecs(this->timeInDay); } + /*! + * @brief + * Time second component. + * + * @return + * Second of UTC time + */ [[nodiscard]] constexpr uint8_t second() const noexcept { return Base::secondFromSerialSecs(this->timeInDay); From c813623c513a5e5cf6497877d2028a2065707689 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 18 Aug 2025 22:40:11 -0400 Subject: [PATCH 230/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index d3b5aaa..6163d67 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -5,18 +5,6 @@ * * ~ CLI Debug Executable Notes / TO-DO List ~ * -* -> [] :: Simply Datetime Time Units :: -* -> [] template struct TimeUnit { ... }; <---(Composes int32_t) -* -> [] (Present common functionality amongst units) -* -> [] (Units interact with date/time types) -* -> [] (Units can automatically convert from one another) -* -* -> [] struct Days : public TimeUnit { ... }; -* -> [] struct Hours : public TimeUnit<1, 24> { ... }; -* -> [] struct Minutes : public TimeUnit<1, 1'440> { ... }; -* -> [] ... -* -* * -> [] :: Datetime Output Styles :: * -> [] StandardStyle ----> 2004-09-17:00:00:00.000 * -> [] UnixStyle --------> 2004-09-17T00:00:00.000 @@ -80,10 +68,12 @@ int main(int argc, char* argv[]) constexpr UTCTime dvq = UTCTime{14, 37, 48}; constexpr UTCTime gbx = UTCTime{simplydt::Hours{23} + simplydt::Minutes{15}}; // constexpr bool eqlTst = dvq == dvq; - constexpr uint8_t hr = dvq.hour(); - constexpr uint8_t min = dvq.minute(); - constexpr uint8_t sec = dvq.second(); - + constexpr uint8_t hr = dvq.hour12(); + constexpr uint8_t min = dvq.minute(); + constexpr uint8_t sec = dvq.second(); + constexpr simplydt::MeridiemPhase mdx = dvq.hourPhaseEnumRepr(); + constexpr const char* mmq = dvq.hourPhaseStr(); + constexpr simplydt::Seconds evv = simplydt::Minutes{1} + simplydt::Seconds{14}; // From b1b65f4c9bac0ed093164dafe4c3cb823e66f947 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Tue, 19 Aug 2025 15:14:27 -0400 Subject: [PATCH 231/400] Update utc_time.hpp --- include/simplydt/time/utc/utc_time.hpp | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/include/simplydt/time/utc/utc_time.hpp b/include/simplydt/time/utc/utc_time.hpp index b98b3bb..036037a 100644 --- a/include/simplydt/time/utc/utc_time.hpp +++ b/include/simplydt/time/utc/utc_time.hpp @@ -165,7 +165,7 @@ struct UTCTime final : public TimeSystem { friend inline std::ostream& operator<<(std::ostream& os, const UTCTime time) noexcept { - // TODO: INCOMPLETE!!! + os << time.toStr(); return os; } @@ -295,6 +295,26 @@ struct UTCTime final : public TimeSystem { return Base::secondFromSerialSecs(this->timeInDay); } + /*! + * @brief + * Compose string representation of UTC time. + * + * @return + * UTC time as string + */ + [[nodiscard]] const std::string toStr() const noexcept + { + const char delimiter = ':'; + + std::string timeStr; + timeStr.reserve(12); + timeStr += (toDoubleDigitStr(this->hour()) + delimiter); + timeStr += (toDoubleDigitStr(this->minute()) + delimiter); + timeStr += (toDoubleDigitStr(this->second()) + ' '); + timeStr += this->hourPhaseStr(); + return timeStr; + } + private: Time_t timeInDay; ///< Time of day }; From 788db3f6514a5ddc24985ad2bf32497fe5f5a1aa Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Tue, 19 Aug 2025 15:14:31 -0400 Subject: [PATCH 232/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index 6163d67..282948e 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -73,6 +73,7 @@ int main(int argc, char* argv[]) constexpr uint8_t sec = dvq.second(); constexpr simplydt::MeridiemPhase mdx = dvq.hourPhaseEnumRepr(); constexpr const char* mmq = dvq.hourPhaseStr(); + std::cout << "UTC Time: " << dvq << '\n'; constexpr simplydt::Seconds evv = simplydt::Minutes{1} + simplydt::Seconds{14}; // From 310f6e1f396b21221849d5d701318f56d7cf3a7b Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Tue, 19 Aug 2025 16:13:52 -0400 Subject: [PATCH 233/400] Update utc_defs.hpp --- include/simplydt/time/utc/utc_defs.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/simplydt/time/utc/utc_defs.hpp b/include/simplydt/time/utc/utc_defs.hpp index a39f569..fbf1ca8 100644 --- a/include/simplydt/time/utc/utc_defs.hpp +++ b/include/simplydt/time/utc/utc_defs.hpp @@ -24,7 +24,7 @@ * @namespace simplydt::utc * * @brief - * Coordinated Universal Time (UTC) system. + * Coordinated Universal Time (UTC) standard. */ namespace simplydt::utc { From a5feb137362bb885898284e153179859dad480dd Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Tue, 19 Aug 2025 16:24:13 -0400 Subject: [PATCH 234/400] Update abstract_time.hpp --- include/simplydt/time/abstract_time.hpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/include/simplydt/time/abstract_time.hpp b/include/simplydt/time/abstract_time.hpp index ad7a71b..c188dc6 100644 --- a/include/simplydt/time/abstract_time.hpp +++ b/include/simplydt/time/abstract_time.hpp @@ -20,6 +20,10 @@ namespace simplydt { +/*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + */ template struct TimeSystem { /*! @brief Time system implementation. */ From cb1efd4ac8745b9be81b6841a5c8dcf164600c50 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Tue, 19 Aug 2025 16:24:24 -0400 Subject: [PATCH 235/400] Update utc_time.hpp --- include/simplydt/time/utc/utc_time.hpp | 35 ++++++++++++++++++++++---- 1 file changed, 30 insertions(+), 5 deletions(-) diff --git a/include/simplydt/time/utc/utc_time.hpp b/include/simplydt/time/utc/utc_time.hpp index 036037a..eeec26e 100644 --- a/include/simplydt/time/utc/utc_time.hpp +++ b/include/simplydt/time/utc/utc_time.hpp @@ -23,6 +23,10 @@ namespace simplydt::utc { +/*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + */ struct UTCTime final : public TimeSystem { /*! * @brief @@ -31,6 +35,12 @@ struct UTCTime final : public TimeSystem { */ static constexpr TimeStandard standard = TimeStandard::UTC; + /*! + * @brief + * Indicates the resolution this time system is based on. + */ + static constexpr TimeComponent resolution = TimeComponent::SECOND; + /*! * @brief * Indicates whether the time system is based on celestial @@ -55,9 +65,6 @@ struct UTCTime final : public TimeSystem { */ static constexpr bool isPureAtomicTimeSystem = false; - /*! @brief One complete day. */ - static constexpr Time_t FULL_DAY = SECONDS_IN_DAY; - /*! * @brief * Intercepts invalid serial seconds values and returns @@ -201,8 +208,7 @@ struct UTCTime final : public TimeSystem { [[nodiscard]] std::optional operator[](const TimeComponent component ) const noexcept { - // TODO: INCOMPLETE!!! - return std::nullopt; + return this->getComponent(component); } /*! @@ -315,6 +321,25 @@ struct UTCTime final : public TimeSystem { return timeStr; } + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + */ + [[nodiscard]] std::optional getComponent(const TimeComponent component + ) const noexcept + { + switch (component) { + case TimeComponent::HOUR: + return this->hour(); + case TimeComponent::MINUTE: + return this->minute(); + case TimeComponent::SECOND: + return this->second(); + default: // Invalid component request + return std::nullopt; + }; + } + private: Time_t timeInDay; ///< Time of day }; From 7fc66c536cbf4ed8f2b393a17b0565d06067a3b4 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Tue, 19 Aug 2025 23:12:22 -0400 Subject: [PATCH 236/400] Update abstract_date.hpp --- include/simplydt/calendar/date/abstract_date.hpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/include/simplydt/calendar/date/abstract_date.hpp b/include/simplydt/calendar/date/abstract_date.hpp index 4e70f8e..02ecb3f 100644 --- a/include/simplydt/calendar/date/abstract_date.hpp +++ b/include/simplydt/calendar/date/abstract_date.hpp @@ -45,7 +45,10 @@ struct CalendarDate { /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Get specified calendar date component. + * + * @return + * Requested calendar date component */ [[nodiscard]] std::optional getComponent(const CalendarComponent component ) const From 09bba870bb960d9bedd050e74c9dcd440080e443 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Tue, 19 Aug 2025 23:12:28 -0400 Subject: [PATCH 237/400] Update utc_time.hpp --- include/simplydt/time/utc/utc_time.hpp | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/include/simplydt/time/utc/utc_time.hpp b/include/simplydt/time/utc/utc_time.hpp index eeec26e..c1bc8a5 100644 --- a/include/simplydt/time/utc/utc_time.hpp +++ b/include/simplydt/time/utc/utc_time.hpp @@ -323,7 +323,10 @@ struct UTCTime final : public TimeSystem { /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Get specified UTC time component. + * + * @return + * Requested time component */ [[nodiscard]] std::optional getComponent(const TimeComponent component ) const noexcept @@ -340,6 +343,19 @@ struct UTCTime final : public TimeSystem { }; } + /*! + * @brief + * Converts UTC time to serial count of seconds since + * midnight. + * + * @return + * Serial count of seconds since start of day + */ + [[nodiscard]] constexpr Seconds toSerialSeconds() const noexcept + { + return Seconds{this->timeInDay}; + } + private: Time_t timeInDay; ///< Time of day }; From c223d03eded8b6b33f01816c0caae600618442d2 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Tue, 19 Aug 2025 23:12:35 -0400 Subject: [PATCH 238/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index 282948e..36f01fc 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -5,6 +5,8 @@ * * ~ CLI Debug Executable Notes / TO-DO List ~ * +* -> [] Remove CRTP from time setup? +* * -> [] :: Datetime Output Styles :: * -> [] StandardStyle ----> 2004-09-17:00:00:00.000 * -> [] UnixStyle --------> 2004-09-17T00:00:00.000 @@ -74,8 +76,7 @@ int main(int argc, char* argv[]) constexpr simplydt::MeridiemPhase mdx = dvq.hourPhaseEnumRepr(); constexpr const char* mmq = dvq.hourPhaseStr(); std::cout << "UTC Time: " << dvq << '\n'; - - constexpr simplydt::Seconds evv = simplydt::Minutes{1} + simplydt::Seconds{14}; + constexpr simplydt::Seconds evv = dvq.toSerialSeconds(); // std::cout << "\n\n\t[ Complete ]" << std::endl; From 1d85c11bbfe05a1f6df4a5cdbf6d6d491629a322 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 25 Aug 2025 21:38:13 -0400 Subject: [PATCH 239/400] Update diagrams.drawio --- docs/prj/diagrams.drawio | 347 ++++++++++++++++++++++++++++++--------- 1 file changed, 268 insertions(+), 79 deletions(-) diff --git a/docs/prj/diagrams.drawio b/docs/prj/diagrams.drawio index 64554bb..a6d346c 100644 --- a/docs/prj/diagrams.drawio +++ b/docs/prj/diagrams.drawio @@ -1,10 +1,10 @@ - + - + @@ -14,7 +14,7 @@ - + @@ -49,21 +49,21 @@ - + - + - + - + - + @@ -148,7 +148,7 @@ - + @@ -159,22 +159,22 @@ - + - + - + - + - + - + @@ -299,61 +299,54 @@ - - + + - - - - + - - - - + - - - + + + - - - - + - - + + - + - + - - + + + + - - + + - - + + - + - + @@ -456,67 +449,97 @@ - - + + - - - - + - - + + - - + + + + + - + - - + + - - + + - + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - + + - - - - - - - - + + - + @@ -560,7 +583,173 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 313a9c866c9c40d67907a3ed34cec4015e5c5b74 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 25 Aug 2025 22:33:03 -0400 Subject: [PATCH 240/400] Update diagrams.drawio --- docs/prj/diagrams.drawio | 176 ++++++++++++++++++++------------------- 1 file changed, 89 insertions(+), 87 deletions(-) diff --git a/docs/prj/diagrams.drawio b/docs/prj/diagrams.drawio index a6d346c..1959531 100644 --- a/docs/prj/diagrams.drawio +++ b/docs/prj/diagrams.drawio @@ -299,46 +299,94 @@ - - + + + + + - + - + - - - + + + + + + - + - - - + + + - + - + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + @@ -594,108 +642,56 @@ - - + + - - - - - - - - - - - - - - - - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + - + - + + + + - + - + @@ -751,6 +747,12 @@ + + + + + + From b27157da30f5d9884514ba62b14974c0147045e6 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Thu, 28 Aug 2025 01:35:25 -0400 Subject: [PATCH 241/400] Update diagrams.drawio --- docs/prj/diagrams.drawio | 374 ++++++++++++++++++++++----------------- 1 file changed, 214 insertions(+), 160 deletions(-) diff --git a/docs/prj/diagrams.drawio b/docs/prj/diagrams.drawio index 1959531..b3f03a8 100644 --- a/docs/prj/diagrams.drawio +++ b/docs/prj/diagrams.drawio @@ -300,11 +300,11 @@ - + - + @@ -312,69 +312,78 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + - + @@ -384,7 +393,7 @@ - + @@ -497,95 +506,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -633,126 +553,260 @@ - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + + + - - + + - - + + - + - - - - - + + - + - - - - + + - - + + - - + + + + + + + + + + + + + + + + + - + - - + + + + + - + - + + + + + + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From d773c41c37df9054f26abe8e6ebe169256303412 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Thu, 28 Aug 2025 04:22:10 -0400 Subject: [PATCH 242/400] Update diagrams.drawio --- docs/prj/diagrams.drawio | 215 ++++++++++++++++++++------------------- 1 file changed, 109 insertions(+), 106 deletions(-) diff --git a/docs/prj/diagrams.drawio b/docs/prj/diagrams.drawio index b3f03a8..02d1a96 100644 --- a/docs/prj/diagrams.drawio +++ b/docs/prj/diagrams.drawio @@ -148,7 +148,7 @@ - + @@ -299,105 +299,123 @@ - - + + - + - + + + + - + - + + + + - + - + - + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + + + + - + + + + + + + - + - - + + @@ -553,149 +571,137 @@ - + - - + + - - + + - - + + + + + + + - + - + - + - + - + - + - + - + + + + + + + - + - + - - - - - - - - - - - + + - - - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + - + - + - + @@ -723,7 +729,7 @@ - + @@ -772,29 +778,26 @@ - + - - - - + - + - + - + - + - + @@ -804,7 +807,7 @@ - + From 3393cb74be3a8cb4864b3af95226c71faae88ad0 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Thu, 28 Aug 2025 05:19:09 -0400 Subject: [PATCH 243/400] Update diagrams.drawio --- docs/prj/diagrams.drawio | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/docs/prj/diagrams.drawio b/docs/prj/diagrams.drawio index 02d1a96..7902bfe 100644 --- a/docs/prj/diagrams.drawio +++ b/docs/prj/diagrams.drawio @@ -148,7 +148,7 @@ - + @@ -300,7 +300,7 @@ - + @@ -333,7 +333,7 @@ - + @@ -388,31 +388,34 @@ - + + + + + + + - + - - - - + - + - + - + - + From fd93b09c25cff5753714054c578b6d2b1ee7010b Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Thu, 28 Aug 2025 05:20:29 -0400 Subject: [PATCH 244/400] Delete Useless Directory --- docs/prj/design/code_review1.html | 12055 ------------------- docs/prj/design/diagrams-Design_Markup.pdf | Bin 247001 -> 0 bytes docs/prj/design/diagrams-Palette.pdf | Bin 124010 -> 0 bytes docs/prj/design/project_dir.pdf | Bin 54640 -> 0 bytes 4 files changed, 12055 deletions(-) delete mode 100644 docs/prj/design/code_review1.html delete mode 100644 docs/prj/design/diagrams-Design_Markup.pdf delete mode 100644 docs/prj/design/diagrams-Palette.pdf delete mode 100644 docs/prj/design/project_dir.pdf diff --git a/docs/prj/design/code_review1.html b/docs/prj/design/code_review1.html deleted file mode 100644 index f392197..0000000 --- a/docs/prj/design/code_review1.html +++ /dev/null @@ -1,12055 +0,0 @@ -

    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    - -
    - -
    -

    Okay, I can definitely help you with this. It sounds like you've got - some ambitious and interesting goals for your datetime library! - Taking it slow is a great idea, especially when dealing with - something as inherently complex as time and calendars.

    -

    Let's break down your current thoughts and identify the core - challenges and opportunities.

    -

    -

    Initial Thoughts & Key Takeaways from Your Description:

    -

    -
      -
    1. -

      Motivation: Simplifying std::chrono and - providing an alternative/complementary datetime system. This - is a common pain point with std::chrono for - many developers, so there's a real need here.

      -
    2. -
    3. -

      Core Idea - Custom time_point based on - JDN: This is a solid foundation. The Julian Day - Number (JDN) system is well-suited for a single, continuous - numerical representation of time, making calculations - between widely separated dates simpler.

      -
    4. -
    5. -

      Static Swapping of Underlying Logic: This is a - powerful concept. You want to be able to choose between your - custom implementation and a std::chrono bridge - at compile time. This speaks to flexibility and potentially - providing performance/feature trade-offs.

      -
    6. -
    7. -

      Extensibility for New Calendar Systems: A crucial - requirement for a robust datetime library. Supporting Julian - and Gregorian initially, with the ability for users to add - more, is excellent.

      -
    8. -
    9. -

      Future Modifiability: Emphasizing easy modification - for efficiency improvements or new calendars is a sign of - good design foresight.

      -
    10. -
    -

    -

    Where We Need to Focus to "Understand Your Problem Domain":

    -

    -

    Your current challenge isn't just about coding; it's about - understanding the abstractions you need. Here's what we'll - explore to get a clearer picture:

    -
      -
    • -

      What is "datetime" to your library? Is it just a point - in time, or does it also encompass durations, time zones, - calendar-specific fields (year, month, day), etc.?

      -
    • -
    • -

      How do different calendar systems interact with a - JDN-based time_point? This is where the - conversion logic lives.

      -
    • -
    • -

      What does "static swapping" really entail from a design - perspective? Are we talking about different template - specializations, policy-based design, or something else?

      -
    • -
    • -

      What are the key operations you envision users performing - with your datetime objects? (e.g., adding days, - comparing dates, formatting, parsing, getting specific date - components).

      -
    • -
    • -

      How do you handle edge cases and nuances of calendar - systems? (e.g., leap years, calendar reforms, - proleptic calendars).

      -
    • -
    -

    -

    Let's Start with the Very Basics: What is a "Point in Time" in Your - Library?

    -

    -

    You mentioned basing your time_point on the Julian Day - Number system. This is an excellent starting point because it - provides a continuous, absolute measure of time, divorced from any - specific calendar.

    -

    Question 1: Can you describe, in a bit more detail, how you - envision your fundamental time_point type - working?

    -
      -
    • -

      What data type will store the JDN? (e.g., - double, long long, - int64_t)

      -
    • -
    • -

      Will it store fractional days to represent time within a day - (hours, minutes, seconds, milliseconds)?

      -
    • -
    • -

      How will you define the "epoch" (the reference point for JDN - 0)? The astronomical JDN epoch is noon, January 1, 4713 BC, - Proleptic Julian Calendar. Is this what you intend?

      -
    • -
    • -

      What is the precision you aim for (seconds, milliseconds, - nanoseconds)? This impacts your choice of underlying data - type.

      -
    • -
    -

    Don't worry about code yet, just conceptual. Let's build a mental - model of this core component first.

    -
    -
    - -
    -
    -
    - -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    -

    - Okay, I took a day to think about this and I think I may have landed - somewhere on the library design. First I am going to share with you what - the project directory would look like from within the - 'include/simplydt/' directory (which is where everything is going down - so to speak), then after I will show you my raw ideas for the design and - see what you think. I have PDF's which contain my ideas so I will attach - them to share with you. I want you to be familiar with the directory - first so it provides additional context to the raw ideas. Then maybe you - can help me push the needle further, but we'll take things slow for now. - Does this sound like a plan?

    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    - -
    -
    -
    - -
    - -
    -

    That sounds like an excellent plan! Taking a day to think things - through is a sign of a thoughtful approach, and having some initial - structure (even if it's rough) will give us a concrete starting - point.

    -

    Sharing the project directory structure first is a great idea. It - will indeed provide valuable context for understanding your design - choices and where different components are intended to live.

    -

    Once I have a clear picture of the directory structure, we can then - dive into your PDF ideas. I'm ready when you are. Let's take it slow - and build this up logically.

    -
    -
    - -
    -
    -
    - -
    -
    -
    -
    - -
    -
    -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    -
    -
    -

    - Sounds great! Here is the project directory. Let me know if you have any - questions or concerns.

    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    - -
    -
    -
    - -
    -
    - - -
    -
    -
    -
    - -
    -

    Okay, thank you for - sharing the project directory structure. - This gives a much clearer picture of your intended organization and - how you're thinking about different - components. -

    - -
    - -

    -

    Here's my initial impression and some thoughts based on this - structure:

    -

    Overall Structure - Very Good:

    -
      -
    • -

      -

      Clear - Separation: - You've clearly separated - common/, - calendar/, - date/, - gregorian/, - julian/, - duration/, - type_traits/, - concepts/, and - timekeeping/. - This is a good sign for modularity and - maintainability. -

      - -
      - -

      -
    • -
    • -

      -

      Logical - Grouping: - Grouping - gregorian/ and - julian/ under - date/ (or perhaps - calendar/ if - date/ is specifically for a - Date type) makes - sense. -

      - -
      - -

      -
    • -
    • -

      -

      Concepts & Type - Traits: Having - dedicated directories for - concepts/ and - type_traits/ is excellent for - a modern C++ library. - This strongly suggests you're thinking about compile-time - checks and generic programming, which is crucial for - flexibility and extensibility. -

      - -
      - -

      -
    • -
    -

    Specific Observations and Questions:

    -
      -
    1. -

      -

      common/ - Directory: -

      - -
      - -

      -
        -
      • -

        -

        calendar_defs.hpp, - simplydt_defs.hpp, - stl_chrono_defs.hpp: These - likely contain common definitions, perhaps - aliases, constants, or basic types used - throughout the library. - This is a good practice. -

        - -
        - -

        -
      • -
      • -

        -

        stl_chrono_utils.hpp: Implies utilities for - interoperating with - std::chrono. - This aligns with your goal of - bridging. -

        - -
        - -

        -
      • -
      • -

        -

        string_utils.hpp: Likely - for formatting and parsing datetime - strings. - Essential for user - interaction. -

        - -
        - -

        -
      • -
      -
    2. -
    3. -

      -

      calendar/ - Directory: -

      - -
      - -

      -
        -
      • -

        This directory seems to be about the - definition of calendars themselves, distinct - from specific dates.

        -
      • -
      • -

        concepts/:

        -
          -
        • -

          calendar_concepts.hpp: This is - critical. I'm - assuming this will define the - requirements for any calendar system - that can be plugged into your - library. - This is where the "new calendar system" - extensibility will be - defined. -

          - -
          - -

          -
        • -
        • -

          -

          calendar_contract.hpp: - This is an interesting - name. - Is this related to enforcing the concepts, - or perhaps an interface base class if you're - using polymorphism? We can clarify this - later. -

          - -
          - -

          -
        • -
        -
      • -
      • -

        -

        date_concepts.hpp: Concepts - related to what constitutes a "date" within your - system. -

        - -
        - -

        -
      • -
      -
    4. -
    5. -

      -

      date/ - Directory: -

      - -
      - -

      -
        -
      • -

        -

        abstract_date.hpp: This suggests a common - interface or base class for concrete date types - like - gregorian_date and - julian_date. - This is a good abstraction. -

        - -
        - -

        -
      • -
      -
    6. -
    7. -

      -

      gregorian/ and - julian/ - Directories: -

      - -
      - -
      - -
      -
      -

      -
        -
      • -

        These contain the concrete implementations for each - calendar system.

        -
      • -
      • -

        -

        gregorian_date.hpp, - julian_date.hpp: The - actual date types for each - calendar. -

        - -
        - -
        - -
        -
        -

        -
      • -
      • -

        -

        gregorian_defs.hpp, - julian_defs.hpp: - Calendar-specific definitions. -

        - -
        - -
        - -
        -
        -

        -
      • -
      • -

        -

        gregorian_calendar.hpp, - julian_calendar.hpp: These likely represent - the calendar system logic - itself, rather - than a specific date. - This is crucial for conversions and - calculations. -

        - -
        - -
        - -
        -
        -

        -
      • -
      • -

        -

        jdn_system.hpp (under - julian/): This is - where your core JDN logic will likely - reside. - It makes sense to place it within - -

        - -
        - -

        -

        julian/ as the Julian calendar is - historically tied to the JDN epoch.

        -
      • -
      -
    8. -
    9. -

      -

      type_traits/ - Directory: -

      - -
      - -

      -
        -
      • -

        N/A.hpp: This is intriguing! Is this a - placeholder or an indication that something - isn't yet fully defined? -

        - -
        - -

        -
      • -
      • -

        -

        abstract_calendar.hpp: Suggests - type traits for calendar - abstractions. -

        - -
        - -

        -
      • -
      • -

        -

        calendars.hpp: Might - contain traits to identify all supported - calendar types. -

        - -
        - -

        -
      • -
      -
    10. -
    11. -

      -

      duration/ - Directory: -

      - -
      - -

      -
        -
      • -

        -

        abstract_duration.hpp: Similar to - abstract_date, suggests - a common interface for durations. -

        - -
        - -

        -
      • -
      • -

        -

        timekeeping/, - protocol/, - concepts/, - type_traits/ (under - duration/): This is - a very detailed breakdown for - durations. - It seems you're giving durations as much thought as - dates, which is excellent, as they are intrinsically - linked. -

        - -
        - -

        -
      • -
      -
    12. -
    -

    Overall Impression:

    -

    The directory structure strongly suggests a design centered around: -

    -
      -
    • -

      Abstractions and Interfaces: With - abstract_date.hpp, - abstract_duration.hpp, and various - concepts/ files.

      -
    • -
    • -

      Compile-time Polymorphism/Generics: Indicated by the - heavy use of concepts/ and - type_traits/. This is generally the preferred - approach for high-performance C++ libraries like this.

      -
    • -
    • -

      Policy-Based Design (Potential): The "static swapping" - of underlying logic could potentially be implemented using - policies, where the jdn_system or - std::chrono could be different policy classes - plugged into a main time_point type.

      -
    • -
    -

    Before we look at the PDFs, my main question for you now is: -

    -

    What is your mental model for how the jdn_system.hpp - (the core absolute time representation) connects to - gregorian_date.hpp and - julian_date.hpp?

    -

    Specifically:

    -
      -
    • -

      Will gregorian_date and julian_date - internally hold a jdn_system instance, or will - they convert to/from JDNs on demand?

      -
    • -
    • -

      How will operations like "add 5 days" work when you have a - gregorian_date? Will it convert to JDN, add 5, - then convert back? Or will the - gregorian_calendar (the logic) handle the date - arithmetic directly in Gregorian terms?

      -
    • -
    -

    No need for a super detailed answer, just your current thinking. This - will help bridge the gap between the directory structure and the - conceptual design in your PDFs.

    -
    -
    - -
    -
    -
    - -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    - -
    -
    -
    - -
    - -
    -
    - -
    -
    -
    -

    Okay, thank you for those crucial clarifications! This significantly - refines my understanding of your design philosophy:

    -
      -
    • -

      No Virtual Polymorphism / CRTP: This is a very - important detail. Avoiding vtables and opting - for CRTP (Curiously Recurring Template Pattern) confirms - your focus on compile-time polymorphism and zero-overhead - abstractions, which is excellent for performance-critical - libraries like a datetime system. This also makes the role - of concepts/ even more prominent.

      -
    • -
    • -

      calendar_contract.hpp: This clarifies its - purpose beautifully. It's essentially defining the interface - (or "contract") that any calendar implementation must adhere - to, ensuring compatibility with your "non-changing datetime - API shell." This is a robust way to enforce consistency and - allow for pluggable calendar systems.

      -
    • -
    • -

      calendar_concepts.hpp: As you said, - smaller, reusable pieces of that contract. Makes sense for - modularity.

      -
    • -
    • -

      Standardized Date Model: This is key. Defining a - standard model or interface for Date types - across different calendar implementations will be vital for - generic operations.

      -
    • -
    • -

      jdn_system.hpp Significance: - Acknowledged. We'll dive into its specifics once we have - more context.

      -
    • -
    • -

      Durations and Performance: I'm glad we're on the same - page there. The relationship between the precision and - representation of your core time type and how durations are - handled is fundamental for efficiency.

      -
    • -
    -

    It's perfectly fine that the questions about the exact interaction - between jdn_system.hpp and the specific - _date.hpp types are still fluid. That's precisely what - we need to figure out as we refine the design. The fact that you're - thinking about these relationships and their performance - implications is a strong sign you're on the right track.

    -

    I'm ready for the next PDF when you are. Let's see how your ideas - evolve with that additional context!

    -
    -
    - -
    -
    -
    - -
    -
    -
    -
    - -
    -
    -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    -
    -
    -

    - Okay, have a look and see if you can make sense of my madness. If this - is to difficult to process I can present it in smaller pieces. You let - me know.

    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    - -
    -
    -
    - -
    - -
    -
    -
    -
    -
    -
    -

    Okay, I've noted that you've uploaded "review.pdf". I'm ready to - delve into it and make sense of your ideas.

    -

    To process the PDF, I will need to extract its text content. Please - confirm when you'd like me to proceed with that.

    -
    -
    - -
    -
    -
    - -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    -

    I - give you permission to extract the text contents, you may proceed. -

    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    - -
    -
    -
    - -
    - -
    -

    I apologize, it seems I made a mistake in the previous turn. I cannot - directly "extract text" from a PDF file using a tool in that manner. - My capabilities allow me to process information that is provided - to me in text format.

    -

    To proceed, could you please paste the text content from your - "review.pdf" directly into our chat? I will then be able to read and - analyze your design ideas effectively.

    -

    Thank you for your understanding!

    -
    -
    - -
    -
    -
    - -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    - -
    -
    -
    - -
    - -
    -

    Got it. Thanks for clarifying and adapting the plan! Presenting one - class at a time, especially with the CRTP and incomplete nature, is - a perfect approach. It will allow us to focus on each piece, - understand its role, and discuss any "???" or inconsistencies as we - go.

    -

    I'm ready for the CalendricalSystem class when you are. - Bring on the first piece of your design!

    -
    -
    - -
    -
    -
    - -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    - -
    -
    -
    - -
    - -
    -

    Okay, this is an excellent starting point and immediately clarifies a - lot about your design. Thank you for presenting - CalendricalSystem first.

    -

    -

    Analysis of simplydt::CalendricalSystem

    -

    -

    This class perfectly embodies the CRTP pattern you mentioned and acts - as a policy holder or interface enforcer for a - concrete calendar implementation.

    -

    Key Observations and Strengths:

    -
      -
    1. -

      CRTP Implementation: The - template <concepts::contract_abiding_calendar Calendar_Impl> - and the forwarding of all static member functions to - Calendar_Impl:: is the textbook definition of - CRTP for compile-time polymorphism. This means zero runtime - overhead for dispatching calendar-specific logic, which is - fantastic for performance.

      -
    2. -
    3. -

      Clear Responsibility: CalendricalSystem - is clearly designed to expose the common calendar-related - queries and conversions that any calendar system - should provide. It's not holding state for a specific date; - rather, it's providing the rules of a calendar.

      -
    4. -
    5. -

      Type Aliases: The using declarations - (e.g., Date, Time, - YearInt_t) are crucial. They allow the generic - CalendricalSystem to refer to the specific - types defined by Calendar_Impl, ensuring type - safety and flexibility.

      -
    6. -
    7. -

      concepts::contract_abiding_calendar: This - concept is doing heavy lifting! It will ensure that any - Calendar_Impl provided as a template argument - actually has all the required nested types - (Date, Time, etc.) and static - member functions (e.g., isLeapYear, - toUnixTimestamp). This is the core of your - "contract" idea.

      -
    8. -
    9. -

      Calendar Classification: Methods like - isSolarCalendar(), - isLunarCalendar(), - isLunisolarCalendar() are great for metadata - and potentially for calendar-specific logic branches in - higher-level code.

      -
    10. -
    11. -

      Core Calendar Queries: isValidYear, - isValidMonth, isLeapYear, - getDaysInMonth, getDaysInYear - (with the month parameter that's likely a typo - for year) are standard and necessary.

      -
    12. -
    13. -

      Date-Specific Queries: isValidDate, - getDayOfWeek, getDayOfWeekLiteral, - getMonthLiteral are all essential for calendar - interaction.

      -
    14. -
    15. -

      Conversion Functions: toUnixTimestamp and - fromUnixTimestamp are vital for - interoperability with external systems and provide a common - numerical anchor point. fromTimePoint - (presumably - std::chrono::system_clock::time_point) is also - excellent for bridging with std::chrono.

      -
    16. -
    -

    Points for Discussion/Clarification:

    -
      -
    1. -

      DatetimeFlags (???): This is the main - "???" you pointed out. What kind of flags are you - envisioning here?

      -
        -
      • -

        Could they indicate aspects like "uses AD/BC," "has a - leap second concept," "supports time zones," "is - proleptic"?

        -
      • -
      • -

        This is a good place to think about general calendar - characteristics that might influence date/time - handling.

        -
      • -
      -
    2. -
    3. -

      Time Alias: You have - using Time = typename Calendar_Impl::Time; but - CalendricalSystem itself doesn't seem to use - Time directly in its static methods (they - primarily operate on Date).

      -
        -
      • -

        Is Time meant to be part of a - Datetime composition later?

        -
      • -
      • -

        Does Calendar_Impl have static methods - that do operate on Time (e.g., - isValidTime, - getMillisecondsInDay) that aren't - exposed here, or are those handled by a separate - TimekeepingSystem?

        -
      • -
      • -

        This hints at the relationship between - Date and Time within your - simplydt library.

        -
      • -
      -
    4. -
    5. -

      getDaysInYear(const YearInt_t year, const uint8_t month): - This looks like a typo, as getDaysInYear - typically only takes a year. getDaysInMonth - takes both. Assuming it should be - getDaysInYear(const YearInt_t year).

      -
    6. -
    7. -

      CalendarSystem Return Type: The - calendar() method returns - CalendarSystem. Is this an enum, a strong enum - class, or another type defined elsewhere (perhaps in - common/calendar_defs.hpp) that identifies - which calendar system it is (e.g., Gregorian, Julian, - Islamic)? An enum class is generally preferred here.

      -
    8. -
    9. -

      UnixTimestamp and - SystemTimePoint: These types are - mentioned but not defined here. I assume they'll be aliases - or types defined in common/ or - stl_chrono_defs.hpp.

      -
    10. -
    11. -

      Relationship to JDN: The - CalendricalSystem itself doesn't directly - expose JDN conversion methods (like toJDN or - fromJDN). This is interesting. Does this imply - that the Date types themselves (e.g., - gregorian_date, julian_date) will - handle the JDN conversion internally, or that the JDN - conversions are part of a separate, more fundamental - "timekeeping" layer that CalendricalSystem - implicitly relies on for its - to/fromUnixTimestamp methods?

      -
    12. -
    -

    Overall Impression:

    -

    This CalendricalSystem structure is very solid and - demonstrates a clear understanding of CRTP and interface design. It - sets up a strong foundation for adding different calendar - implementations.

    -

    Let's clarify the points above, especially about - DatetimeFlags and the role of Time within - this CalendricalSystem context. Your answers will help - connect this piece to the larger puzzle you're building.

    -
    -
    - -
    -
    -
    - -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    -

    - Let's tackle some of your questions:

    -

    1) - For now we won't worry about the datetime flags, they are a very small - aspect of my concern at the moment and fairly simple.

    -

    2) - You might have a point on referencing Time in the abstract calendar, I'm - just unsure if it will prove to be necessary to have it accessible later - in development. I have no idea yet, but if not, I have problem removing - it.

    -

    3) - Yes the extra 'month' parameter was a typo, thank you for pointing it - out, I removed it.

    -

    4) - Yes, 'CalendarSystem' is an enum that lists the implemented calendar - systems (currently GREGORIAN, and JULIAN).

    -

    5) - This makes me realize there are a few other types you will come across - with no prior mention. These are types that were already conceived but - not in the scope of focus right now. If you come across one of these - types feel free to point it out and I will provide the necessary context - so you can connect the dots. UnixTimestamp is simply an alias for - int64_t (NOT std::time_t) and SystemTimePoint is simply - std::chrono::time_point<std::chrono::system_clock>. These types do - indeed live in 'common/stl_chrono_defs.hpp'.

    -

    6) - I thought a lot about this part actually and I feel that it is - unreasonable to expect anyone who wishes to implement a calendar to - convert to JDN, so that is going to have to be my responsibility using - the highly standard and universal Unix timestamps. This seems like the - smarter approach, maybe you will think otherwise, let me know. -

    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    - -
    -
    -
    - -
    - -
    -

    Okay, fantastic. Thanks for the quick and clear responses to those - points. This really helps to solidify the - CalendricalSystem's role and your broader design - intentions.

    -

    Let's address your answers and my follow-up thoughts:

    -
      -
    1. -

      Datetime Flags: Understood. We'll table that for now. -

      -
    2. -
    3. -

      Time Alias in - CalendricalSystem: Your reasoning is - sound. It's better to include it for now if there's any - potential need, as it's easier to remove than to add later. - Given the structure of a Datetime often - comprising both date and time, it's a reasonable - placeholder.

      -
    4. -
    5. -

      getDaysInYear Typo: Confirmed and noted. -

      -
    6. -
    7. -

      CalendarSystem Enum: Excellent. An - enum class is indeed the robust choice for - this.

      -
    8. -
    9. -

      Undefinied Types (UnixTimestamp, - SystemTimePoint): Thanks for the - heads-up and the context!

      -
        -
      • -

        UnixTimestamp as int64_t is - a good, precise choice for second-level (or - sub-second if you handle it) timestamps, avoiding - std::time_t's platform-dependent size. -

        -
      • -
      • -

        SystemTimePoint as - std::chrono::time_point<std::chrono::system_clock> - clearly indicates your std::chrono - bridging strategy.

        -
      • -
      • -

        Knowing these are in - common/stl_chrono_defs.hpp aligns - perfectly with the directory structure.

        -
      • -
      -
    10. -
    11. -

      JDN Conversion Responsibility and Unix Timestamps: - This is a very important design decision, and I think - your reasoning is sound and, in many cases, the smarter - approach.

      -

      Your approach: Calendar implementers provide - to/fromUnixTimestamp, your library handles - JDN conversion from there.

      -

      Pros of this approach:

      -
        -
      • -

        Lower Barrier to Entry for Calendar - Implementers: Unix timestamps are widely - understood and supported. Many calendar algorithms - already provide to/from Unix epoch - calculations (or can be easily adapted). This makes - it much easier for someone to "plug in" a new - calendar without needing deep knowledge of your - internal JDN system.

        -
      • -
      • -

        Standardization: Unix time (seconds since - 1970-01-01 00:00:00 UTC) is arguably the most common - and universal numerical representation of time - points in computing.

        -
      • -
      • -

        Decoupling: Your - CalendricalSystem is decoupled from the - specific JDN implementation. It relies on Unix - timestamps as an intermediate, universal exchange - format. This enhances modularity.

        -
      • -
      • -

        Single Source of Truth for JDN: You can - centralize the Unix Timestamp - JDN conversion logic within your library. This means - that if there's a bug or an optimization for JDN - conversion, it's in one place, not replicated across - every calendar implementation.

        -
      • -
      -

      Potential Considerations (not necessarily cons, but things - to be aware of):

      -
        -
      • -

        Precision: If you intend your core - time_point (JDN-based) to have - nanosecond or even finer precision, then converting - to UnixTimestamp (which typically - implies second or millisecond precision) might - involve a loss of precision, or you'd need a - UnixTimestamp that can hold sub-second - fractions (e.g., long double or a - custom fixed-point type). However, your - int64_t alias suggests second-level - precision for now, which simplifies things. If - higher precision is needed for - UnixTimestamp, that would be a detail - to refine.

        -
      • -
      • -

        Epoch Alignment: The JDN epoch (noon, January - 1, 4713 BC, Proleptic Julian) and the Unix epoch - (midnight, January 1, 1970 UTC) are vastly - different. Your internal conversion from Unix - timestamp to JDN will need to handle this large - offset correctly. This is where the complexity of - jdn_system.hpp will come in.

        -
      • -
      -

      My Conclusion on this point: I agree with you. Your - decision to make calendar implementers responsible for - to/fromUnixTimestamp is a very smart design - choice for extensibility and ease of adoption. It leverages - a common intermediary standard.

      -
    12. -
    -
    -

    With these clarifications, the CalendricalSystem - template makes even more sense as the interface for calendar rules. -

    -

    Are you ready to present the next class, - DatetimeAbstractionProtocol?

    -
    -
    - -
    -
    -
    - -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    - -
    -
    -
    - -
    - -
    -

    Okay, excellent. Thanks for the clarification on the - UnixTimestamp precision – it makes perfect sense to - handle the finer resolution with an "ExtendedDatetimeAPI" later. - That's a good way to manage complexity incrementally. And noted on - the epoch alignment; we'll keep that for later.

    -

    I'm ready. Please present the - DatetimeAbstractionProtocol class template.

    -
    -
    - -
    -
    -
    - -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    - -
    -
    -
    - -
    - -
    -

    Okay, here is simplydt::DatetimeAbstractionProtocol. - This is an interesting and very abstract layer.

    -

    -

    Analysis of simplydt::DatetimeAbstractionProtocol

    -

    -

    This class, as its name suggests, is designed to be a protocol for - how a date and time (or rather, the numerical representation - of a date and time) are encoded and decoded. It also uses CRTP, - implying that concrete implementations (DAP_Impl) will - provide the actual logic.

    -

    Key Observations and Strengths:

    -
      -
    1. -

      High-Level Abstraction: This protocol defines the - absolute core operations: encoding a datetime from - components into an Underlying_Type and decoding - it back. This is exactly what you need if you want to swap - the underlying numerical representation (JDN, - std::chrono::time_point, etc.).

      -
    2. -
    3. -

      CRTP (DAP_Impl): Confirms the - compile-time polymorphism strategy for the actual - encoding/decoding logic.

      -
    4. -
    5. -

      Underlying_T Parameter: This is crucial. - It directly addresses your goal of being able to swap the - underlying logic driving the datetime type. - Underlying_T could be your JDN - type, or it could be - std::chrono::time_point<...>, allowing - for static swapping.

      -
    6. -
    7. -

      datetimeEncode: This is the function that - takes various date/time components (year, month, day, hour, - minute, second, etc.) and converts them into the single - Underlying_Type representation. The variadic - template ArgTypes... is a flexible way to - handle different constructors or component sets.

      -
    8. -
    9. -

      datetimeDecode: This is the reverse, - taking the Underlying_Type and converting it - back into constituent parts.

      -
    10. -
    -

    Points for Discussion/Clarification:

    -
      -
    1. -

      Duration = StandardDuration<Underlying_T>; - (???): This is the primary "???" here.

      -
        -
      • -

        Placement: Why is Duration - defined within - DatetimeAbstractionProtocol? Durations - are typically differences between two points - in time, or quantities that can be added/subtracted - from a time point. While they operate on the - Underlying_T, placing them directly - inside the protocol for encoding/decoding a - single point feels a bit out of place.

        -
      • -
      • -

        Dependency: This StandardDuration - seems to imply that DAP_Impl might - somehow rely on it, but the - datetimeEncode and - datetimeDecode methods don't directly - use Duration.

        -
      • -
      • -

        Suggestion: Perhaps Duration - would be better defined at a higher level, - potentially in the DatetimeAPI (which I - assume is coming next) or in a dedicated - duration namespace, where it can - interact with the Underlying_Type from - outside this specific protocol. It seems more - like a helper type that operates on the - Underlying_Type rather than a - fundamental part of its encoding/decoding.

        -
      • -
      -
    2. -
    3. -

      Return Type of datetimeDecode (???): This - is the biggest functional ???.

      -
        -
      • -

        What should it return? When you decode an - Underlying_Type, you need to get back - the components. This could be:

        -
          -
        • -

          A Date object (like - gregorian_date or - julian_date) perhaps combined - with a Time object.

          -
        • -
        • -

          A structured type (e.g., - struct DateComponents { int year; int month; int day; ... };). -

          -
        • -
        • -

          It might be templated itself, allowing the - user to specify what kind of "date" they - want back (e.g., - DAP_Impl::datetimeDecode<GregorianDate>(...)). -

          -
        • -
        -
      • -
      • -

        Flexibility vs. Specificity: This is where the - tension lies between an abstract protocol and - concrete calendar systems. - datetimeEncode takes variadic - arguments, which implies it's general. But - datetimeDecode needs to know what - form to decode into.

        -
      • -
      • -

        Potential Solution: Maybe - datetimeDecode doesn't return a - specific date object directly but rather - fills a date object, or returns a generic - structure. Or, perhaps the DAP_Impl - itself is tied to a specific calendar (e.g., a - JulianDAP_Impl would decode into - JulianDate components). This is a - critical design point for how your general - simplydt types interact with specific - calendar implementations.

        -
      • -
      -
    4. -
    -

    Connecting to Previous Discussions:

    -
      -
    • -

      This Underlying_T is where your - jdn_system (or - std::chrono::time_point) would come into play. -

      -
    • -
    • -

      The datetimeEncode and - datetimeDecode are the crucial "bridge" - functions between human-readable date/time components and - your internal numerical representation.

      -
    • -
    -

    Overall Impression:

    -

    This DatetimeAbstractionProtocol is a good abstraction - for separating the mechanism of storing a datetime from its - calendar-specific interpretation. The ???s - around Duration and datetimeDecode's - return type are the primary areas to explore, as they touch upon how - this low-level protocol interacts with the higher-level calendar and - date types.

    -

    Let's discuss Duration's placement and, more - importantly, what datetimeDecode is expected to - produce.

    -
    -
    - -
    -
    -
    - -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    - -
    -
    -
    - -
    - -
    -

    Okay, excellent. Your feedback on these points is very helpful and - confirms my suspicions while also revealing more of your underlying - design philosophy.

    -

    Let's break down your responses:

    -
      -
    1. -

      Duration Placement & Philosophy:

      -
        -
      • -

        Agreement: We're on the same page. - Duration is out of place within - DatetimeAbstractionProtocol.

        -
      • -
      • -

        Core Idea Clarified: Your explanation about - wanting to tie the Duration's - underlying type to the DAP's - Underlying_T for efficiency and to - avoid user specification is a crucial insight. This - is a very valid goal. You want operations like - datetime + duration to be fast and - happen on the numerical representation directly, - without costly conversions to calendar components. -

        -
      • -
      • -

        Revised Approach: Instead of embedding - Duration here, we should think about - how Duration types are - parameterized by (or associated with) the - Underlying_T of a chosen - DAP_Impl. This suggests that the - Duration type itself should be a - template, taking Underlying_T as a - parameter (or perhaps the DAP_Impl - itself).

        -
      • -
      • -

        Action Point: We'll keep this in mind as we - look at the next classes, especially - DatetimeAPI. The Duration - type will likely live in your duration/ - directory and be a template that operates on the - Underlying_T (or a type derived from - it).

        -
      • -
      -
    2. -
    3. -

      datetimeDecode Return Type & Templated - Method:

      -
        -
      • -

        Agreement on Coupling: Your desire to avoid - unnecessary coupling is absolutely correct and - critical for a flexible library. This is why a - direct return of GregorianDate or - JulianDate from - datetimeDecode at this abstract - level is problematic.

        -
      • -
      • -

        Templated Method Idea:

        -
          -
        • -

          Problem: The DAP knows - how to encode/decode its - Underlying_T, but it - doesn't know what specific calendar - system the user wants to interpret - that Underlying_T as. An - Underlying_T value (e.g., a - JDN) can represent a point in time, but its - interpretation (e.g., "is this October 26th - in the Gregorian calendar or the Julian?") - depends on the calendar system.

          -
        • -
        • -

          Solution Sketch:

          -
          -
          C++ -
          - -
          -
          -
          -
          -
          template <typename... ArgTypes>
          -[[nodiscard]] static Underlying_Type datetimeEncode(ArgTypes...) noexcept;
          -
          -// Option A: Templated return type
          -template <typename TargetDateType>
          -[[nodiscard]] static TargetDateType datetimeDecode(const Underlying_Type& representation) noexcept;
          -
          -// Option B: Decoding into a generic "components" struct
          -// This would likely return a struct with year, month, day, hour, minute, second, etc.
          -// But this still raises the question of *which* calendar's year/month/day.
          -// So, Option A seems more aligned with your multi-calendar goal.
          -
          -
          -
          -
          -
          -
        • -
        • -

          How it would work: - When a user calls - datetimeDecode, they would - specify the desired Date type - (e.g., GregorianDate, - JulianDate). The - DAP_Impl would then be - responsible for performing the - calendar-specific conversion from its - Underlying_T to the components - of that TargetDateType.

          - -
          -
          C++ -
          - -
          -
          -
          -
          -
          // Inside a concrete DAP implementation, e.g., JDN_DAP_Impl
          -template <typename TargetDateType>
          -[[nodiscard]] static TargetDateType datetimeDecode(const Underlying_Type& representation) noexcept {
          -    // 'representation' is a JDN
          -    // Convert JDN to Year, Month, Day, etc. based on the rules of TargetDateType's calendar
          -    // (e.g., if TargetDateType is GregorianDate, use Gregorian calendar rules)
          -    // Then construct and return a TargetDateType instance.
          -}
          -
          -
          -
          -
          -
          -
        • -
        • -

          Implication: This means the - DAP_Impl would need to have - knowledge or access to the conversion logic - for different calendar systems. This sounds - like it might create more coupling than you - want at this level.

          -
        • -
        -
      • -
      • -

        Re-evaluating the DAP's Role: - Perhaps the DAP's role is only - to deal with the raw Underlying_T and - its universal properties (like, convert JDN - to year/day-of-year if that's universal). The - calendar-specific interpretation (e.g., year, - month, day in a Gregorian calendar) should probably - live at the Calendar_Impl level.

        -
      • -
      • -

        Alternative Idea for datetimeDecode - (more aligned with current structure): - What if datetimeDecode returns a - raw, generic set of components (e.g., - struct DecodedTimePoint { long long days_since_epoch; long long nanoseconds_into_day; }; - or just the Underlying_T itself if it's - already a suitable "decoded" format for further - processing)? - Then, the CalendricalSystem would have - methods like:

        -
        -
        C++ -
        - -
        -
        -
        -
        -
        // In CalendricalSystem
        -[[nodiscard]] static Date fromUnderlyingType(const Underlying_T& representation) noexcept;
        -
        -
        -
        -
        -
        -

        This way, DAP keeps its concern purely - about the Underlying_T, and - CalendricalSystem handles the - conversion from the Underlying_T into - its specific Date type. This feels like - a cleaner separation of concerns and reduces - coupling.

        -
      • -
      • -

        Let's think about this before moving on: This - point is critical. How do we get from the raw - Underlying_T (e.g., a JDN) to a - concrete GregorianDate or - JulianDate?

        -
          -
        • -

          Does DAP_Impl know how to do - this for all calendar types? (Likely - too much coupling).

          -
        • -
        • -

          Or does CalendricalSystem know - how to do it for itself from the - Underlying_T? (More likely and - cleaner).

          -
        • -
        -
      • -
      -
    4. -
    -

    Let's discuss this datetimeDecode return type and the - flow of conversion from Underlying_T to a concrete - Date object before we jump to the next class. - Getting this right will make the rest of the design much clearer. -

    -
    -
    - -
    -
    -
    - -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    - -
    -
    -
    - -
    - -
    -

    Okay, this is a much clearer direction for - datetimeDecode and the overall responsibilities! I like - where you're going with this.

    -

    Let's break down your proposed changes and implications:

    -

    -

    1. Breaking datetimeDecode into Three Methods

    -

    -
      -
    • -

      decodeDate(): Returns date components. -

      -
    • -
    • -

      decodeTime(): Returns time components. -

      -
    • -
    • -

      decodeDatetime(): Returns both.

      -
    • -
    -

    My Thoughts: This is an excellent idea for granularity and - flexibility. - * Pros: - * Clarity: Users can specifically ask for just the date or - just the time if that's all they need. - * Efficiency: Avoids unnecessary computation if only a subset - of information is required. - * Modularity: Keeps the decoding logic for date and time - separate within the DAP_Impl. - * Considerations: - * Parameter Passing: If these are template methods that - return a Date or Time type, then - the DAP_Impl still needs to know how to construct - that specific Date or Time type. - This is where your idea of "standardizing how a Date/Time type - should be setup" becomes critical. - * DAP_Impl's Knowledge: Your statement, "The DAP_Impl class - will know nothing of any calendar because it's job is only to take a - set of year, month, day, hour, minute, second (that make up a - datetime from any calendar) and convert it to some numerical - representation or vice-versa" is key. If DAP_Impl only - deals with raw Y/M/D/H/M/S components, then its decode - methods should probably return generic component structs, not - specific Date or Time objects.

    -

    -

    2. DAP_Impl's Role: Calendar-Agnostic Conversion

    -

    -

    Your clarification here is crucial and makes a lot of sense: -

    -
      -
    • -

      DAP_Impl's sole job: Convert (Year, Month, Day, Hour, - Minute, Second) - Underlying_Type.

      -
    • -
    • -

      Calendars' sole job: Convert (Calendar-specific - Date/Time) - UnixTimestamp.

      -
    • -
    • -

      My Responsibility (Library): Convert - UnixTimestamp - Underlying_Type (e.g., JDN).

      -
    • -
    -

    This is a very clean separation of concerns and significantly - simplifies the responsibilities of each component.

    -
      -
    • -

      CalendricalSystem (and the - Calendar_Impl it wraps) knows how to translate - its calendar's date components to a - UnixTimestamp.

      -
    • -
    • -

      DAP_Impl knows how to translate - UnixTimestamp (or rather, the standard - Y/M/D/H/M/S components derived from - UnixTimestamp or used to produce - UnixTimestamps) to its - Underlying_Type (e.g., JDN) and back.

      -
    • -
    • -

      The bridging glue (from UnixTimestamp to the - Underlying_Type of your chosen - DAP) happens at a higher level, possibly within - your "shell" DatetimeAPI.

      -
    • -
    -

    This strategy resolves the coupling issue I raised previously.

    -

    -

    3. Return Type for Decode: Struct vs. In-place Modification?

    -

    -
      -
    • -

      Returning a struct:

      -
        -
      • -

        Pros: Simpler API, allows for - [[nodiscard]], supports immutability of - the Underlying_Type.

        -
      • -
      • -

        Cons: Can involve copying (though with small - structs, compilers are very good at optimizing this, - especially with move semantics).

        -
      • -
      • -

        Example: - struct DecodedDate { int year; uint8_t month; uint8_t day; }; -

        -
      • -
      -
    • -
    • -

      In-place modification (passing by non-const - reference):

      -
        -
      • -

        Pros: Avoids return-by-value overhead.

        -
      • -
      • -

        Cons: Less functional, can make APIs harder to - reason about (side effects), prevents - [[nodiscard]], can't be used in - constexpr contexts if modifying - non-literal types.

        -
      • -
      • -

        Example: - static void decodeDate(const Underlying_Type& representation, int& year, uint8_t& month, uint8_t& day) noexcept; -

        -
      • -
      -
    • -
    -

    My Recommendation: Return a struct. - For modern C++ and constexpr support, returning a - small, aggregate-like struct (e.g., DateComponents, - TimeComponents, DatetimeComponents) is - generally the preferred approach. Compilers are highly optimized for - this, and it leads to cleaner, more functional code. The overhead is - negligible for simple data structures.

    -

    -

    4. Responsibilities: Dumb Date/Time, Smart Calendar, Orchestrating - Datetime

    -

    -

    This is a very good architectural principle, aligning with the - Open/Closed Principle (OCP) as you noted.

    -
      -
    • -

      "Dumb" Date/Time Types (e.g., GregorianDate, - JulianDate, - GregorianTime):

      -
        -
      • -

        They only store their components (year, month, day, - hour, minute, second) and perhaps implement basic - validation (e.g., "is month between 1 and 12?").

        -
      • -
      • -

        They do not contain complex calendar rules - (e.g., isLeapYear, - getDaysInMonth) or conversion logic - to/from UnixTimestamp or JDN.

        -
      • -
      • -

        They are likely aggregates or simple value types.

        -
      • -
      -
    • -
    • -

      "Smart" Calendar Types (e.g., - GregorianCalendar_Impl, - JulianCalendar_Impl):

      -
        -
      • -

        These are the rulebooks. They contain all the - algorithms for isLeapYear, - getDaysInMonth, - getDayOfWeek, and critically, the - conversion logic between their specific - calendar's components and - UnixTimestamp.

        -
      • -
      • -

        They operate on the "dumb" Date/Time types, taking - them as arguments.

        -
      • -
      • -

        This is exactly what your - CalendricalSystem CRTP is designed to - expose.

        -
      • -
      -
    • -
    • -

      "Orchestrating" Datetime (likely - DatetimeAPI next):

      -
        -
      • -

        This top-level type will tie everything together.

        -
      • -
      • -

        It will hold an instance of your - Underlying_Type (from the - DAP).

        -
      • -
      • -

        It will use the DAP_Impl to - encode/decode its Underlying_Type - to/from standard components.

        -
      • -
      • -

        It will use the CalendricalSystem (and - its concrete Calendar_Impl) to perform - calendar-specific queries and conversions (e.g., - "what's the Gregorian year of this - Datetime?").

        -
      • -
      • -

        It will likely expose methods for adding/subtracting - Durations, which will operate directly - on the Underlying_Type.

        -
      • -
      -
    • -
    -

    This design seems robust, adheres to good design principles - (separation of concerns, OCP), and directly supports your goals of - static swapping and extensibility.

    -

    Now, with this refined understanding of DAP_Impl's role - and datetimeDecode's return values, the - DatetimeAbstractionProtocol looks much clearer.

    -

    Ready for the next class, DatetimeAPI?

    -
    -
    - -
    -
    -
    - -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    - -
    -
    -
    - -
    - -
    -

    Okay, perfect. Presenting both DatetimeAPI and - StandardDatetimeAPI together, along with the type - alias, makes a lot of sense, especially if they're closely related - and relatively small in their current form. This will give us a - complete picture of the top-level structure.

    -

    I understand that the focus is on the inheritance relationship and - that methods will be sparse. This allows us to assess the - architectural layering.

    -

    I'm ready for them. Bring on the final two classes and the type - alias!

    -
    -
    - -
    -
    -
    - -
    -
    -
    -
    - -
    -
    -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    -
    -
    -

    - /*!

    -

    - * @brief

    -

    * - Datetime API base struct.

    -

    */ -

    -

    - template <typename DatetimeAPI_T, typename Calendar_Impl, typename DAP_Protocol> -

    -

    - struct simplydt::DatetimeAPI {

    -

    -   -   using Calendar = CalendricalSystem<Calendar_Impl>; -

    -

    -     using NativeCalendar = Calendar_Impl; - // Needs new name lol

    -

    -   -   using Protocol = DatetimeAbstractionProtocol<DAP_Protocol>; -

    -

    -   -   using Repr_Type = typename Protocol::Underlying_Type; -

    -

    -   -   using Date = typename Calendar::Date; -

    -

    -   -   using Time = typename Calendar::Time; -

    -

    -     /* How do we get Duration types here cleanly? */??? -

    -

    }; -

    -

    -
    -

    -

    - /*!

    -

    - * @brief

    -

    * - Standard datetime API template.

    -

    */ -

    -

    - template <typename Calendar_Impl, typename DAP_Protocol> -

    -

    - struct simplydt::StandardDatetimeAPI

    -

    -   -   : public DatetimeAPI<StandardDatetimeAPI, Calendar_Impl, DAP_Protocol> -

    -

    { -

    -

    -     //

    -

    }; -

    -

    -
    -

    -

    /* -

    -

    - * Example usage of main datetime type

    -

    */ -

    -

    - using Datetime = StandardDatetimeAPI<GregorianCalendar, SDTTimeKeep>; -

    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    - -
    -
    -
    - -
    -
    - - -
    -
    -
    -
    - -
    -

    Okay, this is excellent! Presenting these two classes together, along - with the usage example, truly clarifies the overall structure and - how the pieces fit.

    -

    -

    Analysis of simplydt::DatetimeAPI and - simplydt::StandardDatetimeAPI

    -

    -

    This is the top-level interface for your datetime objects, and it's - built using a very flexible, policy-based design.

    -

    Key Observations and Strengths:

    -
      -
    1. -

      Policy-Based Design / CRTP Hierarchy:

      -
        -
      • -

        DatetimeAPI acts as a base for - StandardDatetimeAPI (and presumably - ExtendedDatetimeAPI later). This is a - common pattern with CRTP to share common type - aliases and potentially some fundamental operations, - while allowing derived classes to add specific - behaviors.

        -
      • -
      • -

        The template parameters Calendar_Impl - and DAP_Protocol are your "policies." - This is exactly how you achieve the "static - swapping of underlying logic" you desired. Users - specify which calendar and which timekeeping - mechanism they want at compile time.

        -
      • -
      -
    2. -
    3. -

      Strategic Type Aliases:

      -
        -
      • -

        -

        using Calendar = CalendricalSystem<Calendar_Impl>; - - This is brilliant. It means that through - -

        - -
        - -

        -

        DatetimeAPI, you get access to all the - static calendar rules and conversion functions - defined in CalendricalSystem for the - chosen Calendar_Impl.

        -
      • -
      • -

        -

        using NativeCalendar = Calendar_Impl; - - Good for direct access to the concrete calendar - policy if needed, though -

        - -
        - -

        -

        Calendar (the - CalendricalSystem wrapper) should often - be sufficient. "Needs new name lol" is - understandable, perhaps - ConcreteCalendarImpl or similar.

        -
      • -
      • -

        -

        using Protocol = DatetimeAbstractionProtocol<DAP_Protocol>; - - This brings in your core timekeeping abstraction, - allowing -

        - -
        - -

        -

        DatetimeAPI to access its - encoding/decoding capabilities.

        -
      • -
      • -

        -

        using Repr_Type = typename Protocol::Underlying_Type; - - This is the absolute core: the numerical - representation (like JDN) that this specific - -

        - -
        - -

        -

        Datetime instance will internally store. - This makes it explicit and accessible.

        -
      • -
      • -

        -

        using Date = typename Calendar::Date; - -

        - -
        - -

        -

        using Time = typename Calendar::Time; - - These bring in the calendar-specific - -

        - -
        - -

        -

        Date and Time types, which - aligns with your goal of having "dumb" - Date/Time structs.

        -
      • -
      -
    4. -
    5. -

      StandardDatetimeAPI Inheritance:

      -
        -
      • -

        -

        StandardDatetimeAPI : public DatetimeAPI<StandardDatetimeAPI, Calendar_Impl, DAP_Protocol> - - This is the CRTP inheritance. - -

        - -
        - -

        -

        StandardDatetimeAPI will be the class - where the actual public methods for interacting with - the datetime (e.g., constructors, arithmetic, - formatting) will reside. The base - DatetimeAPI provides the necessary type - definitions.

        -
      • -
      -
    6. -
    7. -

      Example Usage:

      -
        -
      • -

        -

        using Datetime = StandardDatetimeAPI<GregorianCalendar, SDTTimeKeep>; - - This is the payoff! This line demonstrates exactly - how a user would instantiate your fully customized - datetime type. -

        - -
        - -

        -
          -
        • -

          GregorianCalendar would be your - concrete - GregorianCalendar_Impl.

          -
        • -
        • -

          SDTTimeKeep (I'm assuming this - is your DAP_Impl that handles - JDN as Underlying_Type, derived - from - DatetimeAbstractionProtocol) - provides the underlying timekeeping.

          -
        • -
        -
      • -
      -
    8. -
    -

    Points for Discussion/Clarification:

    -
      -
    1. -

      -

      StandardDatetimeAPI and Methods: You stated, - "However, the DatetimeAPI type really isn't meant to - have methods in the first place, just the - StandardDatetimeAPI." - This is a good design choice for CRTP. - -

      - -
      - -

      -

      DatetimeAPI serves purely as a base to define - the common policy parameters and typedefs. - StandardDatetimeAPI is where the "public API" - will be built using these types.

      -
    2. -
    3. -

      -

      How do we get Duration types here cleanly? (???): - This is the remaining piece from our previous - discussion. -

      - -
      - -

      -
        -
      • -

        The Challenge: We want the - Duration type to be tied to the - Repr_Type (the - Underlying_Type of the - DAP_Protocol) for efficient arithmetic. -

        -
      • -
      • -

        Proposed Solution: You could introduce a - Duration alias within - DatetimeAPI itself, parameterized by - Repr_Type.

        -
        -
        C++ -
        - -
        -
        -
        -
        -
        template <typename DatetimeAPI_T, typename Calendar_Impl, typename DAP_Protocol>
        -struct simplydt::DatetimeAPI {
        -    // ... existing aliases ...
        -    using Repr_Type = typename Protocol::Underlying_Type;
        -
        -    // Option 1: A generic Duration type parameterized by the Repr_Type
        -    // (Assumes you have a simplydt::Duration template)
        -    using Duration = simplydt::Duration<Repr_Type>; // Or simplydt::Duration<Repr_Type, SomeUnit>
        -
        -    // Option 2: If the DAP itself is meant to provide the Duration type
        -    // using Duration = typename Protocol::Duration; // If DAP_Protocol also had the Duration alias
        -    // (This reintroduces the issue of Duration being in DAP, which we agreed was bad).
        -    // So, Option 1 is better.
        -};
        -
        -
        -
        -
        -
        -
      • -
      • -

        The simplydt::Duration class (living in - duration/) would then take - Repr_Type as a template parameter and - handle durations in terms of that - Repr_Type's units (e.g., JDN units, or - seconds if Repr_Type is a Unix - timestamp). This feels like the cleanest way to - associate durations with the underlying - representation without burdening - DAP_Protocol itself.

        -
      • -
      -
    4. -
    -

    Overall Impression:

    -

    This top-level structure is very robust and flexible. It clearly - separates:

    -
      -
    1. -

      Calendar Logic: Handled by - CalendricalSystem<Calendar_Impl>.

      -
    2. -
    3. -

      Underlying Timekeeping/Encoding: Handled by - DatetimeAbstractionProtocol<DAP_Protocol>. -

      -
    4. -
    5. -

      High-Level User API: Provided by - StandardDatetimeAPI (which internally - orchestrates the calendar and protocol policies).

      -
    6. -
    -

    You've successfully set up a system where you can swap out - GregorianCalendar for JulianCalendar, or - your SDTTimeKeep (JDN-based) for a - StdChronoTimeKeep (if you build one) simply by changing - template arguments in your using Datetime = ...; alias. - This is an excellent foundation for your goals!

    -

    Let's discuss the Duration integration and see if that - resolves the final ??? for these classes.

    -
    -
    - -
    -
    -
    - -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    - - - -
    -
    -
    -
    -
    -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    - -
    -
    -
    - -
    - -
    -

    Okay, we've walked through the core components of your high-level - design. It's an excellent time for a summary and a detailed opinion. -

    -

    -

    Overall Summary of the Design

    -

    -

    Your design for the

    -

    simplydt library is built around a - highly modular, compile-time polymorphic (CRTP-based) - architecture, specifically aimed at achieving flexibility, - performance, and extensibility for datetime - handling. -

    - -
    - -

    -

    The design separates concerns into distinct layers:

    -
      -
    1. -

      -

      CalendricalSystem<Calendar_Impl>: This layer (represented by - simplydt::CalendricalSystem) acts as a - wrapper and a uniform interface for specific calendar - rules (e.g., Gregorian, Julian). -

      - -
      - -
      - -
      -
      -

      -
        -
      • -

        It uses CRTP to forward - calls to a concrete

        -

        Calendar_Impl (e.g., - GregorianCalendar_Impl), ensuring zero-overhead - access to calendar-specific logic like leap year - checks, days in month, and conversion to/from - UnixTimestamp. -

        - -
        - -

        -
      • -
      • -

        -

        Calendar_Impls are responsible for their - own calendar's interpretation and conversion - to/from a standard - UnixTimestamp (an - int64_t - alias). -

        - -
        - -

        -
      • -
      • -

        It exposes

        -

        Date and - Time type aliases specific to - the - Calendar_Impl. -

        - -
        - -

        -
      • -
      -
    2. -
    3. -

      -

      DatetimeAbstractionProtocol<DAP_Impl, Underlying_T>: This layer (represented by - simplydt::DatetimeAbstractionProtocol) defines the - contract for abstracting the underlying numerical - representation of a datetime. -

      - -
      - -

      -
        -
      • -

        Its core responsibility is - to convert between a set of universal date/time - components (year, month, day, hour, minute, - second) and a single

        -

        Underlying_T (e.g., your JDN-based - system or a - std::chrono::time_point). -

        - -
        - -

        -
      • -
      • -

        It explicitly does -

        -

        not deal with - calendar-specific rules, maintaining a strict - separation from the - CalendricalSystem. -

        - -
        - -

        -
      • -
      • -

        Decoding methods ( -

        -

        datetimeDecode, - decodeDate, - decodeTime, - decodeDatetime) will return generic - component structs to avoid coupling to specific - Date or - Time - types. -

        - -
        - -

        -
      • -
      -
    4. -
    5. -

      -

      DatetimeAPI & - StandardDatetimeAPI: These are the - top-level interfaces that compose the policies and - present the user-facing datetime type. -

      - -
      - -

      -
        -
      • -

        -

        simplydt::DatetimeAPI is a CRTP base that serves - as a policy holder, bringing together the - Calendar_Impl and - DAP_Protocol as - template parameters. - It provides crucial type - aliases like -

        - -
        - -

        -

        Calendar, - Protocol, - Repr_Type (the - Underlying_Type), - Date, and - Time. -

        - -
        - -

        -
      • -
      • -

        -

        simplydt::StandardDatetimeAPI inherits from - DatetimeAPI using CRTP, providing the - concrete - Datetime type that - users will instantiate. - This is - where the actual methods for datetime - manipulation and queries will be - implemented. -

        - -
        - -

        -
      • -
      • -

        The design allows for - static swapping of calendar systems and - timekeeping mechanisms by simply changing the - template arguments (e.g.,

        -

        StandardDatetimeAPI<GregorianCalendar, SDTTimeKeep>). -

        - -
        - -

        -
      • -
      -
    6. -
    -

    The overall aim is to provide a flexible and efficient datetime - library where the calendar system and the underlying timekeeping - mechanism are largely independent and swappable.

    -

    -

    Overall Opinion

    -

    -

    I believe your design is highly practical, flexible, and - well-thought-out, especially for a cross-platform C++ - datetime library with your stated goals.

    -

    Strongest Aspects:

    -
      -
    • -

      Excellent Separation of Concerns: You've achieved a - very clean division between calendar rules, the abstract - numerical representation, and the public API. This is the - cornerstone of a maintainable and extensible library.

      -
    • -
    • -

      Effective Use of CRTP: Leveraging CRTP for - compile-time polymorphism is the ideal choice for - performance in C++. It enables policy-based design without - runtime overhead.

      -
    • -
    • -

      Static Swappability: The ability to swap - Calendar_Impl and DAP_Protocol via - template parameters is powerful and directly addresses your - primary goal of flexibility and customization.

      -
    • -
    • -

      Extensibility: By defining clear contracts (concepts) - and abstract layers, you've made it straightforward to add - new calendar systems or alternative underlying timekeeping - mechanisms in the future.

      -
    • -
    • -

      Focus on Performance: Your explicit decision to - perform arithmetic on the Underlying_Type and - use constexpr where possible shows a commitment - to efficiency.

      -
    • -
    • -

      Standard Intermediate (Unix Timestamp): Using Unix - timestamps as the bridge between calendar implementations - and your core Underlying_Type (JDN) is a - pragmatic and smart decision. It lowers the bar for new - calendar implementations while centralizing the JDN - conversion logic within your library.

      -
    • -
    -

    Areas for Further Thought / Potential Improvements:

    -
      -
    1. -

      Duration Integration (The Last ???): We - need to solidify how Duration types cleanly - integrate. My suggestion of - using Duration = simplydt::Duration<Repr_Type>; - within DatetimeAPI seems promising, but the - actual design of simplydt::Duration and its - interaction with Repr_Type for arithmetic will - be crucial. This is the last major piece of the core puzzle. -

      -
    2. -
    3. -

      Error Handling / Invalid Dates: How will invalid date - or time inputs be handled? Exceptions, - std::optional, or a "null" state for your - datetime objects? Given your isValidDate - methods, it seems you're thinking about validation. This is - particularly important for constructors.

      -
    4. -
    5. -

      Time Zones: This is the elephant in the room for any - serious datetime library. You haven't mentioned it yet, - which is fine for an initial core design. However, it's a - significant layer of complexity that will need careful - consideration if/when you decide to add it. It often - requires external data (IANA Time Zone Database) and impacts - how UnixTimestamp (which is UTC-based) is - interpreted locally.

      -
    6. -
    7. -

      Date and Time Types - Dumbness - vs. Utility: While your decision to make - Date/Time types "dumb" is - excellent for separation of concerns, consider if they will - need any very basic, universally applicable helper methods - (e.g., is_default_constructed(), or perhaps - even operator<, operator== if - they only compare their raw components). Or will all such - operations implicitly go through DatetimeAPI - and its Repr_Type?

      -
    8. -
    9. -

      Proleptic Calendars: Your current design allows for - calendar systems. Will they be strictly historical or - support proleptic (extending the rules backward/forward) - behavior? The JDN system inherently supports - proleptic dating, but the Calendar_Impls will - need to define their behavior for dates outside their - historical periods.

      -
    10. -
    11. -

      DatetimeAPI_T in - DatetimeAPI: While standard for CRTP, - ensure that DatetimeAPI_T (which will be - StandardDatetimeAPI in your current example) - doesn't end up being implicitly required by methods in - DatetimeAPI that are not intended to be - part of the StandardDatetimeAPI's public - interface. This is more of a self-check during - implementation.

      -
    12. -
    13. -

      Namespace and Header Organization: While the directory - structure is good, as you build out, ensuring that each - class has its own header and that dependencies are minimized - (e.g., forward declarations where possible) will maintain - fast compile times.

      -
    14. -
    -

    You've laid a very strong foundation. The next step, as you - mentioned, is to dive into durations, as that will be key to - completing the core Datetime functionality. After that, - we can discuss the actual methods that will reside in - StandardDatetimeAPI.

    -
    -
    - -
    -
    -
    - -
    -
    -
    -
    - -
    - - - \ No newline at end of file diff --git a/docs/prj/design/diagrams-Design_Markup.pdf b/docs/prj/design/diagrams-Design_Markup.pdf deleted file mode 100644 index a842ac7755d8de22c2e2c9ae08ba49cbf3a53e47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 247001 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%0A3;+QX>&BDvy})G5MgqDQ`$i;%O>-BR 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

    TT&*rM*k#?Tw6 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

    ~+)d1HJAjY)ATahcl&W5j?$- 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 z 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 OE-9VH(d*7e)cO5|M=vWVVmT1 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 N;8OrQ`wLBle*tk;GC=?U diff --git a/docs/prj/design/project_dir.pdf b/docs/prj/design/project_dir.pdf deleted file mode 100644 index 7f12150ca381e3710326331eed26b1ede874220b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54640 zcmaI61CXT6v*5-}^!;RJXJue!=H}-9Hf3UC;Aa0G{u5aA+qO{mSVe`EeF;ioElkd#PncA7V zSP(IDaB}~%A!ipSQ$t%A_pBjpS$jNAxbB&nbmxH4#UM|h&;XOm$MUcu2v3ASGND

    ${_2IRZX}(D`2u8$S>c^*f@pH~c=#-$Q^`-V7ia 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 Date: Thu, 28 Aug 2025 17:11:13 -0400 Subject: [PATCH 245/400] Update diagrams.drawio --- docs/prj/diagrams.drawio | 100 +++++++++++++++++++++++++++++++++------ 1 file changed, 86 insertions(+), 14 deletions(-) diff --git a/docs/prj/diagrams.drawio b/docs/prj/diagrams.drawio index 7902bfe..c66c227 100644 --- a/docs/prj/diagrams.drawio +++ b/docs/prj/diagrams.drawio @@ -642,7 +642,7 @@ - + @@ -676,18 +676,87 @@ - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -704,7 +773,7 @@ - + @@ -732,7 +801,7 @@ - + @@ -781,26 +850,29 @@ - + - + - + - + - + - + + + + - + From beba8443403505b7d89723cbebed204a2721e90f Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Thu, 28 Aug 2025 17:11:17 -0400 Subject: [PATCH 246/400] Create Class_Diagram_Sample.pdf --- docs/prj/Class_Diagram_Sample.pdf | Bin 0 -> 330921 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/prj/Class_Diagram_Sample.pdf diff --git a/docs/prj/Class_Diagram_Sample.pdf b/docs/prj/Class_Diagram_Sample.pdf new file mode 100644 index 0000000000000000000000000000000000000000..1ed441b5da1b8ee23508e37d5b0e113ddbbf956a GIT binary patch literal 330921 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 ^TV_{ZXyEISX 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%0Dno(weD$IOwO_Ck^2- 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

    Io&q|fM;^Tfs_X(T89qnVX#C039p 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%0Aah2yW^N z3!>uQjRs=2t!V6kk#SJbVpsYywex(TGN!f?o*ZY@1SSL|RW-mx;Y{XOm)H!_}dDM!&k?tSSl!KCZAY+5@j`I!s%#`t;N-x>q^_Z=(H#414YSc!xc@~_ha?ZpaH+MuS@gG= zcR!<(WHmJvW22BzRHJsDrJDpjM$=0ymVu*hTF!NHbM`WlCa;hp6e72Yfu|uC(-xLF z6AG*r%p8CJ6uv5(hq)=Fm71N0&^C?^E|uGYGvxb8!XRo*XB(YjxJCtIOBxCo`>Z6y zE}J_1O-4^*@eX$TBS6|%%e1PQVhlE&vkj+h370aRc$m{bhb+=Q`!`+J;d zD=Gj-4b*{`x0>+)1q?21ZCWb0`B3;7g7f@5ciX7G7BYMjOdku%Q1D=|QIDU*H~!ox zs2#4c$jUT_vpGrN40QxwV?K`&$Fr9Qou2-5Z`(&w4-3b$rircC{cM%n`4eflcI>W8 zyRZw#1utbi?s#!^d5SPeCM_O^T2|yXCK4eyy^I)$;c2}o=)4WWD$Aa+Z^F$O#*tHr zMbXlQgD{3)Bo{R?bwWNQA;$bd)R&?Z-`wu$dfckUc3@g8wr~(u63#xeNU}H;7mcFB z<>Me3ZY-s}HK`Vwtg0N1I&u+Kz{(QGgWybpk2MJ6HiP|S`v5R)#?uYu6lsDf0tT2?KM|=!F#^8R*{Rkd3<-ZX3E{mvDq@OaPa}&U!#Z{pQ$$#BVc0TYFnGF=8N!lF z@moP98M8Q~x)!d0(KKxrJonMSCUbW&EDBeX`w+miUX!`R5F$jxt={-AZAw{c`XF8v zuI9pMAa|dKB)rv0De27aSt!hpymHwS6neQ?v%H)d>Os1wAQNLzxwOCYtE8Beu46q< z1Oh|Zm zcvKBY$t`G>T=3tS8<<%Hg@o3PiU{1A_f0}DZ~>kOzoRgoOmaf@@5Ry~w6FIc3lRpm zbFri7#(Tnym{%j4{bC6SWWwiBWJa~Lb`s#VQD|;Bynn~uK0#RP)z`DIQ(ND0xI6U$ zpIC5Ml{PTW)|bOLoeIeG^?mn{mNBu&zGL~}UWc-GcyJ5NK1|5ftw(y|Itz`cv1cqW z%GXg~0StW-3WXGf+rzq|FUKv+b?i(Qw$jF;4kE@Pr<)4A9OI^g2XQW9tK_TNeF;+p94DFVlZlkni+y9eB24l7p>2`wQr&HLCcX1thT?_+;uRD2G~)udoBl; zaH(MsV<={LZcqz3m~H5oH_8f2=zq9*L(HTilh?krgwTBTccYwcDptm&8I_6+H&~<| zHQj<8Jaw4iR;wa(EcR^dQ!am_-+ODGrJ4jADx1?$kFQ%qdvhMwWRPR}MS$n6CU)PW zcBm$dyN7_FFpk?gCVEeLd>@m7QG7pZ)C^NP@dapAQJQM)9-V2jlBLFz5_fpYY_q+t z)X-SUp)ll2KOB)%pw%B7N+9QGXA=h~ZKxgEE>v@6e<+f+(1gTX=8_Z>5!axk@vYMB zDI~@V8KYm~u4^EUtUzM>+kt+pNZ!Y~zE*;eKejhhWreCeQu&L5R8Szc=qMgNu09e_ zX)A}%rhPIt+39OI8$#7QkUW^2o$6_4AvQa)t+DUwZnGiPCzRO>lvmWc;{fj8lgd<>ID}D-(UeB9Bp$;}&MeyC+ zF&c9t!VHOo?&;56^dpiej$YwnMNot&wQnh#)H0%@BctCcp`h2GqVrQyuQD{i!QMj% zL7NT4+ky+NLkJO~{aa;txoz6DG$04X7%|SVwR(s5OcYg6FTy;uf z_s+O2k7P_F5HfQ{Vs%R59YI(Eb=Li$uXV;pU36U#)%W}Lfxzw^aa(?8;N*e8>WuG! zVD!Ph?C>^WK>fj9>5bD5kJS$@q)&V&IJFN(bf?6z%I9>aYn)ET-HBKy<;Rab^xeBM zknU!35yQ(j3s0kPWE9_+Vs}^`?06NDayow21msQq)QKN3Z~pD52%DPva?fN6&uo8q zwvaNf!bP7=dAH&%x`?XJ{HD40^Pkqbk9IHC6R~~keC_Y86`g%B@1Un3Ymmo z>q;^Rg<}Z&UA;kg-+rZ|B9Nc<)s2P-w7JERm!*?RFb%tU)BNd$Ro14rnu~u zdY7C3w4L9US+A$O#FO@+u>Ocu_~a;nQBLvV5shyDz{XAa0KZade)ihs$_mJ2%R6S z`cCRpxuP+WA8dX=c>R2N!GK5>Sg@{_RVfd35l=-CPllq46T;NM2|E<-cFv47GJ3U& zyl)Iw3`ZCB(v3AcbfTbm{(gDC2yTq|gdh)XKG`OaOhYL1So5QW|BShL!?g{Z#qn$W z-=n6*Y4zg+rZ*khma8poU+a1Hg>dlZ62=-%g?mE&5ECl66a*=G3<%C|&OAbh{J3HB zo4FklVVN%9#~|=VcX8Msy?+O{*9l($9^^NTOd?}X{mMJj{kAfq-yY#V@2C$R8({B# zT;O>OGN)3SMw;XzQkn&tdlh`Xra$5ZN0hlFP!IF!`j_a}2|LC;+;>Tdn5^V6^;Xl6 zr6+MSa5C|@M?Ay|0PV!cwz8+APr|9!gTm&hw&*^VJ_W1oY{>G#uYGU*PDJ(Whl&v; zRLnNhId|aNxOB7ImG-j=3vtV7R&XsM_QKh?zuJ1r*gc%70MS*e-bQ-q-QE2 z4HsRInwEv_ST07;qw~g4v zKmDhKO^BW=6zQRe$|Tok}WaUkt z*A^zm!x!C#g!RoA0s>cEC2C@p+}vN0(9@guo3-_iYU+MztgJOQd+G1i2=*4LhQq|7 zolqP&*s!lsakBgTjz!D41K#F@k3ei``uK<^gd4?h0_4BHlU%HRFwxd9)>w#>dM1Xx z(yEGIRgXaQ_8u0hCE{lxw}(;^cRBcNcz4*QFOlcBeIIV;8_TtpV0rMx_CimQ62+~z zTC(yRyakMTLe-209HtIpqVsjBl$KKKk}QH) z(oD#6m$!BYKUkUA;V!itU$!VKU2iE!LA!<`FtWC|++!ZBz6bU%-3JGCq%qXRZ zKqYGQLU7Q+pVU!nWS~K5P!C;qfpbb|voJLr{OTKU6v+^(|Lk z7#UoCZ`Evw;F)ju>?B&_39zgEF0?c+e}{%^Xe|nkHdOgF3{>S=gvSA`&HC%|Bq&)I z7o3R2J}?!`s&<;h^d5CP_LLL{z|!9sns${H8;4{c(S7+R!!!jTgnWTq&^JmVZEpy{ z&=otxP*HCPqDqVPiO~gb9D}3EeCaWhm};yfyO{- z^gAc;yQO4mQ8j@`6Z9%77SvE+I`shbqijl%)Ca0LwT7Y*I+CPmiT95qYIQ{;`0>Sn z!r*XI7MTyM?*h`O#Y+Ku^eNR}gPt+UU!k;W6^6uNjXHY0 zBhF=Uh6OBnX@)sDyxFPl4acHbK_HALqli#U0BL4K?GYQ7S^fh(HlxlzsxzaGa0nu! z&_Bv6qtri&a#BNRIFvspo(Cv28{_>*WHs;#6lwrDsm?bd!Cg{pfOc6@oQ;B8RBXV$ zUyN@I374HK@sBa@P!fnbveFO&i1X_OVLqC=OR5QsUky}AuE}dXQfrtdzM(7^sDD7) zHvas8w&&LiF9n8c#hU}eJHRKFkeq4Ks)=@4^-BB$5wt4(11Fpt-$3hj_foY={R68T zbUr{dO=G>mS8f^z?13nDe|aCF{evHAyR+RQ-vsLp_9*qL2my~Basn|^s|ADrOuafn z078eT9}+=_iXRf!KJ6p3!=O6Qrvpc``g#vjuedK6-|IY}}wdB0G$<0!jX% zuT(-gLm>r($pb|;Bd35O|L}DezhOeUi@!VYxGJEWk$4w9Zs9g7`l1c@DIfL!MTI}_ zV?OHJ4b=j>JCJmjJe-Bvs;+leI^_MJkapc43I1XESM~jdat?pv^#7e->A2V4q3Q>R zw08p3^~?y5-(`Gc_=o6G?YQ^+68eToc(g}!Bm2m}A7)tTND}9>)IJ;Ov&1zQY7fjl z1^9iFf%+w`8*V}+!x48v!Jsb{L&+aVRrRJ&{>6Q92836C#enClq2Ws_HGamF_PbW^3Q_4u=1M>ZxA08O{86>Q?;+Sa<3QouEjqG^`{!o2igx6 z@3;7bn$HJbcHabozwl}#TI!pJ>R$2Q7$445thp7h*&zE(ZY3WbU+_LF`l3EwlHX`Q zI?vef`UB}ljGmzKMa>(^r>gp02ExABKNa=61pKvq!5+6UZ>)%SH^_PF z&wB#=EKGw;zHdwm>-U>7jsqw?_!yAg)EM8>XJhzCbkof2fYtGY90`%K0Oj zo|=Ayh6nnOJl}~7fiB#kVnCM{%?fEBS3y@@Qd!wS(lKh zt%^&EDqc~N?Z%B$(Y@1_k5kc>Kd2W~HPx#K>aS_?G;v$Otq+RmCJ6tv7GHJYrQFk{ z-X}bU`O_2tX`l89iKBXuU4+0QmX|8rX6x3JLtMJGYB5J4Wj$H8WzmToOivw5{BQfI zI$O(4-j6DNj4Hmcs;TOi8H@Fu`%o2ylcqXGyd61;4ILekzCqQTO$%@tcq(C++Dyn**IGm zwWI}VBLt2C=Fu~ret{<~j;Nrb^P0DnAoFIK5>>{y(57ddz_Q%@e0s)DZe<+7eP#XcE9XsHodCedFp-D{=)kB zX9zQ;B7`b1PuPJh%Ho&R+MC=o!7o7R`9X#X%*&u7`#p`rGD!GfTVm|ry;jeaDd!p| zSeUmuomCUBqaC2dRRi;A6+f2&?pe6RP{K!7(ijrrO?qrxDq1)6ca|WhXz1@9zWAKg z!!XG}bOo=5+oXXqx`2iaeANkdsoNrI)Cv0KtTD zW{u7hWpzSmO}XV;dfkPVI0TIh2k{4<_C>5b&Jp=gZgOri8BvxXW7@;;A+4Tx9s0`I zGWJT=ayFC4Rs`a&WY1oQ;#=N@$Kz~$rq#UZhU{IBp~J`c4o7et_Kc+_?_g^I@-Xk0 zC8i9*l;A%W-pG;m_0R2>%V>VBxr`#N$nM`Kdn`folH^7W3x%479Yw>qhK+o}hPTWn zWipM3iNK>n^!M0ZEnI>VJ=%xAx8tWtSDWlA4!AU2k&F8I8^=bIMlfOH=#rBn1iF%f zE~ZIr@#4jEX!7(aitM#GDRQx9XhbsExl{T%3Na&PTo=M|-W3z&W)zEJ`cW!>i$p1s zl#tvIHAgcR%M;ma^?!53#%?=g^pK&7&K=P87{vN%iBbc#jk#=tVG1j3LnVT{X>~AK z)zQW2XkTdKVrcR7b@pA&Y+4k`$p>0#)>=<8#oN(`+zJzK>Bz9@npj zMXA}2S3<7m-GCwi_#T+zJR^sbA@WvHidWjcSS<4h}s%H&|A|=EKW1B{GJJoWyAD# zGMgkiRVYv_TFn0K{2|L+`@D4Njq{*&zEwg#PnD_T{_bPi&abtGkRZdp*W1;o4JRkZ z-lNwb-}w3D1c?aIuq_`I_vYPxwzJy2HDFi&nOMQOn#y?p8W*^Q5*x`NFE9GRjA>!3 zYHDe#RBU{%Tx`m)bW>V1W+p4n#>XGx;EB9-1ESw4h|ltht)CpE%+~l_f~G}I8)D5r zYo8?`Yvdm!+CgJR>2^J`zfX8?bclCSG#nx`uT(|3x7LtKU>N9#DdaLMyZFeI=|u)V zrB&5Mv_x^Ls+TwH$><`eXcE)60a}|eP*$UPR@Yz_F|BS`ql?&5ANWa^RkY36DW$~oV(^kZ z-=lvi%bP6;%Vs}4tV&sr`+4c7vyc%@Ikm}*n(_gGY+bhqN7p3%i>QSTlvO$X5G?zm zUGxN()v!+F{s=dtUbvU8=v0~*P|8E(+Zz0?wdTq1g0`Qf1L|Q`@161y>HTS!9+w zCvzIUyx@4{`nF}i)(J8fMaA}v z#!e4ikHtj?e8#x`Wc#=sbhTBc?>z07eJZFpZ~P{+E&t~`yeRo@nBYyYcEWJF)BfE4 z@qyHy!q4k%b~*Cr^`_caXaUt7%&d43?t5LiUy@(26_El{%f>Yjv1QlDew9Oc%ns5P z!@a63Pom)g4K`y%D)7(FQH#q8ZeKxzB}n}?i&rd`ska?1^f*|UR0qaG$?jXEbPqS`83UL71M^VhAgPI90%J8UTyeYobQ}Watg4s$cQ;B8t++n+77i!1i*y%)6 zpk<>mJnNcvqZtQ`H*(bi9>eTe`xYWuXU4klR7qI z*c3z>qj(Dc6Tg1>Sr*pZFt%R{0u`bnZ_e^<>ZDmW{spcwj-rJdh?3ZS3cWRAk< ze1(v5$X+H9Q=E!zwK>OLRY(fXxfWHFpU*QJEeXf&1o!VpOU=w%TSjltr?0a0XAM zuT}h3Fu_W#NUd*B`IN6~CU)+UNKY5e{3f{V({Q#KP!bbneATHYak^nV|= zKau+ib$VMQzkPL-j12EnU!5|1Bs(Lp7NWmNTJ!x=HPMtL$HTU8e&;Q&jL8*2Tjx{asrp}KZ}1>U_=;Q_yP zivOFFSJJz9!{9oCTBqnE+1sQ*shaR;LOmN(LC1ozp|wW7BL4=XP`-kSd&m|IScz?D zv0n3Jmt-#wXK(AR*iy!hBi73?=q{>HOH^j&FCoDGTO(sH+y7re;o&;N)3TUT}4>o?bS zR-S!=HeIKBYzZu$!g;TtN+e4SIuga|_t=nI@EHCIu5)oUXtlEv1I-z)yef{29YnW= zI@cyMGC<4NjpV?dLcBXR^3*L9D@M9q?#Autb8|H*%S~))+o%>-x|_+ye)(uLZRQP6 zm?mFpn;TDb_PL~L1HAfD`&!>7=<#Z@;dN_-xPRIo5nGdr5m-`>^ZBaZ00w5 z*)xvVt-kRBc1fGwy$h*Fx80v5S2!ibSCKrcuAO?&$4-5}zT?cJr-ec~!?LC-mp(mv zg-l*c!@S5ljFXSS5xO1D_MT$HHrVB5u7I0QdL&#U@_#JJkQ&n8h0K}cqk8-5_rm}J z><#NY0rJu|ozhQt_|D}IdTkgb9rU=D)hTpzQ5SWvCNAoBZ7~rtnqxjVCkUN(p()$w zY^Ns6u+{v_7DN+=yxKz^pwVv*^b@Ma6Sr!sF8mm28TF#mV>JmbKQMm96_fh4k8hMd zcc6+&Pj(C*fHndP$awTdOI|w1Ex!5&4t{m9iVi|&VZnrQd$<(ydJ0{xz7HPFeAtgS z@SIdq<>k2CzJ?BTJ&%55U*){rL%l_pZd(Uz-AsV3?QK?`zpo@Du57UbDlT=IQqml` zea;?#VOgG?yx*)ov^ zXXFb!aG(FzyQ{zgE)PZy^EYgX2^}-aevnrg{v;Na))y^wZ2i8;7L21a`OX3+cHL|3 z1gV>32vw%S@Ftg%3n64dm>l7-Gzj^mn*0|kba{{z?x?BG134rDo8&L+x&$mjdj`0r z5ZmZu+Q&kkJq*CnaWs82o9-4~OnNp`y8%W0j6IwolPk6(vxk;r8rP8lUf-5)`J+O( zP^l*-B$>M-xhxTm0%`vZeYX}XYp{k=1{{~CCiJv43(rnuDZKw#+37(T`r<$y+l#|97vUbwh+EE{)?6TXnPILBZgnVI;W@ur`2#g0>$f3)6%?BcKe_l*h7(1>lp!QE= zcBM`%tjQ^PN-*{W)<2ceNM>w^C|q4pExf-)npW^)*79PezGoFlYB>eRrc4b>#J!W? zN@5mUPi1l_KvKO#JqwETl+2#fr*x3$TDiWxULBy%Z^QVAE2F5wkAJkZkel}(A3Hx| z-^cUluS4Gl@UZGD%nh$JQ>G;2Wj=>^eHzy5JdW0!-2)!$GaBv2mJBy<`?*$RdzU4N z;&u#K!g}Ur{a+tCiSro^gt<}n+dc69o)S|DmZxG{9)wK1gm|-C9R4y$N4+yF`M?ZcnE!Ou>3XKJ zCy`KY|F{}pgn#|1TDs{`awbMOlk7dDbl(ca8!P-81EbfM#tgw{1s4a)8_bzCm(Sq- z;6rg=9G~}wh1dPQ6kmd0iIr)lcehApVvmgHIs^PkrAs{xFR7i$t-vMCujvu_$ThEA zy$t?ce>+zn*Y7w1f$balJ}T#!vGtgVlEt}9!^YZ)q1aifu!cIZFJbvz<0{IfE18o| zlW!w8_+GNL>GJV7!h{%dnO7{Vc(UI^QOx_9y<{cM*yx!(f(DPh(+3yQT~RFgcc!|f z`%Hs=0S2APrfjy?*voBz9B2Kh;ddM)qu^*sip#1Z$O&Q>e4z zYvY6IF<@6|=c*GgFt0luBXt1-wFT8w!<*+@Q{T;Q>Y@)A^Lqk>(a#zcn}#yT(y(w!^X z+r&t+r79mjcm`TDxr+#()|V1yTKYJI(umM5xru>oU)>Pzt_WCb8+&TrLg3z6HWJ!l z*eUIvkg<1Y_Zh^`46h_8R-@F;t04F+yscct$$HYn^)r8?OF~ zS?ISuRBkFT16FfbP;QmuRt(f}k|`qTCx=e10xPyWW$&6vYt}bx%sqVJ$ej<>#=IT8 zeb6L%3$VYc7p_n*T%<-addSu9#`|X|_spr|lCpREy1|kc-#vTGM%_%ejDF+7J9+vt zp@wq}oR&u}X*aD_qt~FkI7O*F_XCDbKW!qFLi2nKo|-uk$0-3PLWGp9jSiON?}2mz z9$&JIo@$z3wY|-4QMRbqH zwMDdECl>+&qLlt7Z#AO>pXsH?8p2hGH|rS;^h{Os3DOgI;0Hoj%6tE>vVsltWD`>W zJ16Rur_M&oLlokNr>RAdtv}jgx)3VZX66XzRJJ48YN$b zDy2;pw44mKWFA%GxOw{;Z|tRjizi!0vPViGEaUT+uF2 zEXJE)c2~QpfP0us`URyuci!lHWt7Q1NkHE$`FF3&S1eInPbSSK4R>cLB8eIr zH&>&6?vx{V+sGu(YuIR#9XkeBq!=p$_SCF1SX7#_^rtDSO@y#W3=A;x3<0uNn8q~? z+->B6@?$cia7!2g=FW4{jy($esSfZ=?9g_Xu$5=JlIbr5lHmnujyW8M=Tbb z3=&f+z)Yr`Q2P@0GXO0GCvV;LtD>}%_hkrNQ?jm6z=#6Oa#GJMnU1!5WnSiiVqfAnhSU$a;qA#t6YXl6+AjrW?~Q=M>SX5Xb}ryp@) zd1TZR`N!X5X(MG53?)&W|4sz#MCG%tz+rZYNz*(v~E7rUf?=*ENZ)Bg+nSJ&({T?n0^TMD%v)Y*)o11_p9FfNw1p5 z;X?l}aI4685?rMOwJ0=^w%tfMPkmG{D=6`ylLhr(B_QrhYypMwVXU?Jve|+WsrTLslVZ zyqV3AH_nB3c9&mXzg-q|3><-r3m; zD(98tEoA;R{9YwbC}JxzFx^8$?97}JO0W{Um?Hjfps`&93Iy^$SSi!x9w3B zj*yV2oVW>58qG27KTsBB%v-u>7JnoTxjgXZWT zUlo14Htl-PZ3-TvLO9vN8LT*X?6N4qKchds57dRf=HiaxFL}E!bCj`qJ3~^I9Xc(< z+&BGhC%Ejq%(`kkjxO#xF)#Ev>dlUtO8>-}8S+`qUvtWDadRw~OphbrF*5R3JIDG= z#kw`7xk&1{|J#taj3v2-zaJYaL(g6C9cXE0G&krtUn({U%w-_SUVr873znj^tz(y| zN-e1p<`)JF!vA&?1v|PK*$T697SC&Ey5-&X)KKatcMhx{_AuLaI)r*vKAM~iYy13g z%-DAAJ>$u_tvpwqd0z|vVbfnMCB9rVX;L|kn>^jDkd7(qXc0h@mn7dbL~29bBN&^8 zjV~CTNN}I;9MS<*=?y0N*_h+)aWx@9if0P2Fzr^B%e%*Y&En`%J<+6E5F9x0WpFwn z)&>9mxe~$jgN!R4hYn{21y7!(kYOxjSO+F0& zIj@Mf*iGA~|N9(xO#f#9ynMe~wr&?(S^o0+3NlRO^O)(p9X>Jie-l@dQ;CO#N`98I zf;?%bLr`N6pE5tjZDyx+NxAmr-C$;ONppnJCvOE}S#Z8Tfj`Lx%y^F6ivXZ9^SeLy zUIXt_*^nbFSS)HLOmZp-L|mrGa!k*tT?lG96vuNe_;!>W4NN|T?-TFQd5jYy#Tu~9 z>3Rfqmb(EMgHtuh^8k;-p#RmbfVHtuQkfO)L zj*<3fv#FK#ucmF)bn@Zkj)EBG;;rgZwW-RF z?c$!F&5z+JRhyx2f<2u_VLsUbN5O=nTW=wEGLx9wZ@Ko)k2TeN?wrkPPL>E%`MJb= zAP+m=CKLIt89v|2EL}J5YxF2Bh>TKmGDm6W*dNm6E>o1DGc4K9eqdWyy`Q;g$ zoE@FPd8|3uLL=_wDr_Y;#KpkGUPAjX^AEC$RTaUy<8u(ACV z0UK(QORBUWr#g>(i^({ZQOu!ZK-Q~#mj!rhYJ~_pQcXg1l=~cJuwsrB{TE;703%Aw z_WM1Hv$pL$YumPM+qP}nwr$(CZJT%BH@V6Ek}tPuo_3mCfr)}g>e+Ia5Q4zGku+DkU} z$PrW9`kJO|S;b3{-KPj<>{~gFsI#UFCy7B2~4!$SPx! zqNx?03}doc-%$1oE}RIoEl38(2zQ_;0KIM>j zZhR8(=t`?Cl;~4W6N)*Bj;Mpsc|l|;s`Iib$X1g}Ic0Kr&GIpBh{&Vvr!NbFn$dR> zIhm#^s;16OwGHIgnGT>tjY&+hSETr&k72@Fg~yk=bj$$+;He?<+s#0TNz6k?zGEQs zpxdtUGj|7=Vl_{3sob<3!a8wX(4>1i6fJJN3|&e6JWX`JJ$_HAOtv4DcW32Z`alpS zT^eIHF2;6l7{A_lOG;tPVnhy`%ZvxvyT{VG{QdShZ+|`|EobzxS*j|p)=<)l@m6wj z`j;i`@~;@4A0ad>j*%2H+&}aYO|;^|pZX6LU?`2F?q5)BY#}YsG=`2`d&l85hd?6! zm>4>fXnSMN%E@U~hha7_9KwJLV;N_biF10fn@tU+EC|}Sf{&FLMVIpK_v@E0@1C0e zH`@DK*|@k)jCr6=P++m-3e2oqryzyY2ff1s!#EE|HP~AmxY+#H?lYtZ#vnFa;U$#D zF4Ae@5x2Bf5l%cDgpi?x{ZvwbI^|8GYq*yVnJfeff@)-ZUqF4;I1`;3s16NN@_JbQ zUI)(p&e$V>^%$630aLUr{!dyA0jS?)1XdP5*zW`1fS@D*Jtr%W>IovK0DmtJf6oXh zNNz0I4?_i=iEEqDK~icw$CVy}<0rP9H02F_&N+WX+K&Yb!I-^|%c=nGpiWr1UCzVF z$QaoDc{|_$pUCk-=S!r$TGP7XJ2;PH9t*9k#@3^bdaK8%q@|3ivJI4(F^DL%O*Z;U z&?9cBbkx(RE<&_`J zEw^gK*mwtK7ixowicdYE6K>P*(%`Zevo_hcNp6Lj12x#AbkR*y647+1cc_Gj~9#lT8no}$*%?z!UkgyX97>h zNf0f26c0>GF3^N$A1cpv2H=Jy2EGMIXc{eL76XVpCZQCcGDKuzf=wl^CX0-UcB52$ zeqvM)cm1aplM)Cjt{tMm45J`hWEYLqEHG|4MhBeq02q)lNUi?fY%70b%G29y>1KAv zDeIWpR1o5dN1|}{?$b1h_2!xY2h`da2fjEq!|XV~=Z`$DyFqil@^k8MrLfJ!jv zIs2-;kt?3~H8=V!yX#3bcl_Cw-q^!9-w8hl$N{jwpKYT6RN(KQreIgezmoS8Ki;d( z+b|MbztNAxJMtk};c9Ur03fuzp)T^ZgyF4XXwCepupnQ1_^H()On4F7cQLtLoN>Eddp_V1T~p%W9fq z$)^OEW?2i(xV?I`!qj2RP4nJNP4gsP6jg|s(!?mX6SOilRf?P-D^mWtWa-(!Vkkt6 zsTUl@G1Q}O0RSAJGhCKC==msyCG7hSrZ}Z0Jz`%JGJdf%X=V$bwhF2*dxbWz|2$Wp z_gY~SUOYf)_6C|^N4!*@$@;@#LA_L;^zOg7D&K1N2HIgmJcF`&Mj1R+U-X8a)c$e~ z5YLH0tcZzgphV@u-z}`3kX;jATZV^$$Uo(ql?WzR)rj531rpr>9$p+I2gjJ~WncPH zCPWSG_g&&(pNH0ikr=^|LQ1Ly(t^Wh9e$yKBWC4k`b)L}kN=!!3)zOtkq*q~qPO-E z9V2Lq&rM#}(X##&1W{U9 zeG*?eP|-YFZD@S#cKkfv>w4XEO8w9}E~HzyIOlINNZ7Pp6|ZQs(a-gM9t3N!=diKX zrJ%Q-WMBBa9uDGmR-Z7YgXZ5dUP%dH{jMEwEsU-ho@Mgro-IQ~3b{ok#5cMyJe4`D zv*{^F#6kM|Y!^js0S^lxl>O~()h`eqv)=m5FA_-qGLT$3O0GYNHtxik_7Ez4V22%Z zkV)ctN@IIuW&EM8lL%HdwH35XEk$SV;X7{adBh&c@%~t6M z%AEJ%S8YfY|IVIBKc0tG@R5@}SDb!U-JkN^A758OdyobO=`Fh#`?H-lSL%Y1y})5I zXdS^o%rS3m;whZPl(+z?t8a7E3Ted@Gb(D1>3EBl;6AfHy(_K*z9yNa)}pP+H6YRe zoahu>i~t3%=gK5J23jRVq)DIEK;e3+cu!dJ7UqRqc3Ek5(`1Cx;xpAG$|cxR>w^h0DxsY^{+e{!M8Uj9lD%g1zvOX78gHHuKLkG&(7mG*}GD{lR zQ5}uQR95cql$183TL39^1wYA#a6JK#p-V^a2K87-;wwnQL7-)UgtwVGk=fVV{F-MO zBUd*k4L81N8F`n#2LAT&772m;@tmNO>O6L~GC!SoE`FcMj7`qQIv`d8_AP9Iw$p8# z%QslTi_hEX*w|bS^yT+;@2)@xXeykgtLMgH2_mlNo0Te1(#wv=&&o~b3$ZR)0WYba(C(@zCV(Pey1gf~?L;u6##cah~hGjDy#E#)>@XBNl zgDz(s-L6jQ4KxiK*b;9@iDPUr_#$u4fBS_K;4B4>!B(~_hV8~bHPM`uL=nBQYCa)}K&%djWmb%(L z%Gkp8hNP0y2ubSw&Hb_z3+zHC9%N%jPms!Uqky({N@Iu#j5(==QiuuD*)$|_f3Pv4 zQx!W(w*nUy3(HdzadF#ZMe_OMx9PNm0r|K@T~`V){Sgk;xaEv#s;c!9L-FhOtMukX zQ}Ka)0;b;qjbHkvOTNGN4!m5lI(?Q98JkxVBwxha5|fG^}Q+YzdGTMDW|QJ;L#;F4mg z$$g=D!*Hy9hlaWSpoy07(+(Co*`!=-^UZcCNc>z_sx}G#l;?gV|IN-GS|~>dfjjWp zI+Qn<+dw586mFbU7>3TnQgGABvc4+;3lzpMI`6fS*f33kH^O;=vy_LjpsmBP*Sb(u^qjYv? z&SVNtQjnGXH>z79zc0jrJM(ET5_aXoc0J_6lU0cdu^Cm4J@Xo=2EJw-X~AM)V`yYZ zD-BhEC+iMU8Q#E-VY$aDkPg*u1|x zW*~z{0%p7*bP#i5>xLJ(u*d$#!V_$bB};-@C|=Pei*i&%&L zsJd?MSABk7v2>nCP-?EiC03tGvgVTSWLt5(sw{e~Iu~{6Q7i_h-ngS(sqBaSr_xJ% z;zWdn<_U`A&67v2##3tG)L1`o=A=X9qpTzFacvM*<{HZ<%z~!vew#mUZ$90fnv<}^ zA{b>}mAk6Y5|0^z`H&jfQWa5pEtgu=Ccv?a0F=6q+0qh@E=Pp9bSb{@dIGV0tS#?K zSi$>bI;%Hj27E*<-5rqq3e=aD?8tsBE!6lrEgm^WB;GM7Mp8}HQD5gQ_qay3!^0~q zSaU$qSbAgg84~NIjuacBKse?4&r{q-%MQc8kHYZOtOw_?F6zZPcjg zdY7)Ime%W4Al&ai+HtBqZdXbwiy3Rl6)x0Tjy48X-gjRvsVtA%v)VbL!M4Rt-_P4h zA3b+70RECkJ*gztxS@RSU|?Wmd%m`!XeiN;oY=#T zCG;a_Zg_C8+-gjldB&)%4(UH42I+~}g_(GVH5z{G#Lc%D3!sv$FSl1Ga~ubR>!lQx zk&!NP#NPQ4lq>EQ70(nqu}NO3QS)UI%KpBu5JS*#6yZ371X`VRGW@wsMMlXQ=SBw6 zq%wz0U0VO*F`UvF)IZm&H<%|^n=EdZR0Q6J(@&l)9+tUhKDP{HS83nAMo6-|t%Wly z8FtDt^T;KO2m=`owdY*sE$H z-_09KYic5mr_js*4jMZm=ep^QW4*8{)Q|KXqoS2K#?h`w4U|BrgvBDz&Pb8#Cn)Gx zu>$If?AT*?)5l&_GuM!K;CPT~2IVxL{rP{hGkFMK{;d)uC_Eq?F%GIsnCK$}Xq`H1 z>po6#JdRVZJbH|C0s->uV9_!o`Ha#SwIya2f&aT#d*;4haT@Eqe|R~Z2z%Qw@PvhE zvme5&6)(m}adB2Ia27ZWlv)-7LM76X8JeSqFy2VYTx@~CU%GVYV}wa(o1fET)MT^y z*utGQ&$ojV*e_GlyI~`TW?C63C~u$V{3D8N*VMCI@-PU1j~r4^Mv|LJ3{nLQFgv`@ zPrwd)*?7+t7E(b)(z{T2w_p|8UUIG4MK!ncz7;X$rkL`-iVG-3oscUU*cFSoxwyd3 zAU>rq4g;UHx7p<7L8c;^&|&bz)l+_1^U|-aNU27iKu=&?^HP0Xw`!l2j)`OwJ&D`U z-8Ej5zrG>rZw1e6%up${DTcbI$}`(E#F%5)B{}>*+C*jZh*8 zCg?khN$a6*>47j*C}79UD!-{{xK(?NOmV4hR~|TAlW7=KQ2fcB`AE8;cx{`yvywB5 z?&eyVSJ$ z7!$A&)^_CU1*AvVR~;j{aY`>{PirL$fr>BK2l@LmrY2ux%l#oBU69?B_QT5tXR@7#Ty3u0WP>Wm3HRh1j&yWF-NJG0b|0`^5e|BI{!u~I z4T=OC8@Ov#jq|Ub* zU=CPr*kdE+$QT@PPLWDQ3X&wJ5H)3m(FSig7fN0{hsQJuJ+A3iP5-Y|CIusEcy|BS zS0C{_tde0lXj$m`sD9%K&C+J5cZMGXm z1%XL;6zXpUA;Vm3Vr`szQoDqaQpLLnt5l?1R+yQJlG*|^5YRG22)`Oo2sBVdeffkM zcnC3gNa&Ep{@7n$eu>{L6C2`G!L&1PC1~VG{?^G&)!6nZ|GrKAP9s`jbZXZ8enwSO zgL{N6lc2;+N}7bVi=*(#QKME}+hm9(`UNh-lI9)j4+RZ+oJ@+ zD{R)SZFowR=}wHZ*{!=nocI<#pRtIaGThh}SPjcGE2>@S?#XJA$0*DIaFWHa+iRH;+22`{*3gD0GjmbipXZ zkL&d|FU*GTO&T4w*#+n?UY$^8EX$Vx{`_x})C|9=Qp21cg;0btdNpZJgBvCzvm z1Wkre;2#d6U&Uk5IMv6zc~5{oAR+R<=q7PJHMdg&=YSF>oG!;O2Y56wMQ7Ns+*hlL zhpro#R%SRf&G_EM)hv{et=E_?gg(pyTy?)E{f2TfCKh9>rQ73p%B{>yYrjos$C#+s z?GBjNcb&aXkku$tmQpV~N&umcfK1R=ml^SWE6dzG@p9hQJC%*KZfmWSbh;aR>ipY} zJAt!Kms{Xmf?iv99F)fo9CcMk5{jdvf8Y6nDR%6>OGuy+yL&5*km4 zpyU;q-A)ka9aS7nga^B}=EkYc7U&K2W%kcOTSrSa^2=@4cy`)T5-;4f zMkGkxr24=+jx{BkGYt^FM;@9rb-3jV(uasbV3d!g7)`jcBA=}L{60$Kbl%XcBtH1m zxc|^(Uc+?fY%$A3S-SuFlWg3O_`l8({r@vZ|CgFe&q&Kg|Np1v(lOAou>6lnyXpk@ zR9t%F`Q$p;R-?bj5~G(ej&Dm4`#VZRMC1n-YRHd(Lg*2SE-4Nuh{6Z(RKr4R-M%3dXuZFNx{9I{Nd*`lxr($Yl!DD?CM^xl{Nv;C!R@W{X5-~5Yto_n zB=dyZ#3TEJ^JNkQ4glhhq3&|${=Cv251g+tfT=}!#vJFzF>($-0S^#X3#Il_ckuA3 z7C;z~shZ~)`%_B?%r+R>HQ*zvPOI@*`CX5_5I_qkt%bx!$8v839xr8QQV|7 zK0Tg0P;8geTD%fww(5R2dMz1mx}BQHM|=-6BNtGtHNZhK)rF}`a#7Hqc|bgywQ?uS z;luHSKV`sp7s}Pzo86}m5g!2UFujBo>nxRXGZGtr;dlU^_Mero5qnf?F=KE3o}yYP zyHpu~v_j)4b$U;&M>FxIpks=A&LFYPL zaQng_Aq)-)+ot^-68P%P?@BI`zv^$G?kEe6{f0o2(g9RNf8kl>b)6#?%#f0M-z|p% zW?%QbkAmu0ax^LW*}?cW>LHNgxySwyOEl&kW&~hH{*Pvbe8Gi>$Xr3uoK@je2x!A?Z8j^@k z64y-%c5pSJw>99o95=S|{DX~~F4RycQ6zEnnuhze6&w&M7RK$I2HfC zqK#M&nw?f})rDv7ZN#Jyy>U^=BMb28 z%4r>d&#+T!MB8j0ObZ+hCNG^g3^>n7gYAK*W>}UjJgf(-ieAGbL9;GH<){$!uRvnA z$h5)5oPWT*i=5wsE!}dg_41^(AxlHY9mQqr_oQ@RBqimrKIa7YV%Ma$2)w#2h4l!Z zy~BDy=)R|;LCB**B>y5>STZ-%Gk$ly)(X&Kx z-3VS^j56f__Nv%$d>Lb@g&xCdgKZud=4{l)T*%dGG^=-vN|=yK=GIj7Km@=rYH#kfZeWY-{}8GS>fQ;=2w>tMZ~A3EtxxCC?MRX=IZBO*|Y@zjd@* zIIdj8z%avdGrxZBmQ*Hc1+cYZW!!pghUe%3aMXg<>>^_g>g5v}>k~5P$K$2RP!p!a zQH;He(u{T;a?|rZ|MpGm7UL<&jjtmwE6epXhc{K!#wfTlFL6fo_|Fk`OWQyI;Q==Jz|eT7%k`R zJf#Fex{EHf&jQp2^AZzF*MrYa;-?Rj5nRUNgR8g-K@Ydqfl%{6tr+)UhItGj3R7|gbnXxT#t=FCJA-?;wWeA zX8h({-BIRZdpYB=;&J8l;JpWZ7@Y*&81ooS9hwEb8S@!^qZT`6pO2H#bA~XaP)fe* z5zo5Ns6K^TBu4-qML+B}gahbN+n%b+A8M9!>+hE!d)(xp9h;<0p3E%AnHalVIv>U; zXJxKIJco6#=g-QVUD79M^jOR+%zNe|9`h;Hq4;~;wm&zZI`}Up3xSP*D@vs(U=Z&I zt7hz%zdLeTQ?xcH`8(V5OoXIgzhhpuT*Li1#0E*qPxk*GZ zqU}(cQtCwXDWJL3U zo^Np0eMj>o~N%*!1IK!PJ|frvNwgY1;Gt`8rHFac_d0sQn3 zd}V)#E9OGs7Aa;2S3?Av_;xQNurwa(l9k z|G2{@N>?uabS09uq%KVRdjdUv?uls{2lN4;1$tsv8ZW5D*}RIp+2?OsGv$E13Ezon zDih||8_0L-H)Vpnnb8t3%_tkFubaKWR6JFV%5YHeTs3|&7E&}f;Ozh-%0E=5P8#OMWbmirMYvTOgRz_!Pu{klChyU!1yuG<&Gp6m}pqCD2{67H$f{+nz^dC*1(a-*4fN4XSRf{4NfaE3dHNu$;h^(W}GsXqhz zpcqmUgpyE@xtHitb`@lqUA?ZfgXmJX3Tk-SI-Q>hSf`S%g%&9a6bf>=d6$V=R(TwA zlXiyvSbg?;b9+Ajyan@8usMgMP|zt;nuS2qaX!E4^=!KKezqWR?)5u(7m~1roL*Nl za(Tr{XCC`DkkojMjZXel_JXF)3FKb`p&*PhEiCmyd`7hf5nxDjA%^sBWrk4W#UoF~ zR_!aQ%`FE3&A$BRP$Mx@F%O9blBN+?%;?Z#m?g7o8{E6hX%uAh>Gfl(0ShmAnJ$yI z@dhp~4aKW!wy6P&fXre2?EL>ldG0 z=%;BNbvu|!T_(#&$j{`_gM-iOmtwkgFre51PJrOf(HO@tQ#>GnU0YnGy8Ylcs=@srL}w-^d)WHZOO_T%LS6VN1xtODK&wM*)q9t&9il|)0Ad1 z$)^uVGQIdK3HVA2q8<bunieZ^Eer@ zmt^Enf8PLgaAWl46_^BCT7vwAf`IlP zxfK|KL%uJ=DZ0GZfTLQ!Q_iCWy#_jE2QopX%)MkZ?5!~|W=4t6M_`wTu4xQZFhF^)+vGqWYvm7t@h_?nalK8>ZuR|-E_ zH@LEW41Rf>tCJQO89mDVf^zg8e+y{B4C+)PEllM05@!>ev$M(Yoy27{WIQsRXdueO zOHDw(2)_(w(%+jC_XpReFTBtFu~i-9i9MSD2Y!D+J&>3Tc+orr0NngD<@_AcIlZ5<6X`&HB=?%&wb?q`q#uEhv z^yXxdkRlH3^GVY8lj~TmB@>w=Oa2J=o0Y#5d9L|(2`>dyvgfQ9vDcP5C>~X>3 z4|_hct)I(I&Ib9VeU=(M1SfoffiPw8kPtPFti=e*gsx_ySeS1FZ6+&TAEF>52TxxW zF%S|E6I`*eDE0^zynSwT3u0<;w6K*@huKxbv0zlc{=|nt8SG<*!EF~vN*;;Qr_k=; zSe>P<840YBeQp$wy%iu@^Ct}S8wRXHrBRA`VU|ytPOz9LX%T zqqbNu>MWed=wQt|zMYtFMJyc)g`po}I>E+dqO_nQhpS097iwX#2^fkli5fV_7QA_~ zs=rt^Q582gm0_eUU_rerO0kr%m1?h63kh6p+DuAEnmqd(bDuwFyG`*yd#-t==hdlo z)pijMW>pM7anXHr#@w%T4RjhqcV}nI#t7@DXYvSj)oLv{>Pg{dPa|rnY9N9)x!jIk z^W&^K5%I$`{iEa1Ot0ZaifnQ*Wz?B0!csm!ieOdS95@(WZVoM;aCv0)SRBtj&N5Yc zow;S{q%n*y6XsfG6p;`Qyw?biNzW>t=owSo0`*P#@}OwtlH z__gp>)xGFXY+Ycz_cQbtj*|Rx>fg#V&Na9OqshP~q$frg@)NUlHJwDzr+`CTlrK^o zglv$n;%vzb%wSR6m!6F74dFZ~R=lvEc)>ftnjiK&7+HsnJ|0F2|JU@SyoXd=p?|Kb ztde}4x_q6Ke4T_mzCm6h5TMX_pOQRGdl8mpf_<&Tc%L>|NRFd8TfTCVeXaU&y5}R%-M7_>P<7dQ(mN7cH9jZ)6Gyp=Pc)D>LM^?+1f0$Kgytbr!BZX8b

    XssCX(?}5nBRYp286XrbpGDDLHqOskTSj=DC4YAy|R@ zkTbn^5-&uRIRVe}hTkJp5k)=l`*>`p?YzQytz;0okfUIr^ex0J4`mM*I z?(p$>Y(T;A1iaWBU~3%&R;?ntcmAD|0zi(!+QSo!r`p5_G13J4kNXke{rHj^b2mKc zopTjJzYcTpQ*Kj7T%Vwj>j3^2zM@~1glhrJtq>+h+(*-bkGkM%5tgl(Do38{{Exi3 zFU^T=YPsKhrXYL9Alp+-miGZ)^g)+#9TInar9kM%y0w6sja6zlcXFDuE9}cH@k2Rp za*9ac^~<)I|95sU%IEtFjXa$I&mES`0XWUco&A?P%afPN4TJra^UZ1EyTp1*{fqjf zMq1D+E$*O=xbEj~hh&-4nqAOhY_SpRRWm4tJs=~5%k^@VDSX*Q6&6$h&fi-INk#`GMNuq+Li2XGO7RMV|pPM%yj8FUUy1 z`;XD4hKhW-9{$mTENp)Jp9^|F2F@=roy?2aA$uXQ%!$~=azmgG zJ<2uCiPVK~Lx4NKla}{XYlz|wS-+EVzo+NSiR6v&r9=8>05>gYA}wetE@)B~wzY;I z?-Qm&cAZX(FoK0IjZs@8VjpBtOFMg_K=T*J%!>@w{0H@EOyNzOFPUI{kLUrDmNZ~* z3ZnUGyM9K?zCYOhrEp=AqaLT6AZ$~}Vz(mILb8zY&i(t=7>jxDhXpmKAA^k}LWRLjz8B&skz{+hU{KVKy3w)Bk9jgf5~Fb| zVy;$nNqQP`D9mgcPzp6&lFWC1kn>cpF`DRE+84IxC-n zLnf_uC$T6BN^?7wvh?<0e0ddJS#0_S?&g;Xd+OeHA75&E&2c$emSXb7lEd zU`jb#n-+tIs#X#NS0%;?4b5#+sF706WELdg*x6{0nr9ni0h^ExM8#_S2}~BI^`+$H zWaWEG^nyuIIZ7lIoGQ{#@6Pca2}cxOOE99LD*Ys<7kq>+8sddJ%87KMh8pRYr#1{%R-`Y;2hYM^Vf$Kd)(!Ff2Ay z%EwC{7cLj*t4M@gfb^$Kkvy7x;7^z`@O&ilpN2AO-Psiod3gi)P?r+oewr*IcyTb! zcG$^|yR^7F+@m$TAG3_CeIC9Dm(|HjB+A-ah1&jc={}NDY-Z>1AIab9AC3j_xK9UbW?bfxFQU4ULKe+X)sJD>m(6}FfY_|$;u3~~Um7gx5`3T~$PIA| zQuXDkJHqY*l2rc2gh1A2~V2M{Y>Dvn>u=SZ}{-{RUBT7_A) z)N$^9OGyJtAZIcJxK+0Ie>$G>J~d8yj9;Ir1+_ePENZk8Jwu3seJ$FSQ)=1G*xb zRL8f4QgSb9BfA2gRHwK5h*kTx`-*`wm(ZWUEVV4R3Vc4nm}{87 zO2Kt3wy4eZEVmApMxeKlo;ldPGbkLkj#z&FaLepU1BuI~{0E>53Gw#r+L=9QnE={^Xn0a`o*B+h`IfNzGS*?qYb>I~g!K&^%K(WTj?Ssl{u^}aNo zIUwfK8OB|Ea0Q8}Ke;2vF_<}E;?o&9xOBtnMZ9$D^y8`PVkJGr=Nx<9mEs(F-lfep z_P9;X6}g4l2xz&Z+z4>F#ridMDO@21{@o!bYYwisG_@voDxIU*L!kaR1KiJ)+=JfF zP~80zm*`lik2bDpTmdn65FUShMk+4RGvOW)JEyaU#jtc`4iq~3vWHDv1Gs`_>|(is zXlz4&%^iscgbuhngiYN)x=_MPG1|_l?9UpRpPs&wpDUitlAouY=d+tH$eizO7SH!N zpS^{huV5LUlbzc$kzmjFbq3FOji3IK9^&8fw=E<{hKF;q1Q&(-tM>OOC&cr;`{(`fKbbY>I|rxa=j8p-2f5^D<-ge>=lkRb_SNw_AHs3= zt^pm01Xk8w&?aK-1jMy`f~zewa1tuSt5%+!@&e5_nSi6IG5i9uQ^ zul-yx>0W86telRRPh>U@*AW=p(6dOqqbL0QmRQk^Ys8ReRRlib_>aOM6y%-k{5P5xW}KWXog<3*AHnbkg|i z6W-35@%-o%=jMyB#RC`TE!Aaa6qOz}l5x3BR5~*&l${dg%d;dwAuDL1?z7PwMdXi5 zFCrNwX-y&pWXZ$=L`G!YXwdLcoCKu?rHndvi#Lv)V&X<vxOQQtMnUU0ewH@j!|#mSDWf9#p4COXi!#}E6D{-sueNP5JT!4mx&{q5twJ6XC7 zb8maB8#w^54TxdK9~u1yu3n4jh~zY7n_6NwtQ>c6sMpNldm;G62FI?pcdL`)nFZfnh;*GMW{ zc$lMeXhM>?dij)ztMSQ6+cp6`F`L@CNhlRHGL!i7?=|ssju-eIk2!-14RIAJo#zPKXO|NhH{FLxDFz11<;qUag(0DnL3XaJ z6&Asb8SJjT*OZJIbQze)M+!m{BpHhi-DS3vd!0t(hJtxIH-vgqj+T9qUE>i%cGg)# zdJ3Xy(?FEQ-P4zqt8#RNg=4}HvTC0vTzK9{Cw&8n}B+E9)tBNa?HDZpig^z+ggj?w* zJ?Q3rYOH>{!ai%314rC1XZ;$wIz$0sQxn{OkqqWG^(SkQ{of8=c&q`?mjn3BhiQa= z_<6y?)(P~ZMH$NuiPAHf=&ALP%@M=wt4QRmB@8iE%;SeN@E5+)$PC6M(G`s6Q~jmV z+&rL&bW53K1EL^lQ(FN7ZsR@uK|1j5cAiNF&~)AmHs@d)5*Csd+L_dL{m^WwL$Ay1A-f+l)E?Zyl+(mw0-T>l)n@Xqx{kF(tq84_f)55gS6^yY}2NK~~i zH@+RioDpoDH^MZ~C42~TmqfF2AY@I*HRmkAPpdfU7-mk!kFfr89eK6LWT-d)bjYOI zZu@pVDX(L$CX2+rQ3U5B~DA~Eq7(|?^P4*sb&KGt5a%tLhvyPG0$8{MuDp|yUz_vCv zVQkAK@KmQz6*mf>Ct9Uc!d?O9Qa?RTM_j1%syg4cj5-x;i?+22p(TcJIjsHNA6?nH zFK@TlF7GFwKkFz)H+Cjw#PAkapB6uUT&ek5wY(o%P}$n#klIg1N)bdj0Ox3@Mc7ws z+dbdnjN;vT(A5_sI(*@S&wRfmr?7K8#FFWrG+h^I(|&#bA)4@!0z|}1q>oPsx`Xzq zDc5qPDQw+U?7YUc>0hlz#IYjvM|pw1eQg)4(3YcUW+6b=}>Ci-X@W#X{E%!shIEbVzcRtsaJfWRVUD4a2f~4x*(M$@EHg zgfDE`NubA-8TaJ0?`N-+%Koh4-bbW*3s%1mOZK#T)?4h;xF72z&bb}yX2m>=OZV=c z>EC!P+NagYY_tZYf-J%SFZ%Q%)k~a?N|rk!2yLrKF^!rNtz`R*dD)>NZPc+3swxXgnqgYodz9z29j34n{zPu$EZ=C9O$*rcovns8qBRcmA7x-}dw(YR9Z~VYcySU~J=v z8DYG6nqAxrbw?*fFO{u_A$}A&?`vOQdC6iH*660%_S?na_OHunkf=;Io6TQ~VDAe_ zkpDK_U&?UjyP+|ScYbBuYlyDY-9@s2QQbr?DbCo%a-?sR_Qy5mJI+Rm63*P&rlUn1 zrk3xcAl~BYR~$wMIP1+PYmHhny|esIwUiTWvk_N zLam|$N;OLJPSGU!{~Q$pdc!+`brta680NWjI+?7s-XDB&kt2WlX$(uY*w;5bG-8C( zcAX0*h36}?Nt1IQ zDx-Fv8mch2_C8)D%q=w#IfB0@Qr#ntyqI{FgvGUG_ZdFwo#v7S715U4V@&N#E_*i{ zCh?kVRqWX`rBoqd{nt9|exCH#B%oq@A>TqQqoR>rL(74y!m(mLnY1FaLQ{e>C4Q2z zYuep!vDAW5OIMA|>6BfPf{LU?hne-$*g<&eR_dRDYG8Vt{J{Sq>>XfiiNbWzHc#8O zZQHhO+dOUCwr$&XpSEpVw`X47%}g?xyKB{7wN`dzul%W-26_$gQ}{21@7JK!-$vP7AYsyEY3C_=d_ zB1!uaN_ano+|alH_9 zO)~|^6er{`5!%(3lrUw5)cKbSQwx{lYgS9u6%GMj0XNz&?LBFCKvI#N!>t4E@h0sJ z6F%{Ft?z~-fV2KpXihQ4*y9{UjLRqqM3Tf#RonvUgt?W}^4qLGEMD>qT-FJbHz!!t zlXgsl$2>y$U4zIITt)KVq;}i7ND9&lN}1&w#Fc{8%K3&R>|SJ+#}g*^#1GzsD7!-W zdZf6J_RWkARP_(REY(D3CQVc63#eujBpit!1+C-haF?XURPB-GhwSmdMHy3sh~bU3 zh?ztP|6jqB8M*`9%aP``a!^IHOA8Ys*+-Vs+3s6{g2TXFC4CkN{wPKg6K1?5fLdN2 z4PtVP00v%IZ%57U0bIpq#ckwmS}-N`l(>nN5)tZDcX267;L3hn!abgt%KLQI4-&#G zq1U?3vH#WBe5q0Yd)olY7VWy}G#&!(+g(%XX5W7O!sB$j+2{K>*-ux?XE#tzSKOKF zb9vUw{k0^8UuOC%-RglTd5B%Z^mUyNKnmK$+SpzqNWC{^Fv($v4huK^Fe6hrX*F>**3Er2(p33yE%7(+Ha3A}I{U~Wl^OZk?ZVrc zw^)*b!9z2O#)75<)hV)gxMQG=&?eX-*dy2^*ae@Pet?%Si;d83sjUmNB+Wy@eSFL% z-^F9ggOC1e$njwe4|QA9vGt61l1^-sr-AR&eU*g~#qzj>pB(gFk^k17W=zIk9_p}| z-!-cn!R1()mOf^zHSLg^C5s|c%*^brFj(7;K&{@db)9RnbFOo`bF{M63wV2ZJ5ZNn zw|iWwySMb=?Pn|9T`|hk-ZfYlQe{k6Pyku*Ez#(2NToKn041v!2SK4$gPQ50_1_W! zS?r7XH^;1QBIL9{b51q=HNJK1F+vTGZS#)OuB08^37MG-33*#cU9?t^+KHRTici{F zcEN{;Q4U?L#FRQKPryGEnKyQfhbTj9*Wh2tUeMxzb{UZryIfeQGyrHyeYwi*MFF8o zk=r}UaU}1E*b4I7svVt4s;RE23yRSSnt|+`ZGStA?bO1L5;Ba@c72{w1%fGmz zV2q7n{!7Y})(3u~K(`^=gYLS>2aQhNJrZo0=gmNTZp)I}7zy6m7S|behN&H~B=N)5 z_4IP!LGhwQzGhfx_t-n3IB{Y{pDLwauSeIKXlw=9aAF7DG;Z3eE%fLZ@(IW@MyNs9 z;qoG?1m2a3_c+#tU7`-cz}Q3MGF}iH0z5|{)kue=aWT;tai%k(1~@>H%u#BDV##tz zcmzr`VOE>w?=C9e z-oAW|jugF~fg{Rio$iZJnaSKX!&$0B>>m*;uJaj4k9(<7y9^GOgE4;NbrUHbC#_@E zpwG3llCFk~NiEb(k8eBvxKZ8`(2k8gQnbhuv!|#Nl?Qrj>=2m2I$w0w`mL{gdk@T& z_AdFht_>-EYE`88UBv}L*Tn6k)G1dIwDzHQIaV|!K^w=+tT)twKO^r=@2rEELahds z0wDq{nJn@GLZdFa=a??#X&2T#_QM>h5#XrAWR>s6iq4f$b}X??OePXPUx}YCm#EtJ6@SSo z-53_g%k`&V|$-G$$uUy zk*cV=J}y6ja3x}*$Dg0FCW@nUr~6o821mOuw(L)V7{MB!kQD6fV(;>>M3KC-&lsI# z9N8Et`Am~bz#>qqCY4WcsK)Iy&^0)|lPN_~d)>fiLv^aR?={E5S+ ztZ;ncGpr`7B#nnJ>)D=-ygcVkmB(cw&Cs>xFQ{S-u*M!a)Ay9z0xm933@dwMASr82h;~uMmDWnQ$*QBi>2*` zGwPnyPVG(}@Ap&D?^0D*I6E`1uE(ZUu?Ju$FlQ?!pJUFoZwN;Qqcc%2GB>8)hCIdI zIsKm;GtRNotRB9#x{q7Qw$C5NUfExkoyIS)FoKW2%LLXaV&*;O!CSTp*s`UN32a0> zJUbQ>_M9@Vk-usnY?+Kxrb?VYds9^>K)Y(6O{=|=a$gRbUwJ${=TW9Z7Dh|jS5cg2 zf+w_OE+gZISFQ<>p1I*_;T(|_DTtHQk<1$d)JuqDi64*msm-nq09a9!W+({e#J=Ud=Qe^9Tnh6GmFjg**rwzc=>mRIRH? z6_f`?Fc~(wfye2M{DsY$&d&kIp#}zG2Bu=;uXpw8#?p`ob}MFeY%OZa8IDwxHV&?j z{Zo=+wx%Slf#`qrh0Uyjn!X3I-osu!yA`!5BQsPzuUr!)rbG(o+pHA}GWnyQB{s7BVQZf9Ggd3LsLb&aqZ2=A8AOj9 z^5PNEn5FS2yfqy*Odh#kgl=gDc<9g^m?Z=qt;dI<9<@V!m+0pwSIT@%Ia(F=v@=^c z64tZ0c-TX;ivQGJK0}y6oMcn>8Hk}7ge0&A6Ney=(!v&Du#GxkwIq&5Ve>H8BC)8-e^ z))1C=8kQGWCSE3{;wFgx^fUc)_OhM%Qqu9URPHpxqvA4CuH<4z>jzMW$PY#;H#=?h zemWZnfCwnBro_O&eDo}$2PE_lsD%p?b%jkT^3>6<1Av)DyF=ThuG*!{`S;J+OG2S^wrRm77oU1B3oN@Vgiq z^S{|IF_md401IGx!~TE~Pp=*V9Q;NAV`}v-@1wrR!$16(ka6uYQdsAcq_IATc`JaY zy4t-B8eD62xcIgJ6AACb(S>p|n^0pffRDxx3;&L&q1}Lr(jGEXSy=g2JzkOUyJ5p7 zLH$8^qUr<&(f9jpkV@q8(KqsegHZ&u;mor#dg#VwiBbVqnB)vU-Ts+M$(X}A1MT}GNj0mqB0IVB?f<%ToXMmGY4=_>p2Y-DEU}Y24nz6VHbmE2CspoHsdgVJ1 zQhF83pxwz&|NC4>GlzOwVVFzQLG*qVlG^-5Dj3=0Ci^3Y(vEWSGB`R>T~;6>{>rOy z&s`HezBQLCi#KX1e3een3Wb4VdViV-10XXvYsBu4KxM=p3>s1&*4=+^@0tLkYBE*1 zdsNQ=>mQ)VJUmhl|4yn65 z6VQ}=fvMINsZ_`v`w1xOer*FD(8&*PM!@9(PUvA5sURP*$P27sVIowcn7U_ez~t31 zPZJaYJCyo*_-P+qZZ5bPy%$S{ zMZNb`os`{wU<0}R5X!?*D5?Ijn zT5DIAt?nRL#l4NVX>kEy%)2Jf>BltBxQ_JDy#rgTVzzAD!T7YoSgex0{fwJL%M(G< zW@NKbeUX#5jKqy?DrU=AZ{~4s88W!9P>%8TDP5@ZrKRAUwGkAl1)4K9o{747Ye08An z4eW(yazF@fO2|#zIt12~HCyyL13ZI$V|ZiH;n{3Mk92^}=~Ek$6-_8VBy8~07O=(d z#dk|g9hY@XOIfh=gyf;5iPJ3N8#i%G|HYUj*Dh<r zvAlx%27k;)N3Z&~-myOK0nEcA)x$$8gr!d5rzTF0s~n=Z=C7S zI>ki}dQavNMG8{ujQ366 z97lDBTn!Snb8bfp$QaHYgC#F>KemDxC`^`*6}$l6hMGFpY7dfX0OKojJn`T_bw7^s z3ej8mA{EFY)ugdbd=I2U-ns~~07J<)^5UH!KrBO8L)5&$vtIaUQ`HB%7S_FhcW8DB z`z~ft;4RG*P2Fdx9ey!CP}5H-BkmhL6)J2QM{)B@Qxcp=>}~^AGr}+>K*QP{AQhIU zlo?`d+wBK6Mo9PXbb!0=*EtP}N>&dO)(#_a2i;n?#O(Ku4rbmb;`hCKWS%na9o(|! zO{v?6A9URVa|I=IM-H{e!X>Gc(~B`J+OxSNK{Fp&z{#km4sBU%J#+RvY5xWlCw16E z@($nwLN8p4a($DL7K7|e@AfDDBglC@f}Ir`s2(+I4{=ajJ;uiq?pjx`$fRoVY(V+J z^8inTT1P59!sISoD$q^qN7NvxI|!y7Bgz>~lZq)vH-ys$(>TO43AGu9b%gq+`G&O_ zrMD})83}$1fjjD1|Ln2%;@l|h`PI8g_c@D9leauEFN9;qA5tWe)qjh0`VWv(M>%o` zOS=`;v`}Gl@cXdC1ZQ8SB$uD9cX)Y{Vav1rVa!wgVBZ&L3#?E7HO4k`ZK^(3u$8oA z13!xjD^9=u6Qm>BZ@dVFoUhht3zI0JN)lsbiD7`$h#(X^9YrDAblIJzat3t_u(xkx_xg zkyv=?vn&DB*hHjx)g5?Td}82{!AKb5tBnx^opFdnp3ANe<^+DKq6+yxddwS_n@c$- zyzK{0@s_5gLh{?^hy+ZfA>I+5Qo(dpWnv(_3cFUIwl%lG z-P>8#BIV9BW%A03rOFjXbUJgo8fx*0GMv&Qj(Q%23}je1qDt+xn@Nc<%V$>C_%jT` z_)8ib6@h|wGvhVNO5P~RmJPK5vHZ!5R2L@|N+ltbREpi(_OdOK6Ik9(%C8ekuYT|X z?Wdy4DV3b_(G794U~CjPYg!w2G3pGZwD4>zY^}bk;>qWOU2t0bF7K4eC$q2}GptSx zDqbF^A>W(I<=qR-@_W0ruuUOus z7V53rOuUR%Q)}-=T;Q`_QFEA=;7vK3Y-oq>*xq z@J3qJV|uPhDyrkuf%5I7QVZik+JencYe*igCDt|XKUts>;1)9Hd-`f#BlQ?gvz z^cOOD=`F_FleU;wblz067eve>>oGV(^4!aT1zx_f!9DDBLWL%`AAKG-C(*|u=-qo- zl|-=pjh>_^;r+HuTTQlQWfI3*i8zddV@qMSKoURlCk#p|t#*I*lBxZJUX(#%psem45_QAtPvN@1kpU&oySI;&^* z&#?%CYm^>IMPur4NO=rY)&{PR>_^t#aI=)ka>Zq-$}-c&M)b*TMaeK{7JTJ73d%A; ztzwO#sCY7?3I)?ZOUz-feFbI}tb?q}sWiN(MEx;GKsf_9Hf*Se^RaR4Q*^bJ9o~h~ zNXts|ikSKacCO)5vt7~O;=eX_HB}cdSr8k}N)?>X$90y~TKu9%#vkmZ-9EP9MN{W- zn9^7HKor!y6jidYK|beMezOayu9xnjmYaAquwO3E-K1 z=%Vuo1Pht1nuvN&$sr;_!my7(yoybjg&!3(wUj;Or8Q$i!jhd>{So=;3yXo9x;T-U zQNhGO#lT1B5Hr>V*vlK~*)5R(MUkAN2}p>W3!_uykPaa%F3@qLx5$}gA|+Z3nD?4m zcr}9pBA=9yVa3QgOh?u*rqVFZF#{13DD~N~X%B+U*6+{de^`hSkzya9f%Dndby;+h zzp^Z_(=9JYRbPWC@5&o}sJgvfEu-y{)ryaJRTNBvyL9cqN7@Ikt|U7bt|Qfdt>YsE zX9(A>?JL--TBgsEWn4mizA_xH?K{INY1w88e7beEH#Qh|DE*sWTuWKK?d&Qp)y74z zBWlroMXL_^7DBIt`UE&0i7)6lRG@TX(+hI zr^m;ivv&l@K!s(5w|skQ9cv_+-fDeoIJ>+x$10~_oG9@0n7MEN%7;B7{Subsw{3B@ zHVErgo!?q2A7*W6Ppx8(dO1~Qun}dDDlXBa{#DXSs$>rM^TvDfp12O5V-2Idk~`e7 ze^)B8q#rD`gm@;KR;*7!!tkmjdi1RS%L_UdrWs>9clC9&ESnuiRgHNnqJ_*VTqrFo z;yhHbAkB?gXB8=jrgCwKkSq!5+Ex}>mWJ_2_IR?KQ=5GlNjmi|nfi05vC=9B=b>WX zT3pd_9>-YQGe4SGIdQ;a>BB4fHg!tRQ$*O@y|q%4P)BJNqjJ1VRWVX)`Gw?Od{;RQ zsOLk(w>EtM-Z^p_FJuv`8EPd}{pd0H6iqpe+>-Pq8Dt0x4s-Rnsjh`4&ywEa>eZ>Z zgu5Q3N%e!|B_yNMccM}?p)S(a!Ml8NB%0QzwKvbPrXV0hil)qxzJH;H2F_{el5R$^ z-^mP*@(;RtA3k693}rsNmQ=|GvTTV%ahRFcgVCmB6|E^9sqKzA9qAmIg`MV5=17f- zvO2~FYyN`lR!YeW2emtjQ{)>B%a4t$lPIw&eSr^YM)68z@i*fV?4^aCF69yv$9Ner zfVbj+6wt%B;u_iOfH`5zWs^7em)@e7QC|!C@)q`H`hI4G%<`CX9P3C?;ytupin`tw zF-3m(YWyOKb;^o$x{7roiugt?Nnk*gNgU6~hkx3!hikN?sh>Ia>2#XEM zlR{h+F`u1cnE4&uC~>XM_$e^dq{j2YQnT18Ir@poh~0_F97)JXrDUg4vf5-E4YLmq zV@(Z{ip`8`Q?gbGIUJh^ojl#&7LfDmz!nWek@@rjuf7Lh??xk#T6*7yRqXc@Aw$nMLkm9wo zhoN~8-UU(-Z@J|;ldc0K-R{)%PHEN8Xvv+?O6GLR3Onbd-2@^zJFupm+15{OtBO1C z0JdO~ua6a6LkxL@6i!{qA4$l~*oDq)LC$QY^E>lPxww-3$OPS--zT|?Vc(&AaAn<3 zCm(MLe8YLk&e6_xguj5kuoianH_n{0EpU@EPMrXJa8=*2s~$ZL7kUMReio7qUVf)C zTR=c?TLIb~pd`-Fq>D6ZGOfF;9iW;W!6j}pPpeWg&P**AfN)nsqXpkMxC=yWV@Qvw za%0ex*so&Qsc6cg*{Q9v8YiU!KiO_4peV4Pt=l!f=Qxo^Xr#$_AyVP@daTwyGzNNvy(TL3Ja5?h!TP>F3a z$H$oZmqY`$PM9MDXctMOK!hA-2fVxn@}~%tI;Kr6%B_$jTnLc&e#NH1QZKZ!i45bgbGkt$VB; zFdwI^V`Ie|@?xz9;9Fpjcg|RnGqg&yYMOLUVBqRo|NLCKoHH|r zO5?{ZsH0H>_>4ogN?Jw2JO(PI`yMQRZ-LXLQq{EDfLblN>Cx1G2LR3q@L?NT`CT~fqI!knyF z-~Ms2dj=^mPw5D?Uej za_v^Jn;$)k_UzWJOnp*@^Dzv%f&+Vv{2Q)$_l@_{i0)5qPjwV0x`SLKEa$+x1X3QM zDnm!4a{doYd0Jr!Y0(G4FpE=Z`E?@9vQ|*VC7qK|9%a7X!qOm5a#^OGd`V!e+Q7w_ zzu1ZpWH}$gAghTpna^+yLeRR>PU7e(Z@D#S(4K>q#vyribTwi`)f=uXvcGR_pA#HU zzGPd2g=dN5^KKM8DR`ONpNTb(TD$l=fiGfBya#`jl8QB9)&m9BCTS#&j4KiAm#K+}m}yCzLz6*g+}gGI0pmG3!M>}Ss&i3$FocA^ zR#=-v1bjIMRRR`Ld%fJD=zOB^%tTuu;dZQ>7bhKXaFHjHPq{6>j& z;hpSqE|W@Ye}~k*Fb^NYvva>PZK2+G@h-}8X;meU<&7dadaAKAm@~Xq=!1fjrlNs! zo`zywb&8FHt#ejc3*i=>sVMI*tH<{Iq(Xn>l_aw_0p+fD0M#3+Gq!f%t{2=@E4aPV zw#z<`CR`>5>2j)oN}G#P-B~tnP6xMK>^W!xYxRJRFj)8tqflfU$B!LAhNyJtVO+kX zLaNGI$Wok1AW%pBu3{W<)L~iA>AOd%rrNF0R!8`1`Tfx9&3AZ% zvbiIJY5pw(0rHn*QU7hhE>mnQQ7b3;9m8`vcl@@EmKMdF7pF@nBebwcVl#G2;tYo; zERl^_3}>0r4}tVv{Gil#WYq?+cC<%=ERH!gg^;jRS7cN?SDdd3<;$p(JxBbb2b$E9 z@N0TL4};-?=Wl}HJ=xy5M`55gjXbL7^fUqR|EHVyh+^?7!m><+v z{I=ADqIZGuIM=vH-`D4sPmJ>e3V6>*&j6lrRSo?Q-v^Wi5Ey-2 zHa{y^J<=G0Jw(GQUdOdm@;-T2>_Jd$e}hYQsQB3! zBVwpkJ_X`k@;_!jL*{^y3;|zAC;4%|{5krBFC-FjLp}U3g-hrpL*@@46LM3%JnZ31 zC*@u4XAVk+5TBTOa)VKNSOM2R2MQB020#<53|VygC=+W8+I~>3e~=hbaE6Hi$&9eM zA}G*jV+<)t>t^X?`p(#MeL^gi>xt6*!!IE$LAu}*R}q5f(|sc7OX}npkd#&tw1dho zm8J%qpD8RArg?{lfo4YjJi{&JhkOA)wZ(k_JJ}O_fWSaB%F&}St&y1ziCiL04N^Zd z97DGOG+!D~4-H?^qvpr>L`i{I3-WxV^$w21KD;Qe8GM&eaz&X=nc(GvMqd(94|+c% zXo70TfL;n!^$9)`&<+#+hCxEt-=$Vat{@flDcC(T^#RyDN5I-XMOO&5f^?h#6>|e{ zhh{$;a}#g}n3TrAR}NMB@9U-FOJHrXT}$l|*j>*mV{m(5)p}s{z}$M^HiXp1m-!f~ z)sHqvwFcle47G+A2k08Zn*&wt>FrUQwvg`F=C+WlQMy~F7QEI2%@(}gAs1`BYxr9= z_37t5+0DM^y%qJr=L6a*gAaSQ-`T%C-1?gCW@P57?q+D_n(n7)--iR$Mx;wy^wlu1 z`sDMzK$Xd_CYW#k^RB_>%=2#RE6GNnm_4``T<>7*YUeA@weiiq!e>Tz!F)ftySV(Q|^iF0VemT?r^?6hiB4n>RnXs{_P>vPyg=l-d%~` zmI%HEwtAS0HCt}ze-G0#)XfBY=aGBrxVW!_On7ex6j`P>B)&T8$N_P-zbwGE}*4m_YUj}ezKyR(m z9cyE?(j9!ZLG7-_?`F^LQsuJW={F2NSd%?Nw*B&raNO}W)?l&wBCWxB;cxME4Y}+g z=o)ce;cM$~ULm;FsMx7@N8OXV1LSToy)b_IE-p>HDR&Vr4e1V;E=}q7$hVE@_R{=v z4``kdd-^th$yi7?b*c8+eROxYUI=7$q1|D%b*aChKGkNFZFRKefcUxb>J{~-@rs>9 zACC8zQpF70fYxUp)_uE^_1%kK`u7_zXYuFG?&LA{?{DohJInVK-0@v(XZ#HB8;j#h zUr$!gRaW+A_qP$8u=MZk?-%$FAA!Fd-vQ$n;li?f^Ymo@{%~>l^p2f+CV{eyrmnozA@KD9hE-v`UQ>=MFUF;8b}S6)6E)@Q_zj)AuXA;c;2xG+exES5`l!5_O0VZ*$ngpu;7Ut&z*;( z;5Oph+^1`YIDxuS>rCQ$d-xUzuH5F4k&82R8yrhR4(wTc)wxp)v5N;##%3tU<05NF zhj(i%@AmpRz6QGsZCLxdVIL!(GJUG*`UDLuY=wR4Co;~{xLwZlIF~ccN$R$ZRgLtK zrr9RlM`a=n)}~}{-(mrBE9(3E2WNkN_Y)UvnxPKe>E|t%XX=L1r`Iu1ZM?f&Lx$~G z#l-76NA@EkBja|JSWqLi97RtLbZV>YV&tZH+Y~YBn zHXh7hcUpc9vh$hCKA`-eS=SWCBPSG@f#CXPR=Zw`JOhVenUPlWtl>3H-eecJt{HC@ zjy9+qpI$B4$}h&X2~V*^0&VUT%|!3y$691661CbpUKzO?x6tu+TxaKHf^BAMLcIpA zPM#I!vMzcWS{u!7rV#`3@4F-N_iJt;>BDFii+N#;^kV0Bh9D7>gawm~c?1Chw|Oqu z^hIl3y%b^fQb4F*%N7|7DM(qAkg~z|OIa!<00nYzNa;tQI5{JY9OjuLKZ4X|Y|oN) zGZdb(lw(6>mI?-|8|qw0Y-(Cc}Hf*b_6_Fu1@wO}a|&M;hkh9UMP#EbZjqK2U{`!@lW5 zP|YeUm35sXcVdYN0~79YU7e$o!G`!uj3>#SHct$dG+GpL|MsL9By`mns|7 zNgEx@Pd1=KrWivT>{cx$OO>_{CEb8~1GC1jPYCyx!~Y{9Z+*mUC71WAkKZ@go%UnR z-Q*#kn4;NKRsa!9J~WKI6#SZ)Q>bEj3DYzUvsj8*3MQJ= z2XWS7Uw8oWsDfs^C~H;%39R zhNa2qd%?sSmI}~M2O9@x;4y?(ZKl`Mlu=OZ>{Ki4H3O5HC3>1lUPd^_Fp_~*C*v1r zmv07{65Jg->r2TS3`>l6B`+$usuVS!W}yR$bXmRWX#j=>X!qR$mMJ%X8-Jc?=_52j zD+EC##Ban6g(x~~3K;MuK!#WXBfY=nKuoz?fwMl5om6 zkwN89s&Fio1kh{#GSbQkxaD(mJtco|U}$`i#9H<6q(7zXfzy2qp;nJr=4@YPE!XDr z^-&?=bsK9)Q1(|apvJbX{RD@T#nyN_T8&%OG7HWP2`*k78^hW2=FF~Y;#~%MthR0E;z8QT)$@AA-&~L0PvYEar>%~lBrCdZebw`^E(;VcSMit4 zO-G6TRp_f;hM4M1r-yQnO{o>2BKby0#P$%c@<>dhlH@2-B@5;&B-e_ay))&TXMUOb zWrFnm{dZxn_v~sF*Al6Xk{B1Kc?KTt*naY=k#`Z!~%*ax*4 zLw&^8g3oWooQ04kKrl8plhq9J-qp=Gv8WNpYGJj3u&TbZRr zc_*h4UJA=^%BKaq5kaMe(<3p+I6CkZAxDwR>x^nQtv&fkx!Aaj(}o|Dad@US7P|R! zc{0@rx!()7PNP08YJ_t19?)~NSj*ibg}Q>3*~el(Z2ZgP`77Md@SUSz2O#aJDYw*; z^%TKAf{I6nO1AkO#gE^o=2V}&GmxBwU5|p`RX>=!^YiYD7O`; zR5fy4B{kCet^54r>0|OR)J5f`dG;iQn!5e1ILn0p`8Tp)cHBsxh!cUP&bcN;11$2>g-*fkh?GycL5r1x-s61^^b|t24eG%fYsHV3Ah5` zl(sRF+aD2;x*q$$qY1M&3@eOs86Qm10v2&iC1K3@wW8<@rkg5`55)r6Ok=IDxwK#s zG#&1eD(lBzZJvgo{*=2yUp{+niLHhl9q(b2Iy&=|V_WudMB70{P=`xrJx->l!KW{K z9X{<1IJSmr9p1nG{+ZN+Cv@ggr1%b|MDe?Im_T=;)q^zY`_*USWXFwU8@eAG(epSo z-6J^|VrjB^7G+h7EEns}RxXUr5!Zm(6&n>B<%{R9;b9wkqc@Uot|gImbVD#Dw4O0B z1p8BnI$WAD*w7hmY|aB%oZof)S-PzABKGkJI1k?>={S7mJcv3N{{lxNhtpe2S5=Ma z8jeo1^mZ|7*vehRW5SYFrenLq#61LrkQg$iStIA+;~hCOqcpEeKD)ZKd&2KNSj`?^ zC)pUa@}uo^!$0W-t0~ZsXDudrt~+Wdl?Gg`x~DkVLK4_8!QZ%J4ulqa?Om# z#Q3hw&(m>nGU~|Yj3^4nI7eKbHaTH&ec&Rpi!5<{+!rVvije7{5YllTw6$k*(`B@e zrzcvwAf6N<;}XK=AS%Ta&mAX$D=s0Y5S9)-fr)6_$q$LF7^=x=m*m?~VE(et3`z}p z1y~84g?m_MhMF{QST++qF{C^^ z^1H|t7hum)f)a5k*lq{HHNzQj9Q*~F_C#@B8`BDC&W*1e75H()GWMa#J$P#u3EjklHGfIJhhlq`UGfGLEW;n&_yx zh{#+1xsEJ4_k1Gpsp_fBGp06M7R?gtm_=L;7cL@{ddw;dbDlY%>eTzb@U;rbHNyBS zt(ntwR_88`>fI_{P<=wPp@naGhielC97bTh!-i_d=??dQgS+fGNU_-Y6*Baq6bVDR#PBt-ScuU!L2F$89h zKAwE>PCmMCZmi%Qs(#*oa-Z~8zUbND0Z4(u`i9COC6f7i^a0Bt^2|M5YpfRbwd4Q; zAN=~rq>ho*5|51e_%{JYQmM-lYiFBV0DD~dnXFWwE;-Ps4&(s+D*>-=*M^&yAwmK1 zdo1Z1snDi5y%u8({A2-#Lhcthpt=5T*)!4G)8y&t=&EXazFx>&0cZf}3wwBI)c-sU zgaV`k?q=L`xIhQ$m0kcC0Ps&xRZ2z(Q3+iGnV^X0EoRa^d7@9z$Ue`eX$QBw6jo=(IEG5`y-?g{|(mpY#C>L0Sf>J&h zGzzer^<(CtjSvnW0xki}Ja2`1h1du`{LsX|4yVyPPFKjMiLiL7Pi{E*DlRpXBrp#d znwhK9j(EIdzGw}$;jGVtKWe$Dys|2Xy6CIbv+M7hKt-)PcGtbYDA0N(*~f>=Fv-7y z`x~D_yS8gRd#N82++7o2aOAR5b!Gr({C{3HKt#F^>&QLs{Z`Ov0e8Au!t9D&Ens`- zyUoq=Ec$;e<^2tn2STvqN2{Td@X)qB44|D2yN++f@Q7mkOX7A*WgDt7|3tt{dUZ(I7#^Vq+l%#@_V}-I!SSARJ zs3RCsPssaibg$W!^RsTo)ThKK^yp^0mYU0UoytE`57LKMghWXx=@&a&a&S64V{*7v zw$mrNQs2r1AaieycsjCgO3u?`+sThA$qH-CSJ#N-G8yC41XZp(ANaCfSN-#qF7+cR=t;(=Vb|^M;G`KKH2*SC z3YOiveAqm$1iyoe!7Qf>)x7l1>tSJwB8oT7V=`{BPnJm#NsK(glZ`XSK+lJOgS@`K zf?#SN zD)Y1~lH)MDf@CqJ%k?ftY!UZcTPOAcz%#l;W(zn$pRI?`n;08)2C|@knssB8EJ`}v zT-|Wh6rNZpU{7R_bC496$vhuHgwWgtSr}c=g|ksSKt&D`M=)>M+(k&3s2D8Uw#J+u zK`@L!9Cp(r-6-HJ$s{K@h|GA}-Uj}v z{SKomoq&i{s3|sPuNl>>YV?ASlvAh)9Bv%`O2AZ(oN`_XR{S=}K(~TGy;v0HxcNBj z^v`6nS`SG!F|y|M7)v(k9;78G2I`Y|`D(i|l3n}8qdy7#sb)4QkB*t79A1hz)QQG% z{E{)wSt>Prs7ZG**T)5nUSu{7PU?GjeQJ;L$}g&hToyrW5RVbHg)k1MN$v?wIy~tM zSP2YEd_M17K)Evf4lLn@unI^oq*$)?34H`2ru>uuJ?P*^9C!ka`Ez%bC7uKY<7$Fw*5Vb#Fz6^ zx!lg>xBXM~4d3@tBczC%uAZaPU}R$MhqTYvBO^X7qLIPSgR9w`zQFS|!@3XI8*h=< zT-}fxiUo6zgm)8WG=nm>H8y1QyuSE9tAHoZ=n%_C=5+itc=Sh4$?$&=h5ex25^_(r zh=y=QwCThNO2TD?u?UiBa#-WV(D~cX!7Mr_P+ZGj5^Tkp3(GJIJ2vn7<)pmYTjd7f zzc25i31ghram+M2ZrO1c}@7woni<>C%#{F5Sc+t=#(Wi7HgxLC_fX{`Ru4;8imQ|e*K2p7)b^RZY+IB`rDZjf)=E6wQ!on1&dj{N5 zFZRe!?ijI&Pi4b6>fxz(s2-uJg#c3UA(o#g;llbGb*OGgeC7y2a&!J??pZvd@BQEi zV}dZ6!Lh+~tB?so#{qX zpjfvA&+!Bq)FnNRtwxkTaxdhn`p_OxDf4g6#kcjQm|8PE`eaKhvtc5zD|eckF-Puj zWa06TL^ts_!S;9U*GyZzb;$r=M4(2yecsgl;O3*c-m%cenCT)k%yMO@Ec@1|6aNAU zp(M~l9ma;4k@sk+M;N(dNjn79|9uI(c)&xz>kCmT#)q7d_enbMN+F69{vXEP0w%Jc zUDw6kT?cn)+}+)s!QI{6-Q67qcNlb#!QG*8cXt`!vhU4F_CEP@&P_U%RA))$tL|E> zK6zd#1YEgq#hlXMZZUu|VNd#&tmgcEumlb%0;&WIT`1y!<^bq!3zvp2^=ILuk!WU0 zT65Ticw3ZTNa5Gw8wpMV*ks=nwFJBUNKZR5axv`8E;nBSb|W1At_0m$13L5#;`9#R zEtRw>hBQ^P6ot0b7BT*4&H-yv2-dvu8_Oliq)1SMh!%~=Bot4LQYr=*8^5$Ys z+H14<6Q_Hwn=m-+T%<6)tz!|w^ByQ)yhQ`tx1tpsMvD>A(>@FU1)LcL9hTDQ0FNbg zRSFDOm@;XsG;osA%@p+&+$)tW(PGp^jO07*><;jn=qv3{{%aK1S=z5!%+C@e?S$C6 zi~~=RY8L29V^?T%3iZa}mt$Yjb@HP#!Cz5v!5~zKL<y1MB_dMe*54_uUE!Y`ALVE9?Hpf~m&m=v)N}TA>uh$*iWQaBMC(_P zo6YkX#HQ&c{U(3sP^aJt$5|2Q`ARWv&TOcg<{yo6)*I{#^6NdDd1{CSc2hLJFh22r zVU8P=e6npext@{bs$mE7O1o4|f%HO=H?-U_&8t%4oe^4tnxnFwIo+ZebL%G}%z+!! ze`wv4c$^}rXGJYbsTTcP`uFHS^gt51P1%GjOpx>o`z?Rb-GUtL`gIqw&qB5AF%Ql+ z;wacFJ%{HHGV?_XB?tX%gwZn%E06yS+aUQT<;R@oItOl=T8`A*Lb)NUa{^J6M<4?2 zmqU(9Me}PVIqPHq`MZ(@JTF|=n@A(FnZ0XNb5MlRa$FfP5;_b&RJ(=9@0@5$s%HNh zkB3SB1&4LCKq&;tx*xFxZU+83kxWbR3e5uk&@&uRO4^aICA(5AjzjlGjD8;W=$TQ2 zB|wE$gN~itaR7UCLOaN9SMm}*TZ&79Wcai5IYr$R-=^eO(s&!pLZ?N_@gR)cU%i(f z?3v)-I`&w65q_np-p0ZR<@?GtA~14;f$j&y2>VW~+~Ay7qQtnu;f7#@q3b6&c{PYo zt|7O0s@De{I5K}QG))B72EF$D_GSY4U3BvKO&;7%OXlkcvv~L@xUIB|MY^Y~qwsl5 z9c?GskA&x%*qE$^Our&;8fFuB{Dp(cK>`E~h`t3u7OcgB(6k7Ta!IwL7*qze?pGT* zTI~VpX{&p51me-U^mN>sE*Kq=3kTI%PsZ9=j~;Se5mwhmXeqhzt~u)NnPz2V>-1gH z{iYe(8b8K3jwfWOe!Fxq4Btf?v~dgateK~oNqTy<)g+Pviw?fIejXTR>ouigBbjE? zw5)42mMm|kSZz*P%-rHPf+78GIlZA9h#Yl|hB3tq^SqTY=YE6Mg?L3)N(~J@kW>d_i zoO!k0HT}84%t_}DZtBv}4X=OJij6BJam;xk)>RQD$AL7ZFHN;t^fJ1+-T+taXpOvn zOMN2yW`N@Y>XCKIML8KkQ?N834CDA0Md*6X+}v56z(t!$`4nC)eb&X@qS<7uZ8(2_ za{VkRd(*2kxoI|@wlnwqLiZ?vU31+r5m6ZR+iHFi{b|N(nYTB zPBP)6_*Sdik)HbfpybnFcltcz1cjJNy*L@<5B1zUJ;e0+I4jaomKuzH@@eP7Wt&ZDi->}em%EU zTJhY!D*gzJ&>t^iFJX59le5f$rgaWw)hAVN){=9Fgl^4k5oBq(X0Oqe6}hFr8hMN? zdGouS14>>mN9&;KC5UfGV@Ebkk+yi&tNcnLG*y?5S>JSz+GCYMD`_<*SCmV1b=DcT zVAB#3{jPEnuV>Goe4pRjgg`JF=i`f9e!Q`lq`OjTySU<@e-=aWVD0luy638Bw=KWS z1||Fauprou@JyMExJLf@_H2nu8rhce`8V#R!MTr%2raeYvq zf+nXyj;+VS5<__+d8_Sm<&x%4-;iXi1lZCzElK>wD2_dHyU<9nwaBOz)ZeobFbxaC zMHW#HFp|qTv%0)X$;a<`Q95$iXYjT zr9&oit`sl|&IpBcNkW>WA$5bsooJ*Nu4b}QslT#FwCvi7%K}VQ`Y1cWVou?5OX*%v zG*{!ocS;MR)}na4o#kk`p@Olw0Y{$jBM9-Z1mN9sCDzvjoKCtU%t0nlBT)p^T+RZg zY z{VsKx=Q>SkXIH77l27N9wI5?hHa{)n;?y%iPW+KxF6A*yn2aTpHm{o%L0hs(+W0O- z;bc=9+zvKI(Y2&cIoh3ZPQj`DN7;F>HmPZUBh)taVqR3GDUMTKCC5HBT$){_d$6n7 zyA%HmcO9j5l^QXfwoJGiJA!R$X2(LxZnfS zf=AyOj-w}<3eX}d_vP(#4w6i8e=eCzpm!P?5bW%E>vXnArl2VieXw-@Kh=e$VxM6@y}FPt7&O z-kBZs&hih-eDN&wCWIG&GfGJhS*(f?Sw~oE5IjMwio$0n>7Q>XU=(Hs29MCwPT@%~ zh?G(PR#@&uooGTUHwCLzgtQJT&oyt_*hxWeF&e6Mtx)4{N$Rg$RlRW=xK&7 zUw4CQUg6bg-NMT}O+UxZt&^^;F>4MGM=+KcwVLnm^X!{)?-PZ$l)M}&#Q#*Qe{r*@ z{a|@0aLJeA<6}J*e!3Ge%jBLRpfwo6m(thta{8|eAo4~A<#IAz>|l16b2O86joJRm zt&Ve9g z?L>&v&k2kEHw^b@-Ut^Zb{U94R!9$LTX=NX;01NFar<+&s~(^gJX z77N;-BRO5>>CVpA`{NnO_7c*r}2-t8rPf*r40F!ie`pGWvdo_Ypa`PouM9sq+5fp zC)T5$K35>FfcHnh>w8szx7F?k+>#9#o_CCpnd|NJu7cix|N5r-lpWM0a%_>a!_UXXM-xcJM_u9Id|$To zeWZh_qvQ4g(#aIz&h3k2Soo8?{hyXjeRP<_zklB;J(L`-gd7~^P*MFdf3Dkr1u=s| zJ;-07JZvP9{7~%W(!R>sIIEVv)w zv^Y2;i_L5b%Z3=F%gCJNY%rg6keTr13r{DJeczJ6`zo6&fy({t zWX>;z_Xod+eE09)xJZ)Q2MSPMUTO)jgBd(|eknPOc9!+9oJxCUxCkjS?L4amtcFcsp;f^F7X>ptw3*nALBV{UR#5ID7Gwd%yo4l%s6J`2@ zUU!%oj`4&pVZ@~x5W*Rp*Y8FkNtTu;3?9F@Fgk4Mj)xS_ zJ!<&Nk^kZXW7rshHw>RCJa3T8v?;}rG$wD*lWSG_fHWd+5F#GkiJv!08fQYmn8n_Z ziYaVgE!HG&G$h5%7;m^)K~56D8;{Q%L>K{&4s<#&LF0`Fi{~`@M$Y4Aj>ngvcwKPW ze?L3Q8%wAM;x4G8ca0^PQ%qp*fT*d(frP@i_QsM-@T{w-lSf+dBJL2F?OBBVwbaIv zj`$-o7|mp7_42EzkJ#)Nl8>Cwf^(&5q;F^Asu6vk-362V zaXU)d1vLEt!4vpZpYC^a;E7$eirkLBbm6lR;&tIeFM-G#N>O1J;mCNlO7ai%9!Rng z0eOLPb^HQiZ?V0bpf&pEuL`~K_O5U|@~*-Y;h7WmI~MZ3{S!mFlP|<`gTpN~R zg60jzdcu-t_T@-5fx+Jbpnpw2t1Z#8G531J3iqEN3!p&F-+NmkjPAatq9_wqeN&&g z;EYxMnvn@xMh-*B^_Vz1!$N^9azpO0srU(hr6C#FNg%q{40IZNEoYk{ z_-ZvBhsBm%64u9Q1xEd$_ohvzF z-Ue>qxDoQaigYpbZp-^;&;aOuvENQa)O7g*N7Q)vf)`-2?ijc)>^s@Ei*IYRe#5W^ zr1Kk$TDU)3NOa$gQISsmkX%r&8MZ$!%NvtJHM zdC7I#!5CS133l5-cxpoW7s?3y#WitD@YJYy%lg#po;#vx3lG?_X@l(D0a*`@;Tmn* zLHlF$^M-B&;5*S)h`-&)V8~T^_a$l7ImynSZSzK4cY0LK_QALEaNl6a#QO~v!`FNY zC_mMxJLRZ5z13YnU)4r9<^qelpjTmz%{$EYf9fqgwYoqUc2r~kc<7ydSkPTibdeXF zV*kKcc~JfCILQk>=CFT2e6vBmdyewg2iaR=>^&(q-c&0O3U#M>x(mEt!V3xC#|^W8 z;H*5D=q@BU%L|UPe^9SHl>Cp5U-9X0XZhYVn>Rb%1-g#%nODSY{lDxz={DY*4$BX` zpNwoD{&lC%F7g3^Hg7}$D-YZ3J;-c5c{bj>D-Z5mB94UF02(v$sA4r4|BS z9ZF6uI?4+Uvp*NU(B;1_>lgmt(>}g9<+q2}{jgUa^mG?IoaML2*!{jooY$+p@O}RF zG`rvTB`?1uv;TY#=i5F%JIWmn|KHAX!0+-eM%Lqw-~TZ*#`@nvWB4(@T`M z{>y|C_RKRxpCX=Uyb&6R3IQ2{{ZV9(L@aBfsU$0s{>`pR!caLeh7vH}n%q~O+vKq! zolV$LOF)${aqAnZ6(&L8!j+B3v@F>Ran@{p2#vm4c90$HXf7d>2Nx1_Vv$9_zo=V7 zY^QqQw?r6LXy}UZSG4T){t97TgNb!S!jlvks(x^AmMGMAKVe(5+;eY_`E=N~xrb3d zGI1)&9UhVm6JCRr{)=NmklkkYQ(^Wj;J&jWT-k3TvF)5SBD_&`iZx0kLyl3ssBM;F z;WhPI08old6ZOllH9U~xsJ-dXbXm)n@+?oWO08G!#UuJZnvm_knecx_7dg3^{x88r zb{1~7{}Ii-)b{bkSOWTQv09ivWp|j?!!~qjgS7~Aj5S3C_0=Uh_KE>$lvjdrh~X%l zqlo>3v26$8)JoLfT8F)>hhU=BsXx@KVO!a@NR@O_TnXCgI=7bRc8RSJrCv`K)Z1ZCo~vVBW_QQ(2A@Uz*&OExQy8AjYfqLbVBD~p_O@zYvJFjFA0RHEZ2mY(Zv zXW8OOQvPo0n~)_I(?8Yp(ukrK^*}(5ntvOChZo_I;;6kiA_sC(gMmWakAXalG}5oX z-$R3{#3_T{a0Y%FL{9gfFPOJR+K&8k_*elq(4_qW`!)5p%Y4~cbo45vNC}6-UaVRL zy2HZ>b_-a8MapTHjRp5~+>w)PjFoQ#W~ny0B(V+$HM=7bq)5oYlZ7$ql+o_9@X;>K z>Vp&+e7)r^1+&M%6Hv}T!i0p71lN;>tH=$S$_=?L8VX<)gT`47NVGgX=ir!NNc{8z z;4NCfY8X!m6?}SpY2!Zlem$HB!afv$y=`MaHU=slwC>3o7pRe||*vK2<&`qs>xftTb@qdg6|3eYn4TG5vIT5B&XhyjzlCT|6d4f4- zk1xrRm=mWDjbKJfD2!v@vBD@q%)o_qMekXSo3hPN3tM1|{@sMn9P*)o zf>Ih|iJ?$}D`=XmOt!RR#mR&u8Q-0k$1QfR3kNW^G$laT%X0dx9mvg_w=sU7JGu-hCv4R=4gH9UDx}{AAVKb0d=U+Btz^hqiLc<9$PW8QtzrntOHTiMYNO0bWCffkDk2*{q+s78l z5N91XIJZH_QYE78}_js%>-o2P5;C*!)^09VKLrAnebW! z{(3+ZcwW*CuLr!J6yE=LW1u`E{9yyVq}L4(?U|7_0ri}f$N&2y#mO6bshMN%PryRD zxeL-(7_=8Q$30*p$?r(M8-4~MUvQl<&(2{-Zgi2u`Y4ieUkhf<`V- zkr*f4Rl_MvSwuQ$uLIv_$BxnL>F?{B$Dvu?#GW>*mb*Yx$|A^Zim0Bv52Ni9N2OZi zvIwL_hg*Ew`Yu>b|MT*63BLNp%@(7B9vB(1y5t)hRtOH)jT2l}$zlWTE$e0>xDP-J1uJAAa=G`-C<}i7Pcb^J04#}~;>(pDIqc3QREN&(!cdFA+Ay7=EsHA6h7i$qx zNF9>((@!W(B$ww6DAUoHS#GYK zw8!oUStr+acT_hFt^qUseOi2wXlhLEgo`8*8|jnh>}OBQq5a-I7#;aF}6efo4Jb4I*PQo~V_X`R;rK{VX0qwz%~>HJ=qnZ_ZA zUxEJ1)ur0D(&OMvfQJ0KM~@p&m2vBFu6jYNpR4U?_r!I-{&`sgqiLVN+B}b@rsM66 zS6FK~AbFb}t1kv#_3vF+;p9fA{PYs8Q>%_%1)Rddg1Y>}>olF1fk&rbpTI(c2n`-b z8lB47b9^LL-??yiOYXL>Wx{QAW8CuG2~m&Z$*lp-huUn{i19!&GQ;vG~Yi14H=g?%!OAm@pN>P4%2dP&zNsNO7ilirGSDwfP-WhX3cWwOS; z-o@sg-J`QZzBj$y+7dSmx9seK)B0%1qW7*Adsu+ zZ#tDO$@g&E9MeOyQa{D@(**eImzfm}Bs358@_LyaR6lFu*YDa6>5#gnD2@)_BM{L) z0Ci#z{G>jvVbiT8ZY)dnz=U23*}?htLL|2 zIM3dmErm?|(8eSZCe+Mr^!l{E|8hoRdv#x@@HrB*(H(s+0y=J-cnR-*5dSs$aG2{+gpv z=DN?AwkYt^OJw;>z}uq4KQ*+xy58SDZiO+zuvR?`mVAs=8OVoEGgcgT$!n7DP;^=~ z$G~9PtUZ4!6tFFw4ux_m84Z6?;~n_RE}r{_*?Ou~*i--h`XuLpH};3j0&3O4n=TPR z14u1~BttWaNch#y-N(|l!6*(7F%`_FPb;_eytpa&Yc8P2UVGunqU))*^SyfCIp(44 zmiIW0^BaHVvp@Cx@1%T0U%I}>_|}A#=&elIX-G{{HPg4Wm)nCGXYEb#woC=p8Ko~* z?c%gACWtI(3xq1eA=q-o_16wmj(yHDEAv5=iHtBk^R=@%g74E_%{qc0V1~ZnsK2I!f;* z7xniyd+~_y6H@zEv(FkO$48(ZSZr83~bnu}2p24`)c*l(A4S_dd zzd$!VL(Zkp&yK%t@GIi<3{PN`W5>wc{?_&Dkyd@oL8i&k^~7G6TuEbwgHzZ^3+ zb+{57Le~xj$oNr6iGryskO(<;ux;8y-^-(f5~Sq@S*9?x&4rKLAh zuu4C+9xqS~C52)z7{aP2WMsd%1Dm1{iIjo*)A~(C?m+;9KaLc zrj4~a^;>GcWnU=g{kA4ssok-QvJ#e~Vb;)Ll$wUM<5?MMakV z03Sr6P%Sw9HSC1vcCf!p=wbggEkS7^fcj^%sqML}_$#)46S(1Q-Ws(1BlISfy}8ua@wg zuhqG}UNBSMXzCuLbQKfPdUsDiwRfZ=6pfMSKK&8zSjd2zn(?x<9xp)$+|Cxu@2Htg{j>& zfJ#&ETcp-7tj0mdi&58ig#YV>=4kuE!XKu{2_#H87Q=crl3_JU<06dE=uztp zZ{mL1pA5K_FZZNgl?6K4UH&x$J@`uR2yP+0Ja3n?vh}F$HS{}OZ#kXw-<`Uh7g=v- zTcqN}#pPwsdlKt4Y=>JVGD`{&I*!%hXL_Z;1YLcY^Ks+EL6()>})_Z=Zy~6t|YBnKc82A3We_egY^mm|J0F_^a@3n zY=q%TVdCDBT9H=8H&*}v0k!Ow<$~|(^8I=gnUTFsCJW8MY7Wv6jvR|D^|b(9ic93% z(9`Pn{%FsqgX{l+CTI90mN|Q&~<@^nKZ8;&YMtrpEj$o^=Da*>Am2~C}1gQ(gQ+> zvtjLgr!S_cLfVAZYENGPCIpy#CM7sBU+3ARczaJ|e+n$cnX&*^{L<^CmVdQa8uvw6 z+K%vNb=v4iAorSkteMhVy84gIIf|Nt!9c$&-lEit<5a6+GiUfzT;cJ!hJT>>_&NGH z=J?snq9P#N0xyymPE*2floaanO|TylXX)pF1}!A$6fcxK;7Rwv>nj3@1Wou0jDYib zilIYT_?kv$JZ7oTo_rKUvUHC71hUxjPj{^d$zkMwGEKUV3@1UssJufLLNJ0pW?TDv4a_NAvWwLO5zNMqHk zB+$jO>X%L5>O$VgDpp`X`!ZnA22+D~6PnnDO*v%3j6>N6H^aJs_rObJs;KKc%&Vl@ zW{VZsVXNPuF2i;2b~1NzezHeD3d++{!Jg=gSVd+!-YY{8RB>Vlow#r-Pzn%^;#1NPHesymIe=LzAw31cVCnz`^(VPeX?UCc5p`j#5VyC zSUI`Dph;vBA$0Vvur)v>GElYHLTeP{ST;*-i#mAg3)hwEFeu^A+a}||imxfIY)l(8 z8Suocz#$yGXt_kjs%J9*8Iqky zW;0Yo692uz2Iy)SY;QP;8_lIGpD#I|oi0sqht&p`pKN2DGx%DAfKfiA3>Ku0#SVrGiZ z3&(mPj(mp3%wYC>tSif2hF#xCb~QqEr{(nYh%}qQXliQB0H@D$Tv}NPlF(?cw)OfF zBsFZUPQ$SK>Hdl|`#Aa<2o?t}X-OstnPNxLzWgBMJk8B$ssF9lhQf5V{ej+Am-o+V zvx#RMF54x4a7e@{^dVXeN(Na9>=c7q8qAEqDj}7aFsVrh_X%m0E=lIcg+{{P&9hh3 z7tj1~*;t2NMx1=|3G^YtJ(kKq;UPWN%>#SX=XMqw*PbG3-|x# zn~qEVX{)A=5#H-(-!t#W0|D0KIjyyxh^1o%Sw{TCLXjp*prhg=Y?!HFL78Ffx4ua5+4R9hT_#i@cow57!5E2aSR3HHaizQJhLCEslaS=ewATLK z1osb84Vo-M0wCa33Oi_2D1dQ;_@(usO)v=7z>ER+BJ)Jk8*~Ew14eu#Mcg76{081o z!q}haaS?nQd`Q`V1uz{+fl>|PvxtqTroX|2tRooN=t<9NH*>7OOImU<>rH; zHX;aKGm6}zR;P%h11HdSu!i@(+6ZvyUDpF1;%fbNmsAYM_%(m|L+dz_phF`0{X|5v z-;{zXh;AS*TBzqV&CZCt{tr4Bg2OQU8s?~fQN~8eoKkLT_PlTz$j0H-osLJx&%#ps zSXzEgfyLJx4!g7TlI(kG@xRkcHXWCOhv5-1k^p23@=fA)EDmNd6`cwuieJ&;^}E|{9Q$~^Efsc0oq3+&=^SAU!&^?u9a zbF}S_T^#cNr8@#SUu*qG_W=SdAbHQLJA1bI*(&gn{8>F`=*fbf)#IxWy^_V*?VCC! z+B;ahi%JOmg4N%>?UXH^t*t_@5Y08Sr#Vf#!fN26R)cyO zJ=E3WoUTnV>4leR=3t)x_kw)bW%8b7#jD^rO*K4%qERA8BfdfJRYP5yVQmO6oohVS z*t9!5qaNlSYOKu;bLj8#&NSY6;{cv)`jXa!j7?4Q9%c2amiehpZ5ge+hVm|!?5rs! zj(qypPNA0>&|lNhmCu zF+q;YYK;YYj^&t}qdS;blv&jMlTtTFxht~Ll1qJ1%+N*+i% zt1{M>ru$qm8-G?2RZm2~q_0DMjrjO2V8Gox6Xf-SsS+1B#r<@LA)5|bZ3QRNutTt%?7_wV&b60y`}=|!I(ygkdMeAQx$GehUIny26)XXL z|071e-d%VHvCA?+O$5mJy!DSp;5l@*_4Vz1SUka|38}dZHw!}q2GSWPT$q{s>)Kyw z|KN|U{TUUcN~8kYV`IJU$FdN|04`Ir2+4#wuJjR-I1^<@9shbw2)feq=z8yqwE5PlGAl%hDr)W zTB-)qqZt#=8ES|a2gZx(Sertqk5`+yF$JN7(rs9-{R3=C{Em|IK zU2aU>UAgisOt&0QZoL<{e7ame7ks_*?9K-5HzX2?c`;FV<=;>F5?egI;8SXm8AFsb0PUSAT=(z!^SApDk0r z1|fiRA@;ecK1Q!8zk~UJ_#+8vNZ{va4Ba&n5TCAjyPDZ8dRO>z_gTIy9p?>*CD`l_ zH$_9*KUXx(S4pE=%or$X@Qh#9WkZ1IT&PTeW3yM#&=|;t8jfSWkRbbB zio{L`YXmV_AS#8>kO@rb#<*vw;x6=1#Ie?k#Xsm8Sg>OJyz2~t!yEh#01dM)>)e8Y zl9E>kDCu)(JwcTBQ0XQ#W{mMq(KT6sP*e$4gDSuPx-TRUw(qqc8WwsYpv>VT;T^e@ zZ;Obuz$$M%YD+F)1jYOZYXWf4_b*nHP0;Fy&;MtAC2v~o0g|JrFNZ-DM|I3> zh=8jhvO&p^8#KCrUOC-eV-o5wd1?S2 zMqRpUo@Nx1Mdd0@P0ItU>=4C(+g@RVkS?iObjSevULlh@0Y>!TrbrMM^~=9Cf8m>$ zbI2Gj>eA?tVDdk51G~z>^a9k8O&1vRC8u+-Z3xR_oOj5#u?ZI>%qJEGJ%&_3X%0=h z)zU0GTy=SQ^7r}h0G15I2EUB-o3E-yKk6^RzS-%gqVw)sN)3~b4yP6IPt-PK#wNcC zi}wZ_)A$1;#$^+W4e^MuZ0klS5C%_jBlOb!4A>k}$XeK(e%BW?4xfBvXx@1=js!Lk zm)Tgn#eHwJ5{S5VSb0k^aBJl#ofE^Btg>2Hc*Vi#u8hiXH34#*v^~7LBsLF={ekF7qAI@RmyRi;Dgj| zG_tr5`IZjbSotR9o*d_rhq2*Ya&5=hUCPm;ITnk@XdOrehe{q>qBG6GPeUctF4QyR zM_Fg1BF_2iI9EF3ZLvEtLat@bS>@R}|WOgmq0%NUR; zllj58Sy%Bs>byssvt0EnJHJxj<)J88Tbt-p`s3n#Wm%AL+(9?MZujHr^guvG#Gd%N z!c4}MA*)2-^~$6mk#xmi(fcuyr$)eqeRJCl*hdF9Qc-A`fY^xKl;&v6NBb8tR+}vW zTla`YB%a$=pUf8H2TJn8VOEyfcfLhGNx}~*)$;tGQ**A>mVq|0}G$=C)m7g4kSth?Q2?bYgOth;L~aPaZ|P<4>ZP6v2dKbbgG zgvnZvx3)*7jY=LffQoBgK>Yk`K?dnQiRk08{=AO7mH^Z?Zqc8{CFjm!4w|0N$f(alQdroh2?CzF9F0wQt-V z&LBehb{*8^GkhZgcsAcRvNtw(Icm0@|3%eG{1M7>lKXhzeYANDi(enBh~IZeY4cz& zw~Nj*oB+y5IfVk($w?>5aVe{Qk9&s@tD4u)Y^#~SMOnplO!ZAvQsR`UeM`s@V&7E# zOok_$ZIE_0idm_Py%~d~LG~}8*WPGa*A&{o6Uk=?u!(rneDvG3zXkO3`v3&lA|vn1|Ieu7WaPDl?tyx9bF}-t3ekA?>Sf2*Ib(wdHUFWTCcW_ zOvH4ybMm|Jm6IpJuQX5!rFa+QPQ>%o1ZsPXYG@8AnSt9Pzbd9$j14orI`>EXbhmCA zj(&iyrgOcY|7|XoNY=?sWvj|$Md>jFm#0C4*uxYV;4zBngPZ*s1A%|LwhXL5jBSP? z1{@H_!imj=cg;rSG4)aWh~FScc%Q^9y1G)bq^71#+92pX_-#4&E;-&uHWWkZbnK>5 zYNNNX4BOeso564x2<#NSH6B z)`FUG^pKpPHe>iN3sQt;x}`?Q@X#LZhlC3ZJoZV-U@#sV(QWyEMwzanASq_o=M>0+ z50iFGY5^oqeA6?`whUAIamZoB8l*^5{;DzMAxx|e{Y@(Rj6|byA?J(`Yj3B0^ILPv zWfTP9b`RN>JyI>Dh<%=sCoQH>aeBDhZ*2fizhRKX-h1lXs=b;KOV2z|`q#KPCtiL+ z`xAgx?s(aSkUK|rTGn+jb_!x|dH6(U3Aok!P@zTY3$8EU>1bgo*dgZfcygv9NF-+s zc=x=e;83)RsSW%di!`BE-p%|(Fp)cuHkSP6WXB^Jb5T+YC=&vrivDUUZ_DvgP&{cZ zX|TjqqEks~47@YJ6h@C=)nqCr5z^$9X8Fp_4wJpi91pRUSnkEG_vAANbpUk#)++4s zn8rZZ@C}YuB*?K)9LdgCh)xy@<493hiU*z@ZEBlBl6cAC~7I0mYA; zKHEf}70*GO&w?9{>&rxI4$8>ac`qXJZm(|rP0^gZKW^QzW_tF%>rh=dHX1%CP-+tL z43C|`Y%}rPVQW$zn@G|zU7M7NWcCbYE)lJvfwe_))C;2?v;al_ z7)lxQYWa7GMi*X=d~XeY@z9mAk*bAs^-ljw>*Qs(XgpqluWnIpoUD8f8bSzO6RK5L zcUrMYgoLgX5;AoudEt1}M{iP=V4>UrzFqDh)Z{@AS1}J^3ZzF#dn8&I$Qe2@QZKM> z$@dthyPnk5hx{kT#jX5~m{ys8P6pRbXk}EXUUr;6%Im?uK$u4mm;d7{`u~5O&i`#k z^S^;smaM3lDdUC*#RF7$kpmrD$uVK~27Wt$*rWi6xg+kK7_oI)-Kx{T-|Q{sib8~~ ztemnm=}^20(kP|jRA7HsH^fBYi&VE=wGHhqo*7Y!g9-^cs>L+p=jI=7>}Sn#(#_HG z51i_|S%`EkWjf?4@fw!W3-1Y8J`POL6`)x50cyoAQ`Z5{RqwLC_E02EB$^{;)Nn)#tfHEfi-Za|G-K3`?_Zzat+^6$=} z;f7F^ND->Pdpz zQMUK7Y^Xw9n23!s+Ypn%L&$F_ow0Das!lO6j#z={I>+NiE5EQfUs8s7i0NRZ0d@Xy z$zHL_ef@myBlzd~`A=_sYu1-{{v+SHwhh0{<(I8F6hxpH2r3RQvw+i6qs2SefhNeS zDvM;-2*aO!f>{e#L%$kF1!3+e;#QDbkWqSFrLqmawK)VF4e(A})^UsJS2OnwZel~C zLL#Q-!X^SECeT4me6ypAFxJJyV)j6B2-hyz=p(hSlE>-@&{q&cT>}+eCD)7UT3(Rv zy^^!Ev{TUb)W9|<3!+ecGPnBDE(<>b44TlLMFu7ogl=O#RE4=irmB)2fREA_Jn;%7 zwFA;6nlZO5TLa-wWK`79y^L?FwC?Jar-GxHtB>D?- zFcoFs+7)m{VbY$2zpU2%TfJJaw`+Ha&Y*4Tf!nwp3=aMI8EgC)9>Q&s4TcmA1m_hm zP$ab|ni()9PGNHK^YRQs7$rSL=frT4zxF&KpFDU)HH<$~7(AB8dO0Rl1s$`;rbC}H zZdyr5DUx<`>*=Rdz+a{L9WbEx0Soc)Np|anH5FXQ7rtKoM^{WNse>1zj(h_68$R}% zD^_Ik?1nIkCH007H~y7+@Aa-uc0!!SVB+G-Re;q~0Hd@7V}aNC ze6t9DvTlYrW-IH7ptCDK4K6HLQd$C4CGi0kqs<0C4_*o^&$qZ!#!VA@~ zud}H?K5g0d#PWpr0o8XDpYgjptX3;ZVzCJ6F)=cdlztGdrmu@D3a>jdVvJI44^T4{ zV=-d;aO6Y@^#{y-14T;{03lY_(Ezyv zs&kT>e)pzmtc6$C+M6VM7N2at{%Ol=22g0x6S1-eBON*gQ&e_~`3PSo5t18^f`NGr-h zNpS^+ZhhOK7Xb_uELTbx4$1_s+?c_AuV7GSK$`7TK0GC=G?h=WP6?b)EMva)p{Wr4 z4aP6j)F`e&`$dI|G#5J}W@+!)oAvy!vleW%`AlQ&g$;y|1X1jOn%rMIY9a2cL6wb! z!-^5>nr|UMr1J*IA8bXqK28t@`(OZc!DOlML^YO>Ny?=Ix2CLaVF8MQIX)dBgHm3| z942)wvKmYh^XUCSncHUf7Gzrkp#JusnAb+AClcPNwZf2CDKRoAg?8oGGEWfXeVUrT zP`06Pm{VM#f4PDRBBL@R#e$`%PsQKRsG_LGObKum%agN8qv^??lOm)TyrOF;X|2c| z5U$ayJrWk*e>kZ8-_XXA{lj2|8#oXZzBU@UPDH|fHKQa6$7z8|HN=$p? z|3lh$M>WyC>k23c2q-AMs5Fr#AiYGXB27i5_ojs2TY`X6q(pirVx%ZddMDI`9+BQl zfY3v4A#j7=_dEBTway=Rt-JPGli8D*WS)8V^X_MtdAH!}?_}X70TFVL>dr|I?o5>e zl|Z-103eTjmD2T-(zEL zd3~YZ`0gC59H;br<*q23<8fBQv!=Xwk+d0z_=4uN!Y+4dyht5w0?EQli;s^&NdHJ) zEKz|t1CwVWUbd>GsIou3=JiTe^|z=TXM>iuIbE$<24BJ)pP`nD8^GkbnF{QY@ncT5 z^p9FTVTB9|yj~8s3%ZPVAN1Jwv~hznkLzBPXwcV}Z*GQl$&{sw5AHp)nEceWDMpB$ z#2W8P)1-85xjBleJ!V)+dCi>5OWBHoy;bI_(tVzdClZPx6xFem+jC%jbP_ zWd-z2dvzh_L}=fckw z^un!QSXrdqgg%xgnV2(sLD?vQYUIWY z$N7r)=_7AHSf>gOtEewbpapTvzKFc0a5YXv)VGs`s>!KKX~xCikAQMnROOTtUwL?v z-L|(uO9LcVXSId{c&7tV6n;RB6m|IhfnE z0#arpb}P>kEAFmrIe8yUajn$#e7pBVA{~FHCSylEJmQ9)`Ij3@q%AL)?&wafT92vu zLsZ~b7yCGUefM@Z4xjLK)ZchG@y*imRR!!(LaqiZ2i^@w+vvbZ6dbqQY6OI`z)y8I*%{knB7>!F zQyY&t#2i%fbg>`$!r-loLini_6I6hRggMq102$NF3m#dJqmW8m?rad?=cyMh0KmSXsA zMM&tEFW%_fhIOrJIowL5ucM&vABgXrBEdf$zN1@$nSQ6B;|Vlp88hwHtqaaaH zz{LIld#S0h=tUK+9m?OESBLM|CDm^Am1vKgt&`XJuj8??`Zin=m087)Rr1-hUA~A2 zk?FWR9<2uVjri&rKYmP>*#50)KaVyyy^UuVOy`tm$tQr-qt|m9Je9brEhGu(N%#ks zz^f^2Z_Pk80x5Wuf&BNzr#~s)@oZlIek=N^Q+!F7>SO(%z0L#IkAGiJ8Iwq^P39!$ z>8j}FN|Ez;W7XcQ8hw9ngTY9s>X{>R)w>gQM-8oVY6?a!P~r5W0n(;^B6Yr?s)X|( zKE=Qgt>5l5_wxLx>)%)LXHWilBmXuhK&C0%4nLheQ2GO+V9WNKx2GyRshF$If0Cid zVbYlWn{w?RULCg_szyG~&bg2eTg-Sa7F)e!iP1AnyNEUF$74ckt<2p8``=lqE+V$$`T14WrQU)ep?} z{3X2EO5_ah-i^%pQNTJ@J73k0ih%etl8K6Y5Uij`i$ehi_!}s*i@3`&^jJZ*Y){l~9+qSkMT#{+Q1WftKg)m_U7xYJ*` zlRxaLuFPsG&G`yb;Se+l=CKb$PY~&qGL(pv*F`dsG_4Is0}tsl2K) zBA`)hSnP?aR*_*#KSnyW{1jQ9fWmLnro0i==e~DA>0UaTB{q;G2L5T(^|K4x>Dd3B z<#7pUPTVN$JE?8Wr|T2<2CfGg4S$GwKbj%lv03nW;3s1dhPSrU>QRihzfpKx(eo3+ zssQVBOeeCkzGKow3?;?h>nXW1V_=xVA}Ky}^hvy5gV1vs!yudXmS=NJ}@_3;e+2r@ z2C`ThRbZc^)VKOEL9^Di+M6WGW}4rqCRDVu$*c`^-h5ZgwTCr@Wo+|+u3Z(XYqEF| zm>gE@oDfV`S=aLQhp^-+DVGqtZI0*Iv-MwzBl7}9g9>qZo{SpnF0w@-R~U+b`Z*_~ z;#2(v2oW@0^1Fllfe2%7s-qDFdS^%GjUu{JAQ;F}{!<*}XtiKo!aj*AIQpz@ET{Pm z_|zo{1~4Hk@ksyPLy&&3^5*y=gx(9hX zf$`B>z{nF6wZ^@?C)=z@LeykT3PL0c78rK$T|x#~#470)ML6OrfE10Hf>y-6bxX_O z$?N2Ei_7r1*8KD?UDs2t)Ed@y?sy){`^%wRCl)j!^{?UN?f6o95zma*M-~6Uhb>Ne1S-Un)Y!UhY1kV~VnU z$s)ug>dP#8i^YzgOpEX<4i+BB(u?q1yYkNW=f+~DxV0!2b#oY7*>Zu%~_ z@Aos;4bs}K)q6UUo$TYBaik|F`ZUvXyUBW;bc^*?MvL~oRdRasx#O|yu{FJJ78|6# z_8YIqi+n0xA|3=Jq}$N=`bB2ksejrZb#Svx#j7hY7ANaFs$8^AUkf$9hwKWF3iGaM znyEb)_$lb->|4d!q1F}0Yotl9`+U1F*DmMHrp#D+bcXooq7_tOFP(2k4_&wVa`@G8G;1tmf5O}OcO>&?Smt-}pC$HSbtf9~(KPn(-|RGLPo5o<(5Su>_n&K-GX5y=j8cP=(Vi_K z^ThcsoMdxUBLyECC+1{9XT9L`xKom8<1izFGW|utkIFRW5hakE-8Umpj#_bAK6#;< zQ_Sg#vQ1ijM1!_zU$?{klJ{?l>(yPpjF$7f+YIIulaxd%Wi5lBah3qVB|yS=UB}XY z9s|BJ0WjeEJE!9{90}C$o7W_^>?mJ4ZLh1F4xU+7J{+CC?RQ(g)(rIXu!ee&Y*bDogwwbRvc)$V|yqx3))b4F;{j}{SGC=)diTs) zSa8yUpn4ezR2luGeW{1~hIT!|D&6DBSEyNX`&I=|u17)Uu6|q{ zmsg$%+CXCc!>&D@=1&1o3 z2sS^HjS;Ou!6%lQn*ZLzJot&*Y!l(Cg}Slwyj&bf2wM!{F3@$I-oL`GT66Jusc+=3 zTY6OFk`YUjkP&j)_4F(St1Zp#*-G_XUK^ewLfV5$LGKL=2tTq_HwK62dXs#1bNd&U z_WsNk@zrm4GVk7ee!bNruWxcYKK4D_+RE`!OZ&uSxEfNi-a@LTZ5zj5&8-u2$N>&; zAr&px2q{0;AwRLXjo!`hD_+;0Uboh}*(-AO=?25c`ycVak7DMp+rYoFw2ldfKas*+ zo0dL&auvrUKah#P!6ZM1dht61|MA(rHQ*kFD2`m>!3OWXA{UMj?$R>(770sz)XYkU z5R3-d6mAQ+PcO2eHZ~B3zfPvcds?Out|UIdQYag+Ksa(Q z2>*eIHGTks|8SeDjN{Qw{5TC`yX&L4F&f5TB28SQB_TLYx)ikvMg51zH>?@vT5o!> zw@Kv^Lf9ygI$2_3BeFN-%A{;Lqchw3TuR*;V=OjURm~Y?BV(W0*~Nz3@S=x(>FBq7 zTsCeHH7`XkSzgWllp7t{}aJ`$XhZz)(qvu8lLg(Myc2Dk=X@h)@Tv3p(aTzZ3Yyjs71N4O>(6v;f* z*3?2V)zj4SJch>d7LJt0LIlTL@arQe+AxL&t#ByL-h$tFz}`VZ*r1Q~&QjSr(E5m& z1#$r^wQVkB-Zq2RRUKF;Tg&XPV73+_2>i6Y zshwG_wW-}uuAAD54Jjjsphk1c5n}SlXPJlXh$8j2xn!fLd_J?a7WkyGwE|hqkh5d= z9NNV;ZoZc5q0Y{-BFVBM8wkgYKXqu0+_)=YMTqq!$U56>=yj95(2DH$M;WgxeS`=$ z8XH$;TK&APIHPU6u3+cxcwI3n4FUx@`Xqvaymy#!#8}reSyMYG8suP&+aY>g#c}aO zeiA}6(0qvId|ZYP3E6DZ_8C*yP^6m-(~;g%6`Kr`_le)^ zu=9!B>@bbNZA;*8;7Sugp{UYmP^hpJdvpDU7;C$~1I>8^yj)(Yedm#ax&JozIboqh z{(w#|^mQccID8W^I@a%nX4xQg6bmBh16sY%vK!XW1^*4pdY2o7w<)ChcdmMsn@B~- zJMd~-2v0@~vKo~_Hrtst>||Z(q2-xU$Q`*Rb6Hm+vT^OR4}oPmF0p8CR!iud8mq0W z3zHckOb)pjAxsXF+L+f_Fw8-=m=MB-4esX9Cg~tMu_HK19ZKJK5qLX~KVy(nI#112 zyL!5LHCZ~(ER?Nr+(t@DM!Nh$R@>V}+uKbWg3e$^30Yo2T66u1eD)OJ73+T5aUrP9 z(JN%ms1`kly5P+KXStvH_OD{3^PuPqaE$w@G$8|)%!AHnfJ5C+nfh0YG6s#L^Qzsn zotH9Zx}_Tv-Tl_#E~k9`t9ep+(1i@}XZKU}{#9PWFDzz&n>8)%0# zNCLAj4G$UQm&(&~(=Iuk&H#^I5anG&xSv9$@&L`!cvPUvDM!Z4wTz|^_fx`kvQl~2 zx&NLy=4f99TvX5RM`jEPyJ=s{Uy$croMZL@Qg|Bei;L*NBUkNNq%?>Fv)`C8c;u!% z+anFaVwd;j2{{+-**0kqDllTun{XE4ei$(OCK-P-2Z8B>7bF+o8UNRiE296;D`tpG z{Eu-(lP~{s#f%~`79~+v`-N|SADLuNY7FBjuDZ@oN`AG97y2;O<1Lh-RIoh4$o2v3 z!*6usHxMSL?R7|--S(6vZs}{q4WmRaX$rM>!&4JB6jBno)!zk(R(PrXD8NB&Z^o%1 zADjF?nWhs_AN`c4o#^k!&xP|`;minW&HBCerbbfa{%aSE;97ShuNhmd1KR>iC} z2Yhq|1urj`p9Luww^fwugY~*%>8G&sY3HBC$+N9$rzgGH)*ELDD@9O1KImO6cVVaA z>8HHqpMpZGHFBzj-;TX{-%0Y=VFy0mwicyxd>7(B(qEVVd7UAQ@yoxht$=X|LZb-gPlAujqq$8a}5J;fU` zanlX(g4N&i+M9gllD(TQi(_oJImd?Ti(GoiGTK7U=!jJo_+rQAmTQMVe=jB znat;(EtLzes}_E7g0C>(Jgp#EQn+C_K%O0be7rg`3!X;mOq1dLqM)ZNxC0UJ0v!UfKcwmClac4v*G>Rik#2Nj`$2$=3&_Ih_J;>X6m2p%;hXn56 zkn0$9$1!p{Z^!n-K-_p|0ant?LRnGY3`+DKrBM3V(M2e!4RS ziD^u7&uCLaVd1B))Eq~nsM8&L)Ry==fazwXHV6FJhXIA#t2{)T$U#fGcIWLmhTz~f zEEXk9*;4*ILm|MmrCI0^B5c^Y-I)>gITX>j3FC<(Lv#+P&2*FCNpRlI)@rU zSY3PzOL%+ZVi$FRg`Ue%ZJ+k}f5ELUjzYGemd&G2N-kD%K6+d*f(5AkXnMi$CY&!v z+o!PE8?z9M+YWBNwZt6@z>-s84mq$F&|=(ex_}1wQ9tGcVo7wqBz$qSt`q1lI5Zl# zm5<&x9EmY~es%^?zSugL1!kZ3n4OP zYRp?5M{jBFR9BsXdPJS83~yj3M&v0pmECDsd(R<87~+S&K}Z zj*Wno36Bci>W47iY9wd}$AOcd#*GJaSc1_h0EGMvOyGlcd}Bk{%VfZ95bh5~JjR{w z$T{ZVh4o}4oSZ5BlGnp?yJ_z4lKWu!gUK4`Rcm==0E9dvvqSo110U|qbXHpUwwk?L<;XA*O zCS$7KG9qPtzR2lHXjl-3aOJ*Na9!6wIx#)!KCqam1>S(%=o3+${!)XhE#_!JE7;1% zwq)yJ9TaSrm^mfXK>@#S7s`}yZldzgw2?V*@Pl29d(>hb;x=Xe-U;pDeb5Aldxi); zsg?#f)v|mb3Q-BLm_a9}^rRUFl-(3T)VzJ(Tl2n9A8g(M&=l!{WOMM9u&tGkZ6wn- zz3(IQS%e`p`=*?)oJW<>d#!Z@7ZjOb4C--F7n}&+fad)Z1>EN9)K)ZfLK?CpU10Uh z>__*Dmdvp5%7*hbaRi!Y3t8bmDc-beLP&p?_$q(F^q z!1;EDRYYK)dw*S%1SH}3Vfndr=Wkf@_|Ai+F_AO6g_I4~Czbj>hK0PcNoBG#d79{j4mg9DYo zV!mLG!kKP~-M77pxD)CMJW0P7y7;|w|0HRrtv9m8j5A4DV7%Cg*zT6beZnqz6bVAw zBh=g30Prk=O)KhyuxduQRH@1I)lkGv{r(o)mjITz_qKA^!Yn6Ea~DCXeEy7WGa;LK zbeL{aqVauS*pI+AyYhe~ncf6$|H+Xd{u7xzhEf0Ure9B!D{vba9N`6nw}GPrQ~VPH z4IHnQh4&ICGMrBt*DBSVEU;LNMHP-ZgRFWg&sm;(bYcp-b4BQIK|wNRxQ9Iy0&>q- zL<+c$}G+LW^pj&!SG` zqRyps)ex>t#GZew%JG;0XCTmWy@+Y4Ay@cMlJnvQz@T#{yAv|-Eg9%~Zqo7@RSl(B zs4N?Yq#_kLLS4UKkPmSdXglNakYIj%)oejyf_D@8NU$lglrJtK7fl zR9iJTJNl5WEmv&JBsuXjH*W4i>ldU9>oSvLcA?6=9pnQ4L;$8Ep$ z(9Xp0MD=(Anta7NssocmP!I4BcKL!I7b5SS6I~tHd*0~WI?1lYjqH~uOsR%vh%MbH zlCGKeUy=i!N3S2=G}b9C?7P=L0_s=K&nPM^``Fhnk)Fy@ZPb7JuJFDNc2H9F{i*Y? z@zs(7OdjH3q^TqoS(#G;DnV@}fTC+5YYDD0uF(6!mE2}hQ<0ncD|0gei<@kKlnZ;b z#(Bk*7&EFfy=K_EhdD+1QAYeQG!hB;<55$0X)c2wz)cz=F4S)={# zMpcreh*j@|&x*g*;HyKJ_(tAIjNH>)(Cl&Ht2BuI`tKe|;$Pzzv(dN(MJHIF+aKU# zz9awdon2=py`VXDUlmU|UeesDa#7-H?aaNGPHg2&Ekj1frQpx_ezqL#=tbbX zb4w9%wS8oiCYxoD|4b!owoX&DYk}0jz9{0yR<~#mtpugh8@}2(+Joqq%ua74ktv1_ zruUA>K)5XT6-5w^J~iokr1-)|nZO2`Ybh_-cnVJ*Lrjx$tHl@8`dGJeT`kelKB0yN zbq1XD4iVhj4o-8|wuyc2VIY_iV#*KKnuBjqT07S;^IxIdH7DAon%t#QTNiDPK#M-8 zh{=wQX1Cpc1Pk*$>wWFSOm_icUpDX}4b2YoMLcHMQdx32O1h*JGedi3RR6p!;-I&( zw{PAwmBTN^4sO&c2XoQEI@Nygw+Bc-mTJsgblOH~rv`if7FWuxRWMUWuR+3h=cu^F zcgB^h2Pec6jEPIGUnmbV+;fb7spN96T1Jm$_XF~IjG4UNS#gp@u|9HZ?j+(QV-5A~ zB*Fp2p2w3ku@D|Ot@K>OY4eJo^jw&cP$$tOq|fRe;p}bt#wXM@4(Te?jMC=1vy3@i zL@cZ`rsHBe&?WihA&o_MdCXm?QIya~ILX>sh!4IKb00c+Yqz!&6MA8acj#q1F;-L< zl}Hk#d7QyJTC)_eHCU5Xo79O}9wt*A?ZJR+mVyI{@ndrIm)AHAP%gUnR2eL~$D+gu z7E8l4l#Y`bK{3kR^0iq@uMM2Yd@WGYos-D0e@T8xR6 zrEZg3jKM>ha=O@N1x6o_(w(3iWLj4IPOKot+org9cMgB_;43#t@x`oTH;zg_GhXaH zqzoEg1n~~)T9%{1=P85Y_r-Qw zjXNL$(frYWtU2=Od}i^gjh6iAqSeGHs7AwDyC1&@ei3uK5Q*Con}Rsc+;@5>1h23S zyydPrCo2diQxgdg6h^+>=!BAV-_se}6!-ZY-KEha4DOD9J`>V=Pd-{|%PY=7$@-Bq8_im!gp*m=S&5y{WiH!{&{%LS#UFziIMbtBOZ@xsNB?6{UmU8m>sU z!9lHdxtkekyLNe9Sd%FsNEZ94$k&fFdKlr9+;@^dxgfd&tU9t8SYq zFW2gbIg2B14H_QV;C?Z0Hhq+N53JPWPx@{=O1s`s64JOV=SBz_;Z{&O;GkR{B2`)Z3mi<2eCEbE-s}@4_FAqi>8NIRX`>I{`Jn6ed{aPh5!5b0;oAa6JHvJ92OS z8J1y#92G`qWq@SqPh1bM)yY{G(3Nkc9t5rK?AZ7Pr5Z`BT&v

    0|Pn+7JT7=co_GwQYY!Foz$S@~Hl=IxpO zr>2`IiR~!8`+D4^4T#yB^W&uAr>FC?O;^mEd(jDgr9hNnO4f)zj(pl(;ytv@XC-}N zOD*LaWv`{)udasDnu?%v$H+F>mQ##eOcH~Drs=Syx+aJJRUO)X662fZI$g#$=O|ok z?g_UsBaZw& zF*e5=0=)s=JvKPN&G8EV!>!+GM9XS8b>!Y>lBZTnk7OTmgD98 z4Aa<0_4$bd$E|4QghSvNEj%GErN8|g|J(X}CvV)McViQ|gm;IT!(xAGr+D}V99F7XZggHKJEfKN^BFFuHA^rbn2Af~VqNkYL4XcU2L1nmD= zm@!UixgM}Tb|@P~rf}*7XuEAEJkS5(~x{j}NFgV0SX1uSI z`grB4LS3CLfUp(u-X6FUl{iYu!4|NezLd6{795|Y$D5L6R(pdNPrxO$`WF`~gVgF@ zT;B<}T>g-YlM(Eueu+!{A6)VO;)=h-Rr4>d43Fe2Lk}2NW^t+4Rd5|rqFILwARnSd zYGIvyFv;V3Ket3a_zpRS2<-R0GVe|yDFBp2e!Ti$<~sXpuBLy@l|e8U;IFyBm*zVA z*Ia=AGM5hT_TXQ04HC=+{l{FZb9p^7abXu!U_aYTb3gEs=-Galk;GiyWkr7CW;~b2 z5jWuR0h;v&(yYTf#L8Mm3TSjOCIPVRJb%|f4E7V>We!xj3igX`nwk4#w|9V$E880c zc{=I}Q~p_H2CB{F`8$xDd2A1gjalDRr8k5-((+oKPH^hSy0FjXsTukkw%BhE+NFMg zQkxMIQrS~ziw=MsLc3J(FWtzSsJ90#7$%Mgr$?$c>&*U`jIeyMJvfUL%G_AiCp+^X z2AG(Xa}WcjQ)G`Jo`4Ip2l{YV~8Alm8wCo=7wgG<*fes{Z9 zUWPhL+Gm-`;S~<7b0+9Gr|xb_U&f~>k<7=jS5L0M!^AWCkjW_+*OD9NoueJcB;p zjx9P7;kV5rR3cWNEQGHJQEn*W*^TM(>{hM@_JbwL3Sx(15s~vDA6Kp%YmOfXSN1Xd zNDno;s@KKHVa)B4s2ErRmRP1PrVT1sWL)1h&Y7vnt<9Z#xHL?zI*NW+v~siN`Cqm) z@YFp2%a(^W1hynzH|8d=<;_C^Tiz)C^#TR23105aPlA_=EwCOjq5RXu43zho$xy3y z{)p)t4%@n+H6j zJbh!f+WsO~StcMb)ZP?jHGyXKFy3M{aq*x`B+vquPN2mA_fRT<7HZW5TBtGnrA3UB z_%5+pwWS$NjMGaQ1FIr3RuhO*2#hkui8Otv3D7#Q`QzF7mBmWO#+z1-?FT8PeYYHR zq#(LJ^^N!Ulur#>!KIb*nZs4Dih&Whi`Nf2hVFH@)CfCq5%N zvjYm=pgj@fSN&T^Lhc=s(U5zUE_1Xf5!3L+ffM^LMiHcvKcw**j(eB4#n7T9iXf9D zpZfmqZKW&E@kk@;vTPol>w067d^ryNy3=<(xSNi3Pb>3R?E`B5z9Q2u>_#?-wGjV=SDGc*0n3+4o1T5 z`b<`ZoKjgX>^?e9Bt8l6bpB;w6M=;o(n}Vi1PLt6n%wo@o?2*+e2Jga#w%@TBu9Zl zTn2ZJGODJTlX4HuR2CfadZ;qABBz7O$@^_P|F)c4#<^T1*sM&l%6%mXBArhv-PbdC zKwLV#k>EfbCI}8xdW#{W4=tKT?IKbBS9JF0+BMJubt0Co_2;VD=3rj8j2j0CY3Tra zlb^Hk5%n0g8Sz(L$~e%(&H7*+qWTwbGN>Y4ZJVz-PwGBkn{Ofp-yuD26==mir&|HZ z`GMDqm6}|2BZ0PBde7;8(7Cnie^5@SwfL?FP$2b_F}iZmz%(F*f{JOTxrdg*HSZqM z018~GZ(*V_egXuPF?e-eaD_>W?D)39LB8rV5wumzG@>%EeU}*8%31!${ioidZb0pl zaU6Igg}0-;M9vS)DTnJ`2K+0f)a7s#WqifOLtLTAsP{2*KCQlU<9bwcFTXWr{9AmN zMv01fE{m^mAEEfxr1fB1hNI|&RS!aB4`@n-O$hJiv}(DCm*!~)m1hb`x`+#UkrngQ zq}}_6jC%3S!yZwd?~84nYcJi2{UsSk7wu=J%ZT*;dOlb9oIQIofsO^KZy@$VY%b#R z=tO=0=K{inJyCx7Jij-^xdz_+&xC=!kOc$1)$QTW+ysH6%puYKb55sOXvBr}jC`B- z{wl*Uo$CTRAMBEMes6?#o3|O-8Tx;pap2`M*7*SV&okz|enx)zjCEYlm%;!LtH;Y| z5)asM=^;HM|KFZ5ox#C_%B{Q3%E|pK2S%GYyK=vO)KqcOaG_&FgcZBxs~3~KVcEq4qovq1|k9l@GPC`uR8)znJWkK7TTUpVz(7G(VpY^heT}wYciuLNVa))Gy$^=`?X*DNbCWqgc z`XC_RLHWmqr$B%I0>>Oe(c9xKA!)q+i*nO{|Gsjhy5Vy6C}T*>0s6nx?QU=nr4aV7 zy4@A}t8Rs`f7NYr@`9T$AnLNf2{{uA+@+i_o}sCBXkMx$$o$=SQ?Lu?L^_A=G^3}T(lrOJ z*_QH;an|kAjdhC5Gskh;92YxRXKjTJ(J#w|!dBOOKb>Gl3NB|3M;W3UO#g z{|5;AFA&Hj5ad5V*e`*w{{uvh0K`TiUazm0B z;%LrDgA>}QpW_dr+fE$w?$Gz&sQ-lx77ijLbvl2y>=J%l(d|=1MXKsbnS$Yw%L=4& zV>GDg`PipJLXSVJHTA~Fd@{6jO!TpJ^8L%`n<*4)!h`{fzD+*i~gFhWFC010}&8<*NPw z)_8T6nQidu+fgV1}cHQPeUG&2?=j5MI@r4(z z(vfc$6Cc=Fbo?ObD@)TA&kwL0m!4fs+Hj*LLe?-1%)J}0yY*!8bL2oWV;M1TT_RtJNXlu zMFtSXFH{GKs0lBc|9t7)JiZ^LXX&I++Hi`k=D@;l&t~;xG55%-o9P8>RpeF=+6`^K zs17mdorO8&&2nZ54#faKctBv&5q+)I9Y=>Dn-|GXO-MbNhHP3Np(=EP2yI0rlhB1> zn=Pz+1%XeW>ohMNcwb#Fv#s*ao{U{>VzHSsKZyLonX{F#k}0R^0an_+X6%z0K#HAe z+-S7s=!XRs;k_uQJws6YIXEK@EOBz5FZ;w`?DjNj9ATsRb;hV^~3C#Y8;-!UqsRJSCp7?;lmQ=ty<00oy7Hb=RfGY?j6ZPof}s> z4iF;XnNuKwYt4TSA##5G*hF$2^L-S4aH0Xo?Hdp8E5d$tKY?WJr@TkY)hsE1)}@y| zMW1Yc&<}8hvLKmV=LkWaKlZ!Eag_J=;w(S0`X0 z<^KArgD++5syPFNc$C23BxZ!N3X~!-<2C(`tF_Vw~PF+{aY^3}HFZlx5z8nlAeaH-_-j};<4G-)U&T{%?O@1aL z_+RBrk)#zS3vZNkD|^_US4RjrCiXFVf=u?VW-)#I_Zdl^R@mS#2Kh6Kvt^d-Fn~Gh z{x;e9-;P`Pvx#EoyO+%0^QO|4rT8Q}iOD%S zZ|X}FU5)E3ccJvz*{=VP7|cR+Ep^>pSzhd1?gdISsxiV6k!Gb#V3*iSl(IbCf##4{ z+kdf3KK>gZeyTPr-|laRa-p4DwZjWk1)-WU?3yl~uFj3;UJ|AFGT`wwD;4A%YNvh6 zkBzMiQEo|rtYY)MD`%D~mq`R@BdDc=f%e@v|1Ob3#`D9BP2)*n<10GlZX(5HRT2AR z%+Sj!wbU~F8m$}OZwAwBlMiayv*=swDv|yu3prR7%#;MRP_}M3V&@vf`I_2^_wyYs z?fvbuQbWr<`_dOJUv6fohlUZVbXE5L$d@tjK2R2umlx+OuK%}!o0c2wxXY$9?r}E!;rlJ5UT0SaH`Q$JjWB-Pf z>$0zKp9jzG+qYgGiAsB9-)fO!H}RvHFg}sZqq$?>D%nG5eXE#A5nA7MwkF5(NmOgC zmlB`fcZV>(=27uzEzx!!g2y>=j zD@k^?pt~^z7_!X zVet~h;{z3vhAx5+(M`aUQfDPh@lTAk0Y+FQ&*pqLexLON5U?^3S-u~LI>-bL@>Su( ze%EV9wR|e>5ud#8FK%~Sw4N)5y*9H&Ht%WP$nRK6WA^3mN@Kc>c=r8k$%UIiVawBwCnpyx{ZUC+VRuAYe2o`dq1$cQ}@tR zDu*{6E7$1Jh{pSO?QbE-YBw%l_IbF?^FPk!%#Wy2yr^@tC0=_sa^P|`mLrj<#u{XLjRGAyqB1=I zQnqa5P`x&#sqXW^hji!0LaMIMqnD>UM4;QUsPZd*WMVGecq%8by-l?)vRR>8wh~VxPyZvOnS~65z-8@ z^p%FoQZQk@|Ecu=`^uAOor0ji4cQH`a?bFK=Fu4ctDv9*Zhj1K0y z5$QFtCk|Frm@a=Fod(YlJ5?O?V%`XeoMhK`HXbz|%(IKqK07ZJMOcmS3j%CdbjLnA zH}s)y)iz#ivF+t<#0yx>8Qf3ZpO%p1E631!Kdz+_J?gZjYr?k6GtsFxavWepaD(LO zDrb+gbPy@IkmI5iXbON~rvrVotFU$7i4n8y-Ym(N^6(%lP=Ct|q@9edMs1F=K>cm% z360m@^;Fzzi3{6=Pd;AkW-Y>0B~j8h;5%KaO`L59lcvYz>KE*x4zg*M&b4}8F`m4e zsi3CHSsd$A!KUjzm?>+ksAW5euOc%q0kYXf+@&^WiwV<=CQ6+Xnn(Ye&9L4CJ+B-|POo z??~TmgeEyq%v#~J?mSv8jRxCV66h1HDG**El-D=QiGBzbENN#F)u|G%Ht7}1?DNwk z-;G~yd(bDFYGV>QSWz;t#$r38kSCxU!`4uZ!g9rh-?rJG3;?rzPj$nZauivwT=6SSNHgr~h9NOK-%pW0xceFai=Lg z?`1joGH49AWgPJew08&ny|O7i?oeLKQsY_S{k3FMCwA_rJPA{PFKcBkmc6l;ogtCk zeVCTyF)Q!zO4t`zC{-(|*yLTy%Cpi5gu75Oi5TW(iqpuuqlu%$rS5`*9ue0V4txyoD7yUG@=6m{|rEY@F>!6qb;kMaO_Y)ey(u%u*k@_wXEPAcN?ZK`hPtpNy zA9gI^Vvh4;?JdSe7?rDq84Jq*)01b)J4IyPkWgRreG zTS{XIKA{KuF-lIIWBO`MZfv$|*Zn6q_HQhWN;lTbNQG`MO@I#f@cHL~2i|O2D9U8% z-CNFyCqOJsoO{!%RsLua>fVt8B+Y0`)`fk_4cc^&uoJPWb8L8KS&xdgIxt(n@}p?I zqh-4w2FtdCEUO%g1R3e>NBW7663veNM@iDpk{h#*USL4QM@{VILJ;`8BKUhJDg~v4 zD3qiGJNd+%rS%;`_Zo|eA_POL6q08}!*=#0BV72rIqzM{!TkulD_T7e`8zAIhjbyDDckE~CJsVbYe5RE! zsJlK6h+0iu=XifP9gGQxG1bT~aTXUwXX zpZ97R_bfK^q`nfEhWGunbjKS`=_ma5nSiR3h^bR7VJ)v(l|}kkBLSi6m1s}trLH%% zhXaMZjnl;eiNXxcY)8U@>9WX*I1(jr#Nkr1{RsIol*3KQ3G@;ZG4(>mUoL~ia4$L5 zP3edK-8eV1Xo83+mam)RD!PmL;ot{m?3-{VRjQ}e2MH9!F5S`u zrlD(hGWgx{+>iE1bSMyXfA&73;oEcvJ$Jywgmk|iEE&T47;`-|pd};$*UzoHae=|Z z4eE8O1#SlVyO2+{I;?GO!RT}{T;n?0e?Tk?_wgHoAToPylVbv&CY7; z6&VlyOu}I?cNSWun(=t1UukHKUM|b2N>cF1g;UZD+59Vmm4%K@a=Z+Ey;W{d`&w?T zi?Ga5yTtz??ajlX?EA3sqLOSy*_TS?mMvu8Dn$}PA$!)cZ(|#4$-X3^EJH~YMzU{% zFvy-|>|=?+V2o`rhTnCKdhYxFJv^7E?yQUUExna|9RLCY zR=Q4G=B9POqsn%W>Ju(OL>Fr7G@L0i^UJ?wg0=LGzb+k7(Nv56g1uSj^QqUCh{>1f z@wSugklP|i72@mdC{tS7`?039M1%R}^BWeKEWDioLuF{7!_N>U{}Dp>3r91|M4StU z(S8?Ka{FcU3t>F1r#g={C@wZ8%%qlw^Q3eLRl41dcUPZ;2-Z1&E970<`_f&Wo?qOD z_v7h>cnXOm-VAH-p_8LZLwy6P3PgQO;9C*H3K8`$Ea!HaSB*(qE)qVQKQlHzV(5i~ ziraQFk1x@sMCXO#bvA86kPjo~UWvhUG8o_k5vTe)*_VNHop#{Grc)Ne6GA+bUO{I# zL~j)poF=M=G67i;qX2j4z9Ht(TliosTQ=Ojlr>2DsOzmMNu}8LO(&Ecx$sA)U;Lb* z+|kU5aL4!tT0Ge`lrw!(1s|9`VsWhLDNHB zIbQ-1iyx2bCZMhMMF!cmY6VD8+O}*Vo7(d2SskmS5n)8rdzjR!nmtsCq&Hl(g0Elq z{W3oal(+_v-cl*vdR;(aU2RMOa}vtgHF|F5a+>N-+4z3y#GHWAx0g1#ubtse53ThM zFffRljal9M8srMR)RUVCGdoX8Mpy!dF=3+Z-i?)R>D^0-?*29*n6P1_5!QBmgwN4p zP@x#;V$apykIPXF>zR25X2k8~A6mqXo!Q$R`-f(lt;fIeZg~H|Y4ZxgRi37+KB;<~ zMao-Ojl&$R&Fv}AZ0U1m&`)6TmFM?~v!#~oO_?y9DFZ4w7bR&$DWuuH(riLq#5SPE z__7KVB&69Ut_s;wzCLxGaj;JpdRGD0FFDEbpGgl;X!be&Z`^rXASXH|(sdb?;C{$4)s zr6kl$>I2*RZ@tzA*#z2^OFt2Tq*D`2I&0#32(D>b?N#sf9w#|w>ao!!Xy+Mc@Y*Hf zF~Nq`7E2mu#RoZg?JTqOA`CCvCFVZ*pvU%iN|JcCP;cit+!oGfm*}$@+$&+92$V-3 ztHoYeKMa2YR*$CJq?_v)C#wkbGuPMh(*oQG}Hq42MfpR0RCYtbSUS3 zLzcHd`~u<-ObKRi?G2NK3Hr?!fA& zwAc?WZU5&@DDVzfpk33|S{=S=C1$SM%j~7t*ay`r%d&f9!`>&?a;NYxwN$VsrTPUQ_BA z{Rh=>71J5T`;|N!k3}FSHnCz56ng@gsNwr9S6AR4Lwp_O2^eTnp zL5AlVWjUGT0?k!n)yERTeIereXE*IE=i{yN-m1!wr2{zsG?mI`+IW>E4yOF z4%bOIfxL%=EsNF9iC-MBzK$k38uMM}Hj1!j!Ox+fOJ^{F95d`|?9c`xfm6bG>3bm$ zXI$t~f&Cb<|Et%GoEtYEZUH&=lZ*pw2XKJP3*lFUb4y&=m~sh&0@8}R2|QC7L%S)@ zqGH z*=-cq`POPN{=GC zUrR`It*fy4jSUxDPJQW+W89R2xNC%nKpVJm(#R;D-4Qih;$p_|w7JHUPJZtmBU+5Y z0Fa`YAW)e;u|}vQGxA*ZmqhS;G&34@j$>FnMFSbS3IpOM_sV9p zpe_LoJC|JoG~}o-UZP$u0n}+`qXx$Ba%924=2WkJDmk#J#HI+WQ=+}LYA<()8)_i4 zlv6D(MYK@Rq!}|ZNuA3Obv?x+uBa&*Qjf&@i6O7!H_JZ+TI?%M44O0{XE+1sC#&3W zwZEdD1IgRmunKiH!C_24+kxcN^^-z7+($tBy3Hn2l} z8oYL!_?;oO`!C3jM@wztj=qp2oi}rlgeT7&uTRxI)0|e3r~B#P=4%$+ChoHpzHiM7JVEH|FHJ8D4ZeZ zGWu7e_}rj(hi9Eov&9$Em<{ojWU(qk{jzU+u+i4%krAQ=icbTfQl0d<+rDT+BN}qv z1~UAfurEtAw2m{=x60{a;{5DU<|@ri*r9vpTo}arl3VeXkR_IrExWMb$0n|cwWFdi z#g6@9<{l&JgYUZ+Ko5=jQ|-sew{fh3_Vj6UeoY#csy;EtHrx9=vOmhMro=@oFvr$KIoibg3WH zK9tCxI)=#esLTEJ;lu9G>t*&KeeNw+!&OCQtS~%-mcZC~;qqLJZ|j0VoQ74jonuCh zf1PFA+z6#6^v*1?Xkt5U*;^j{YmNC*w;leOe^R%@zC6gQhhbjzQ>BF&GHfpL}g zgc}5gl8z9Hcw}g>c102Fevv-Q%&YXfM@g;M^_TKAR||*qpO`(WXCDC8(l^=^i$16+ zlt6GikD7_wl#rpr(hzvb^@x3TgScI$MJ+?8Zx8GAD!TiT*k?rdYlPh~%`{@>POWZ6 zu}FV_Z3D$&&Y!iDo{@orE`wd85E0Z$aRyFx^B}Jd`_$Jfr6WGhJI`&x3Fq_lFz4q+ z#uJwPa4h9xUXzEdBmNntzKqqi;9d9q<6q_Pvd z4-PHcw&vt?#lF&YC2SAGjN!)?yk8=9SqTF*GGa2Kb@W$#Z%sc#LN_@FJjDx_z2xMH z++!7*P%e=^fSWh-IYRjahvQxEWb%FIVnv(UGIBtEX&$-)|;j3f*lzb(3N%RY? zgN~;MP>df|x~Y+2*08XY9qry16-Y^+!wG|7=~)|W^Ic*uxa#emK-bDQz14E%St3cH zhEmb0ep!FvysN{0z#p2>_G=3-Yc;1hH#4{@4+?B``L1Cjwa_1zEEYyOztO91+BY-n zZQh$Kj;x&_7XylzGiG9*-EWtewXIQKZSql9x;hPKoMT%ydCn~#yCZy4A}$~Q?Um7e zQvqp5z@q3*?^U`AA0N~Iw9Cy@O6SvLNTvBJQ0is9c;!KcbRw6A&*e(Ak&zso7GaJ{ z?J)aSlrrX14(N-BYIPkCwMX#SFpYIpUuG|}`~GuewFMBxqIL90zo{*Zr;WwPn$t&H+dv6S2_CU##-Tg4{M*2txOEYk8Nfmcf!`eY3g7phO)|M zncF5NN0(d#P>dHUT_zU+ya_t&CSysT$=ena}k?yhc2d4S`RNXjCO z7fADAhJ15%XbbZu6?t_oZ@wG;HOm_2^{W8$&QgQ)@Q~?H@!RfDXW1>2{~Q z+4fu=)i~?HLF$~s3Dl-Vnp;JI1+zf6)fo z=f*7M<{m~%+ula_58vl^KJ{VU+`%|z%DA%Y_&{3Lx;eRxr#{_~-ytDOg={K>+Kij; zni9n}p=N>aqt9vAsge{Qs(hkXtBV~osxZwAKt}_Mz`iI(&-S?Mj>!qcl#ciFUH{a7 zP5vUm8h4;wSEyp@rL8}^IQFv8D6ien^-6Y)_GlrzOlb}pFy~{B$+C${@mI|q&a&az zC!?JDmq2W;N+-7jk(}{q7o+^3dcY0s?=ngdB}i|IF4}G74u}0{?Z2>qig%_#(ey8+ zf>j}9A>;+#_R8GmdMV>mS`Uhyb>XW_;5EEi%_e`d6R|{6vfCPHRUce}zGFz});i}I zo8m7cdd6<+_|z%zkAgR&V7K*mOlhNqx7*U1@tyPiU{koWm0#7cLE5yo+fsxk|3BYG zyJ0a)VCu?o2|rxbhtRs4XxUqIfzE-lT)`z8fs&&JB$WG!>4esU77^${oNR!^+M?NhK_CepIL^Scwk-mko<5-3W39vB zDmo$sKF_9RmW^7C#WS`jTgKjYzq_D&MTTDj@dd(BllZ|~z>S2nT^x9HO{*dDw7gm< z6sVlY!}P4(%be?iNa`jqX_j}EGwstszl8m~yWWRv)!}z@W@n8>!&OC!aSLTGSCpqO z4KZ$=k-+f^PpZDSmM4Mmy0Y{|TM6l^bQj0Z-?Q~)ljeeG7f@R-MeQ!bXgnkm;PkFd zjqY8Jic+89D{obQ8mMfYbaBbe-UL!#21udoquo13zqtw)lYDJR2D3Ki6ox zzfafAsdOoZg(Hvpx+AXjvE%3gSEQ5HMY8UBx?LK zYXpWWKUM->?S}IXsL!YL4hV8{>>H%L-?UEIWNV0Y%n1Zay*o$8KtO368!tD7c-o9Y zlec%k4IPD^=@sU{DfTUG)MA3x z|9w3Zh7f|Gy3Vh^O$}TTOS|K=u%0yD`gKald;wm0CG$Il@GByibxNmc;);nbd&UKq z7WZS3aY{PVK2Mk8pVD`39enIr4wZQ!vG!<{GdSdJj`^LFuuF}#A?x+-#}>;1zSi)lZhV=5O=2Q!aPgxIp>+HWa)Ck2ao$+u7X`!A1tDqwpXZp#+l zT@pR2dC>9KcrmRah&S7PD>{AQTBFQ_ay~!I`qe{*67QK)-D30O-x`W(mw<`|Cn3s~ zEu?TZarc$<8JKlXIB1pDY(T5zDC!)_{b({`9SYoO%D=Y$)2=g6ZNK7*&1m1oI0Z&?K5N)MgE-F1=MQCWg~&_nz;ti=l#1 zSKIZ+xsJuLVeXaI+L3PEjV{KgsV|oXRAVSiIzQ$qbK+Oi+*7-o-H)H_KKIv6U^|b( z1bX_62^L8hYSz+1o0%r0-BFEE8MjBHTmGt!bo04! zZKAzTcDTe6PTNOfs4opr3QbgeUq4o1B1!PnSCh*`SeNbMl z&z3 zc-vQYiG~~I?zCR%U3L`U7hRqg{CZCGssmLSQ?KXhUfj0iX*rt^1tW_OQ{rwvb_wvb zHEknhS}LW7&$;FHO}_}E-V$hDQ^F2JNly8rHTyi>2j}GvlmVu~_jRS{%9$M=9M&Es z>DXC+8~Cx`C+jiKU0am}*g-D`fQ{Y|wQN#04|T5zGtiYk;Qh?~6puUyJ8<=CzcRND zgtU8Ll|s^JlqaPK16C>4533Y}0}?crUBz<>#Sp7uLX52ywdb$QV|Q~Nla|UfO|@5& z{`G;iQ#Btld3zrdMeF^^e0yF!ASA;Ai_LyAKS4Urza|#wb&LBkP@!-HDilT6W?@PE z_|WjjK!u|AcZEUf<_d05o%9l(J7jr@@Mq^%3AP7#0`l>zDM~96((Fjok>r9Vi6WD zy6W&Xyy}E7$`iCe@$D~d=_s^n(74IuDVegEMG8L}@LIie0x;_@>fIfrK(pQ=8Di^l z!6&Bl{#F2U0g@7jR(QcA;)ShhnZRNUy;Rh8uia~Hlwb?Y-mpz_$Jdw+5eJ8wn+8l5 zA|{pEi9(O)2P{G?j4o^?)ABKP@m|)GKh5$nhDNNVyP&y3Pf)EAetCu0w58R^7jbZ9 zS&IEixTtDi{j=%xv&9oeejfZ{>W(aC(+|4cXP0R5NOqRaiOaE7O<$b)dvH1*ocPwV zcyUv{h6#i)$uVbZMrw z_!h9|yM2@T`-;T$<=4%(8i67VI|~UYIlJ_NC1<}%VV7QpHh{8lryHOw5YjU3xkqma z{UFMD&kXGA4q)9Ph>h5=+OU;ZK0W2Q@0PS7sB8WY{@SHkW zZ-z#rjylPKVEwVJr=qMC%W@F8c%I|szd2;f^^SZlqXQC@<^Dh&ZIsN6EB9}*^(>Dj z*K)0$h#*TFHd$tmP{?z-_H*rC@?@Ek-i9tRGUJ#N^f}3vT0+cm=@eMQD+4KjFEx84 z;vC;I&%TPE9ZRy)9`q@hR1M;D#UC5Y)B|uq$G_7Cb#6TJErWd0`-i3;2_Yn|9a{+;0@T8A=9_1T|MlJ z;D-YxMxc&zlLspAN#bs>bVkO-*6B_!x^_d#n@|xOQ`g6-3b|@LS4RLY7UvOD;vpBS zv>W7Nt&Z?>7m~;}1sLhRLSDeNpKcn-Q)NU4Q)Co*pbF2ZA)^0dpo)hBUDW-*4^;S` zg-`G(cg22my<;K2r}_eo5a#(PxT=I#&&z8q^rpP_`8>MJ zVaB(vtm8@)@)1#dlL%#&Nh9zI;sc&Z7qnOF^D`B=Qde!pcC4`XigDXOTaDR4HX5to z4*y(Q1*P7pz5+D=0(#tpy>VX&8lrI>m@jFm4D#(<&?@QmyOC$Ysq3E=3L;CV)j)O^ z4_>zZSs2Lf>Vu0lC1o@rxQWI_{J(gIzr8Ink?bXvzpB(5jbFg z0cXd&z#dqGKY-pRaE%duqxXrLlZa7d)gP~7gh3F<3{b+KHMXsyC8Pu0;FZHQCLCWO zuW<#i15WyVI9y|m!!;iHv&P2qM+sb2fCU0CdH(wHARDh~1a7J0xB>g;i+;tqqwT0jxjQ1InfN2ErP)Is7ooN1aYe|?*@lsj~ zKc{CC#bjZNVc%`hf^({%`6Y&;j_%8X%ee;utdbdMmBzvW;?3vTz!dn4V)`ywY3z*c z0PaOGqQut5oK+et4uCWm(jbxTj{{l31x%31wTY4`#lET z%hCU%dy)RPdr2d^mo8t&F~D;g&g2scMRy*ECqP7s>0hZK3kJs2TW2NM8nZVdlH40C z!)l!)1M4kY_Jyb9U#|}x_j)NHf41o)wdJwZ(FW(ZT4W*Ro+rpb*+}q2?0;-?sD*>+nb?wlt)cw<~1XO?J2a}HHX!s5xf4AXoyOc>NdZqWm>L}TP z?g+1rk{zfsI6~UP5yt$E4RU|S2H)IIH#j>#{EtPNEaz+Pv~y>iEZ65P%(VSRIQ7Z; z^)q{kEk-vl4Wt9Vf9C9%-u6<@x%qovyUinouhB4{3$c{g4b3VN4gA>=!#Zd@r6ss~ z#nUwFp^tvlok+T{As;dMdw@FC+l^};6S9R!k6K@c>PSc4t{Z9ERYEKE&6$V}8*K7PvI7Bn7V4NNT^?ki(Ho&XROVyPZ;ts zljnQ?w@I+t5c1ai4!CaM-`dT2Q3(GXZx2XnZVGPl3XD{+P-75c8roxkm7r+d5s9Cg7MiBa2qOYnX6-Id~n>I<+b^ zS%G_XoY!T{9vohBM|CXZ_yUL78a8kOH6&r?tsOWh z9x$X+2xa|Dfd)hfe^tGp!Nb$B1M?iQ$PRB+^Opu6hg`zb`5Lo;dW;-Juw!zGV-s7r z_&v}c82qTVJ#BU#0lY!L661@4d#x=!K7TtBYs#dG@;HGz8C^G*-SiCjGi-|4AtR3V zn~wwnKvJpwQ1t5Fv7wjy3b2gRoypTX)a39^=ra6!@mW2O&@-^?AY1+#jLNM~-bvqy zer+^XvEJ&FY_ROp;eSx|uyfRYg3LP^h;AUn>*3W#&3598dG-{GI>@9=L}hH`%DALE~&x*M4~ zFn6h^Q9GulpPRne%<`+;aB(jbMhxWdI>)==)PMHS;u=lOkT;Lwzc2fc=SIQg}P;4m%e!&K{cd>cB}z)v>t&B+zk9LNa;I0jeKy0sT+$yt~?7 zi=G#iMixzPad41w=T-elXGpmr0T1yayV?r>VSMl;PH$zo&47iWlce0=2846idRH5@ zs=V#Ck)^XidP>bHc^DGUtAe!i?F@3FW72t;!wvkg)9Xwmv4X1164n5UR$d<+bz1Iw=%}~n$ zMj91|kp}cI(x^)Q6HRs<@s(m9_>;X-`%1l@wkegN-f()zTR1R5r`{c^M>xHilD6hl zz-)HQw6M)vI6Dw{Bu+{3R8g2vZ;`2#4IiGn;mdY*^aNBv2 zY-^3i)d9MV)VbQvg-Rc!5_?jw?%#3#LbZNh?i`pIZG6(HnRvKwdRQVnS^N3#o#3kr z1?D4_tVq`GpZJEV03c8XPxJ#~6^MgFPclHRaO;?K%EmG8om{;nr*yRT^WWk1r7Y*0 z&WnIAx#esZYv?5m9DDlx0?N(?y-Q+#k@(pkYE{$GtGx8avSFw7%1qCjfN?h`0TK=9 zz^@@d*6s1AQ{RggEkhOXh!oZ7mKK3WWdqZii{4kyLIEN%PK6SlSb=sF3Nr_(r1y@) z@z@&&)S#gt@qvaS68k-*{4X(!0xR>54`lVj0UMe+lHIFl8-u2RRj- zFuSE#*d{HUZ3b=?KJr!>IJe>aag$DU#=3^7;Fh3{gLG3@!jv|UDW^ZJFH;|poThDJ z%O0JkH+D!=ow#)30^;tLX32Bwvi|ap)-Tdo>}V&b zy4wi8wB^g6r{Ko-0S{4|8{8ESt1gH{$m-p-5a^Sb+tQvs7oErlLf_qD2p#9+aof!yUika*pXLNS& zv{x2ve7*^|?e|sB1KyPYuBRq{?#X|E}V8*hJtVg1C%gS)Y76xGQ?o5*HK^+Bx zIaM>&k|73vE^;v9_}STrgTtR|9(%*A1=JV-px-0n;@4>XxyY%GKiApv!WU%q5Pz=U zVO-jv^{%Yq*teTzVZWyU5lfx|2rvaMvxieaKSwSxEt>zC0-0m;*nds|_V*N^z$vI$ z+LY^hS*w7SY__hs;$C!5FlX5A3R}6JyU2xPlof6APd>vg$CnulCc*HK#Z$gAKf$~} z49E)-!Ms3sm8U&LABnePj5^CfU$k!J{lPhH?yTLP>5H8AtC~KA_&NuXz5OV zqh#lJPoDwqgWEvNm*Qv-`4jV@qF2WbW4=@{=Bqr6`O>AuGG=#mmWt=Ah=PwKZIM@4 ziVhk%tA4D>j0|~~-Rs!~UWTNBm*16JhjS^GqCST$&EiL3OVgFy(j30(MfUoC+Ck^# zjb@J>b~KHec{${bn#tlsOfAKazr1Bzkp;_`d}&b1ZA=^> zKYNg+-1^Q5A(XXHWGC0#cPG4)CZ?0+n~b<*WjHA-N5G{gluQ!0szDlk*G3Vix4)JMAhMJO@xJ)adQYCMT;K+dGU3Cic7hGtFAJwDh0LKcbdD z{W}g?_yNR0ZLm!H)=I}@paMGQ<}@d7xXN3fuw;C3!$aaflfks%ahaU0&M$mXF}0-2 z&*H~LPQY*Y0M1ZMg)HvzCyJbEXJ?9```5+~hVOc_JE@YG6ttjK&enBAvUf zwPI#Jek>GdxMB!GeC_0O@gT%kd!`q6MgsPS{#$-X|5bUxPG@&Lw>MMeAN1erXUkO% z>A&nTWapb@KlpTTl~*T5WxWxNgxs<$POR`e0}ZHc;TAn87lmIaEYgPuc564b3h(VU z6g_KItVa4jpd(5ncn@6H_MJ-F|CUiepV6qL`-!yn`&&k#@VAV@7$Boy-Ct`FDc|

    PjaApR(!bJFQtkR-HALW2vH0~tGx00EyX~R>Lqees zXrR4)SG@-`&^rD!(9+zRkbd4bjQ?(+as8u#mUGxZ!@YyTe>c#G-fZqs-sA>a?B5ME zZbP7frv9G>8v0KIZ31kd`5iXUDplt^mKDCWY6wqrxSObt@F|hpV-Q;Z|MnR^va<-b zC(D>?tL;JVp8Wy%YLUBVdKSbs0{?bl^BNi8D}D&@RXGIs3ievT+p_E@DM1~8%B?-% zm?HrB{icg*r8Q%;?G^3_-}WUAD!vMKpG`52NJs zo;AIjSF;{!uOk`Z&@7>}`f8>C|AyhLfn^NGy;4eL&q*TN%nKY9!fgIfx{1KMN^-EQ zthf#GT4;W-sT5jY1F<_v4;u~M2~-3W^9Tb91#5+XLP2XC*w(vn5V>cs+FHk)tJGTO z3+z^Oyn$()^DTPM!uzZjsEociyn1nmo>|5~!>P4_(d{eO1uB8nQ!)l|Wc6fadPy_- zEhpn{W36B25=t45q*zVFsoKZCMWnpgY-(<<5g@5xan}+L0=&E8_x5c+5}t!(^tgYK z(YJq-(bvgj^wFyQr=Dz3Gr?(8i^6vU1j+1$SV%43S1(k`fnu8`{hUl>JTAo{dv7>$ zPeuqW!)8?0Xj^2<=6)sptFvZQ+T%gafFDJc)2nK4O{3w-k=6w}wP>US<)Xxh;k8qF z<9Ek>yJRI{O7a|&`L_5$hvKh+LxC1VoW{6a6FozmePhvSjs=^v;sF!MStIpA$J!~fmBvv46}w9n4eO9HibGq2M4 zSBf~6Im>=7MWJRl1*RTMFo@Vm-DV~;9Yyr>knsq`4?Qws_YMMFEBD7a#YLt&(~7;fVdAnO<^ z#X)d_)9e_T62HMzLD`~3t z6ilJaw1F|hO17lI=_m86K10>`G%MB`cWztrB1wk%E32hP{OBT?+>|g^2t!7wGnKFW zDo>kpUh9g!0Kf)GG8QUL(F4fn)n4$LodOgqMR`cs*rxMgy;|;gDb3crMlIA#&imB* z{*Jd_Orfvb57=KQ{b+pD6i)4MPSnE3n|ZqKLE}VHsxX`Ly#}#H7KiB<448YcFO&Z5 z0qhC7juRqgmGt7)ZBGL}ZDU5ud|hi@X&VX$K`5{7wBx~<)oM*+^#vw&SMBi^;Z?mUpeeG&T(3i&v5pI$cp=n!A!u43Jn}G&&jtV+CJvs z%j;^qA3G*ZEA(*x$;B}L7P@I5UU_;VG)E^*k!X)BEJ13G@7lGdE znI;|m%~EjbX2GD(`vn&7WITZ;amu$*lhjMXB2plHF>XYnK0;;;;{1{g0AVb z?p=lsE0CajuWKpEUXC=L-lIN4?D%WB7`8HPh@KW-&o3-2RLRe=$tx2r+ZY&oR?A>x zZx)lrYs5wm*5JFFeXb;JYl=(UD4%p?>-f`cXw?i$jh{W@kxNj|Zo61GokR z&S+^G3<0zUyI;B;S=%HsCKt1$U~*^{C&*^;-84q2{jF^YcPWT|4HSmF6`7&H;>2dx z?fh`&2{=tj$ldLfrS2G3gnpO6&hXtAf+d&>{sNw9>PcURhiy6$fP7LC#jls#DF0pL zd_Q*^JJHR~IB=PmA`@)n8&B9>)f~ne!0cZT#u+EP1Xj3k)#;EUxavo6$B~rah-4r1 za-$e``x|!`f147ejOBJZ`0P1%O#1K-@1ph2D>k!TB+)7xcn5Fl+e)!c9DBF!ap%t0 zskyEhhK-7;xK5MDZJOk z_j1*qckWI7tU&<7{-bR}(}=)kwY{>eO6GP@$sJ0!pQvj3+5Moah>ke8n|Pl%WFPf; zGhUlLKu=Xy@JsXRxwV%meYFzlVl8?;Qr=tjKHc13=O2hxnHl)wTsWCO@T{4c30@(H z#8JRB&d_LCqMC%iWT{!1={TfbO)`%(n+YLIaW*M!yAwByXG&E?)cZ!0Ts|UU@t<5R z0Uh`WTTlmH^4OI7`yFb>rISUzZ$#Pq;!G{l!uh8JCV>kcaeVb0y;-oan&)^Ely)+2 zGB1cK3b&xpqLa}O`1t;fSPvuPM+VFMp7M`sW8R^Tgne4}S1H$x17x20y|2(uy^{t7 zykHTQ9bDZ_?+0Kl?TSn}p#j%`l=0}hL+u?3cn3pw6QE{8y&gT%_^a5RtYe0UYa&-L%5ru6ejSfIoHcS@bu&~c`o8sy4&(mh zz3a*h(=$%}-0S7^?fs1d=v(*4Mf49BvN+-x^1`XA(|!9pJ;Qc6-z(<8*%sZSDzg+- za{=9{DqsH!G#|Yz`FM)w7G8ySf{mV)6!?Wm9e`-@i1y(DK-u{k^IC4>`)he9Fqb!Qp@q z-71BLxgr2Y>`m20YlV^XISVGdV){vaExDGsfI{v)y1h=dT|@Qz51(gzc2&a8rY3!` zmmsb_SQ>TdnuYa#_5Kz(SbPWA!Alg(Ip2739`1z>o6glEaqeWK-l^*P0$%=I!yLk^9p`sxC>Ddk25 zw>?_x&b|&TQjjwxYJ8S?mp9L|?XC@H*dL3<*V~5Y@Yqg0Yubu!D=f z<$e$HzG;+Cf?y&c1%}&iAFM{k57tNCk5;e#m9-Nwl^d z44ml^aHc)MnO-5!w4rO~CzZgeworLRnGxcEKvH1hekIy7+DIDScNe+T8r< z;(bkrYmfrVfIl7V4eud z#Qx@;Y|%%p$Nj2k4LCMsyW)=rY;Scd!dtom%p~1$QMi&_hqQS>|Nl_Btafn}aZYeD z)IonKdh-`5rZlZx=!4VoRk&7nWvhQ>Q$g$}OlEtX#=d5QpHKj9NvsPN_n55z;KEPV zFq;muSy%TW;b;zMG^M4dM6Emq(ni~4<+wh;nM`a^Zn_0)I)2}NG|!BA1J8qzb63{2 z@%-NXft@@bu|zYSMPEwb42$eVn`MLZgp0f^ac_2P4Y5P6jykpB*XphiR9Kd4^R!LH z;$#Ot_E(L($~#?I$T)Fy$dE^w+9%}74E%}wi@>~Q(bsaV@)*vTN`R_mT_e$^HpQC! zB~@ai`ja>yP#{VCS|cu4&vTSR(&B}M?gh_eS{|S)$gh&G;8k^=tKbapz3>b`<*L9N zWXg}J*2D(0h|issP4RtUQGjpK#R8{iRr!cwYnzplFa8m}FG3luVo$Z#J_XQg1z2u| zjefm`UO-ZM0O{N4Jw#=}Q^De;HAJPEw$EYRT`LuFG;%p)NMDTeu5{c-i3;@WqSZiI z#$WU@LUSWOX>827VdpHO1I546cb|I9WpC^?JAu!C^_Xfk|MV;wtn3|O`|@s=ba}K) zn#h6a1Cd)Bh`($A1JO68pe?Z8SbWRo06eZ^%WY`)+@rA@B2>OI7OhWl-k&sou)Yr- zvx(W$h&84E6??Iha&LKe$t+#TR|Ysdgu?u&vWRL8YdPciEs-!ZHvsnDa66W-z`Nnr zf7Xj`Cb+Sfiw10veK0$|U=yfb9P~Is1QpJF2sX=9{AG5^qsl{wZK`R6np>5n;2Ez|}$w1mY91l_!637Ot{J_cyR z+eezd0?rKCFd*pEp67Ae$z*8)YecSfmtCYwigbVcYxr84A*QE)#eV3Z+`}D?|0a3- z4HZ<3&@&s)Iip<#dWANgZ!b^Tt=$s2TR$QWylS|ju5nAtj}`@it<~K}uK=YToZ(pZ zO5J_qf_xS%s;vjfN}*6LE}-^i(2B=$xfxlKso?zOnK0nP6|1HH3! zF7Nv|(^lj>;coQbTZ3T(`tT|7+}!h$qF!8Z0Pt;e#=9S>HX#8Fji842JmIZq=S%23 zA+v(S4RShPx=F8Co{7QPk(7MTE&A9r4bxw>5#(73j~93K zqv#?vUJjXv`2pL#7_FuAC3Z0U%;l!ug61kcc``nf&y>nn*Bnq|pVt5?F}3`t=uIbQ z2M-v4L)T!(F27a%VW9PcU6j=gTHG}!RR=emRtG#Rc+s2(W zob6UMa0=1Az8nbX<@7h~0EO{SI40q~Jcv=RI-5WMqi-o=|FL_Mm!4VXyy>05-%o$z zO0gBMm!3|)VQ0dNE1ODdpUv;|Ir|APHg&Rr8+Kg%F-`l&hp3h)w=UNs(q%k0>=JXt z=Lgn^+j(s?wT2v4^(Si$C7K@rCrJ#9#8Ur5v{WDC+&Grys{i@h7iQJ7M4F;rD}&cA z+_nS=p64>`FLUP}cI2DWVdcyMMxp?zIjMrjhiiWGIoJq52^cyIip5pzY%?evo!`9r zNJxxt~Et&&u`u;)IY3f z^kVPKZ@NWGAPvXF=3Eea#CIeyas$fO6{ycveLx8SA`bo;E}u^cMl*elD_LCf$V6e;eah)D#=^Fa|FQd7C~T(Fr7e+qMPSc~9Nk*( zc%OyJlTW`{n2c^Q(=eUi963*^GQatSAJ}Hfg(%PaAY>*g;M_;hp35GXj%&Hilqceu zQ<_dUZ{1oFXNv{;1UiEF1+SaCk9lL?oVG7#W-uzc1kMn~n`<6Jo}ml@L)t+x{fZr+ za~rtfp7b@UmZF9+mGsNRA8Q|~A;o>Op#j2{ zejD!ZGXxIdjq{j`8}2elc1s~AHg{>WeNqRE6={jaS7WQ-}KIVIi(5iT-gkty1 z%%C9|i&~X<$?Ni2rv>?cd}NzLNis&YRy#^#++^(CxnF`-wXmzMDL~l#=+`3#E{e=0 z6M1hQid^g{Y^y!9oB1UkWyf=tO95-k->ta+AS z06S@{zxswOZ>#0S4-<25r;@h@1tQH>PRq}_)HWz8$Vo-K$ce7f|L7BxYLEeFwoqxY z85|Kj!hCJ@%}jGe;yknWj{s;zN=?1)1W=`)f_B2m_-O;{hLq~^2{;xY!L zPZ`f;D~MAz)?33s!#XLZ>nH3E%1G$Dyd#fE)r())9hbyV(Qyc8yin0G<@>_l*K?nd zDw$29@b3DNz#`C^G6;(U%XdW3d{V3>3Unnd@5uT<&x~yrMooXCcvPFv`|yKLpXrZl z{?w_n>lV1q29C7-zeaj=C@)5zjU`jfSbIsd$tK~6IsmoCNJZ_+v8>(7c=&yY!q0X! z-LepmJ%T2W6yaX-Hs2cIUh0az#=Vs=q_xrvxR-<(2}PT9VMuyj^O0uHTT23L^k7qM zWCG^~`DQm-cuneKOpM~0jfhMwE8v7MxCHM;1S<$|RnBMymAI8NPB!D1d_X|pIsc1* zD*Xa}C42X_L)m8ws@>Z?e2mH}&=zrs4w9Pgmz4dlP`8U45$6NXT60f^qHGTq_j>s# zfMq^HgH(7m6qN~-ETfGgoZf3Sk(GLOZ+ikT-rd`Fk&S?YGj=$Z?jObwHGK`DWHW7N z4LP{-4|Hd+?F1?U0CtWQG&lbSb}9glw2ZhZI2r22RZ7&Smvh~YlH5tK;SKY6-4`*SNj!jfy`1 z$78*?hhIrJ<$9;6<#eh>s1P+K*ejzXSmJUMrl7e;&w=bubxo;uP07;$jbKiAkF)lV zZASW+OG(OhS9W5q#1K6@c&*3yW&@;_OEbMc`izgcbR}+Gq8UzOL%)o!%@#TTFPEzD zKV7PR65n`1D!}yG2x6PbqM}tWKRoF|m4Wp=RmZCh{opZeEurm2W*f-V4m0-3I66PxS%81sJT>(=V!698dsm^(c|i z9Non!>s$Y$k8LAp$A51Cs7`&Q6nhfF{WWDe|B3uYkYme9P|W@7Gp&U~oJH=9yfQACc)EiU zX*{J4xU*i5%8SWEh#E`3Y?=brAWoRFtL)5V0W5#m14{?8gy_Mr#0kigxE5&@nHuVK5f(93NkH*=@yMe%k(RMAayvC(8NvDs zdFrQZ)*MgN$KC>zQ!oPL!95TA>c2^!IA#DCRZPxYbAuDB*Nt@IEr9j-7hD^G7=S4p%0_KuiSuBi+i0R%+{z~klM5A8c+;OX@ zQugof04ww+_s6z2U7z@6N-2oigQgz0hFN8#WO>y_Qc486ebP+k#+&~czON9BSgaOD zk8nnD$$J)sSz!0vu*(nL4c)L0>FmPd)^~UQQF!wpx^(60GffiEeCR1_B0X|wL8;~P zD0p`j_s9J+_%sJSL?2sXyWXe z|E;k!&>U~AF1JPm^%xykrEI#|0&7yuC|X}4rsVGYZPqfr3H4u^H5f_ZGqnKJbAL6h zQpTqU(SW9}<3=qt?P31M9=T!TjyUI}P370WMQX(q;sZnuhWw|S)k-q6zo@SJmGQ0u zY&j)Biu9jsIi@!7o3YWGX0`vAq)U|QWr!*BAse5`Ib6TyrYijM3=u_3F7!v+6D?$Z zfC!oOTB%s=pL;RLjWmc+j*^M9($l6aj3@GYBk_jPGyUFjlX17Ukt;7ygHo{q@2qqD zVLzP4u`h#jQ8j2+d4}a*HRw`lokKxx5M6_`tI&fWXAnD-=lL0gGgwX+4TO&l_v6_AkkxHWg5-^X%8iy;zSZa~J{Cx6V@354863p!jHb9~;12PAxAt z*otm1$tC=0FHx3$mSQ`i9HsICkS~419lZa*_@=V|)mItN#?E-z$Y%GTM+d^YyTNfb zG`8fnD@NBg=~Rwa-Y!5~u`YfVrS+pp$&ag~7v;X^6;g&3q=fD|Q7Fgg52#iFnv-@XI#LKdxnH>La*bj5;ASFDT=|^CqASE=zsgljr z9`dX!+5)cR6jKY}UV_;;tbeY>)_hD~3=Eds|6?I$yP?%OOCiK;SM=ld$q|Jbz3(q3 z#Jytd81jJmMkNtz%iN21e==GmTE@bHSy3wFGe|Cw(ZVqa%x^53kK7q5b#*e4BoQ0X zejNZZ|%(nwci1Dc84=W)9@#63~J; z_o(1pfYLF_NJXYn=0Nd}vpEkRkjV!D43_Cq3Dr&fYB`MsX~aK+khY_U-5KNpWs(ZK zgY67$4z#Es6)3UO^E=`#e@g5_G3P2D-qnKzCtH!L{{Z^Itn*accLcDkBObXt*OsH0 zRevIjWQMl{K%CnDAMdm^psMv&X3|A3wB>xGsz)B(ctJ{Nve&Sn58S1-F2(_8EpWpL zdz{`TnR zunST-Y(XYAMNk#&;Zt*Y$b;a-Lx&-wK^T>QiS?sQkt<%;>U^AlaheUFn zRB1p&lzLDxEscL-T4ak+F)eaHOiNnU^*)t2KVYBqd#206!?wGoflbbajkX7&&>NhoudD@gJ5G; z?cBc{1S3<*VNpgX2f?|2I0!-k2f>U#4uT0tS>Ccg23trn)J8`gdZVN7a({l!^@8(7 zLgT*2b>pACjyKTzOFw7n(E;A`dTaX4$kKTXvE@2zn-c$p;rj`QxB^45Zb^pG`!K=T z59Yss?T*h{pKES*Yd2}N2JpW4=WYl8pWO~?)NV)C1=DFW>H+x@BzxK%35+1;ABIRB zta%A8i??9P{%UW<1Z+X`wBJwTfB9kC7OYSDGu6g-C?jQ2c#Ye0!jjLAUlJ;o5xNHd z=yG!++BtasPKU`77ar%HgW)u}NxX9rTk=OXh(Lv%#z;G^57o4;hiXTEaT%5m7yv{q z{2r?IK#4X7@2>Bay@85mfX3>w8^A|rG(vzMtmE$Fc-KV>edZ-WE+q?EhCpo1w79Q7GdrD z=#QY{##9@$j7$I~<95<7c}dogE9WHz8K&zWz=!_Yji&U$?r&sZ7g;d^SyF&SxfXKN zC?G>4jZ2a{;8T@(M2oXjP%I>-E%Mt1u@e{7wFE;^K2N*8P0?o{?z^s<3R@(cVl;x%5BDGzb*T9tc<4j^PY+&D?OI38MW9BKfkogCA z5+e1a%iN*rJjEU1wsn>_VYl57dUSk(Z}S_uPSQn=%xal6bG|yiD1h40uk(U`)M;zokhn2rTojG@M_3BA5{n)m{BvV>H zEe*nGnYP23z|5$DO?ef;du&oWX1<O*=+nHa;BC!Wi%9oqU^|Te-B9 zBkI9iebxcQwGV#@9M8rJJRO@i>a?ebFK=P4M68@?GjxKMq{2+#P3*s~*W!VUZ}JIE?8ElcoyRvEdb(e;QGW(cL_kV{7tG zgX`u_ty(3Gz}@H+FW;uaeTE2yxZ~hQgvPL23R|wQc9qJ_pVbm;GL1y?F~RY3D=!pJRGOoKxot4j1VAW{(ZW zR8zbbUD#|CLo)jz^b&dYXLk**me-fAD;KXDrRy(h>QopNBDHb4u)~bVP!Y<ho2#kpV#*0ys6rR5O?B~q5tPvJVGEJu*=d9Ve3pBC?HtkeeV z9{V63$(J#AKECppH};+PcOV#a48;2wj`vX&c^AA!vw%^(hjC1?t|ghxE0Y~WtjmCr z!q^j#{rnwPUKdtgWb{I4@j>V&1#upOhd!gn@v-qvOA)fA=;V~t(uvISERIZfvIzql z`c{nKMRtNEnfRIdJO)cEBd7ELh~Rm40y&wu`SQy^|Aus}MJq{*{K}6p45UwPE@F0L ztz`3g=#hCaaz_&7R$&hoU=T2Yh$N`2MsU21vAl z@A~rhC6B!Q>(vTk+zq+x0opam`I|y7`%JXS$o|qBr#Zf_M~ktCFz+X&$-*wZX>N-dFnkfJIQigmIe_4QqcryYRmcA?ktiBjUH^-iE%wHXQ}g zle^)ZqqN_vbKWW3RMYUUb)MAV_^F?hF=M1#`~q7L{2w zvqdI#i)SCrVl)m0mPeSFwO*Xbhj&S1_CwqWX&(7KI^UFTuO3R5-MX`Ab4bVMZFIXg zrul0Ux0mJ|bJ#wNMSPB^)k1obAgroOP;6n8@P_=P{u9dryqLXNV*JU7rHkY6C5=*_ zR^FGMuPtp9SLX@gLi&UbrX$PT^yy}9pIn^|a@f+ZNm=tZUu2L`v0=ZCi2?itMt1zkRwM!MeN*S*n8>S2wM8KbGuud_XT=3${do1p=R=M zVjQ)5e7Yy_7;(29Ww{Q~PcG>RosF@};ciI=8x&71-icDx4XtQfubc5-fw1goya{dH zo_T>iZLM5UNAA{6goFY@0?ho(s6%OKLXe813)t3^8KmN31-4bPwQ+xDO9*=6=V8kX z(zbSb40a_1X)z0mp4{ zv$ZTtav^iSKEL?p+a=PC$s}X&W#|D*xGSID!`!>?<3d7~NGuU<4{Mm;V<;(^H}^~) zN(b9*ixc7Vg^Dstza$}Tc*%UvmqaPKMT+@8MFZY}fgxAMp)xm&V?@HB^~4o#*MN31*zH zljZVRZ>puq5~J;V*d980e59gg5Wf|vPS&?KJ==J{t8z;jXXRHQjBgVmUtRZ9>-N^~ z#Phu~xmzoP4*EaYImxz~=SWkM29M?)WE-W;;tP^u$n2GW|2`k{cHKM$lS`@AS43&s zAIfRrF{u!7YJ*B9{41Kil*n0>!AD0owx=4hItrbnjY?C-_Ez^iud4k`-i3fbB`eQF zBgAT!X4}VjZVzupLos7c5HSZt8Lt*YHZu0MU2qhU0*2yTI7S`WB=P}Y_8t)^t#LU= z_f@cB|GJ{DNSUy;B$&{%jGch4nL6UoegebaZt{QlR-&C0b=+Gxa{qlQj_lr(x6d_1 zM`x4{v-XqDh^?N!dj*Qs-HBjNB=}BJz@%z8E!f$r-jb=Ix^xS8lp;%F*2h9s9u`)u zQa?%OR=az{v5FYu6_V`nLqc%TLxJSHpU}}~7l;pzfIq;op03+AQ(yZqA?ZW6)#qU0 z>v$P|%T9u$=SFysoECELG21rm%?chXdbH8FE0{iG@D)rmxS3J*d)&w^tk=#*+x8TjDGgIpW z*{P~Nk!6SUoq}oX($`~slgW>ar*wYeaSq1uAMhic*xtT`D7jV`{ye^lYGlW!tnJ_S zHgG7h@m<^Fc{m|SF4RbJu2;S8d_FYRI3OPFYIhp2c<<`THiL?-xO;iIdv+j|K)jIY zP5NW)goN64XJvQKLBjCQp_+WwNf5XbT+LkPOWsW}KkILfP9FT0+N8KnUSAvGg?G(+ zDrpJ~;3Mz>-Vd~Xi3*%BnzTo0gu5e+9~0z;#(z|HIPJjTcP5<=ed4hsr{AVAET!4J465SnR!)1joSG)m-1gN@6F;xRa&;DRQnxo@`ke3Bh<)6F z@nu}h^*$g-|o ze$NTG+SfyBl|AEVoZJHDQS2wAe6E0x zey2wWQggF&XGWDt;Q0TjkWck&?fx!@!uRm%M%7uP@+*;n?Vm_t=)dW&?+jO%4UmYfi2z%I7$|iLB*1YCKi?rh7!G zL@M$)!_l8!I`U#ul*80=P6;%)Ax($;z470h#e4W!S;@$>o|$2@a#1wN-yta~q@c?e zFji1^%t#)@<}JJ>toB$~^S)z*o#U<20+Fg@_@MuXJQDJhu{8VD^)SgP>qD_2_Rh@; zWVHo6-I3_o$tz@IKip)4vXkVxcBkg*9Sn2uD@M6Ce994T&tK=fGyhm?5~o3KR5qn@ zRx=&i0$Xibq~Em7WZxc+`ISS|6dg6_lgQOUbdh%pZ{8 z!xR0=WPP~l6z=~(X1a!HvZk(7)q!evTkHI{)Rutp%j|3Q@mGeWaCJup`GrE{Ml-zI z;YRC11Tv3tYo+Q&>oE+O9s*Ai#(_2w*7p+|X%9a-ZP?uksQGN~a61@mah{I3rC&uC z?4ovlnsrQPOk_bbC>vzi7zh6j;;1U4QeaEK5s?KQ;D^1n`u@K>CthGHPq42iaD#yf PQ6XV5!h83WwN?HH`2CPS literal 0 HcmV?d00001 From a56874631ce4b7aa7e69ce193221a1038960bffd Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Fri, 29 Aug 2025 02:56:33 -0400 Subject: [PATCH 247/400] Update diagrams.drawio --- docs/prj/diagrams.drawio | 784 ++++++++++++++++++++------------------- 1 file changed, 411 insertions(+), 373 deletions(-) diff --git a/docs/prj/diagrams.drawio b/docs/prj/diagrams.drawio index c66c227..0bb9a02 100644 --- a/docs/prj/diagrams.drawio +++ b/docs/prj/diagrams.drawio @@ -1,4 +1,4 @@ - + @@ -14,293 +14,279 @@ - + - + - + - - + + - + - + - + - + + + + + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - - - - - - - - - - - - - - - - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -333,7 +319,7 @@ - + @@ -382,23 +368,26 @@ - + - + - + - + - + + + + - + @@ -414,177 +403,14 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - + - + @@ -597,39 +423,36 @@ - + - + - + - + - - - - + - + - + - + - + - + @@ -638,16 +461,24 @@ - + - + + + + + + + + + - + @@ -676,7 +507,7 @@ - + @@ -752,11 +583,26 @@ - + + + + + + + + + + + + + + + + - + @@ -767,13 +613,13 @@ - + - + - + @@ -801,7 +647,7 @@ - + @@ -868,11 +714,8 @@ - - - - + @@ -882,8 +725,203 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 888bc0615674bc594f6a9deb67bbfb34d74aad95 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Fri, 29 Aug 2025 02:57:25 -0400 Subject: [PATCH 248/400] Update Class_Diagram_Sample.pdf --- docs/prj/Class_Diagram_Sample.pdf | Bin 330921 -> 361429 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/prj/Class_Diagram_Sample.pdf b/docs/prj/Class_Diagram_Sample.pdf index 1ed441b5da1b8ee23508e37d5b0e113ddbbf956a..ec0d89fe0826a2a809aba026257b7bc0c0ac8ee0 100644 GIT binary patch delta 207526 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

    Hy6rnQpb@Fg?fys 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 z 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

    3II5=t=2KNVysl)|^vXV7Jfz2`Os1ib z{~_A{Rz$-t<}V<%VG_0tj$%w&c!vA-T4!N^o3GberyAu0``K{d8x}^7HV7a1 zhW;m>$G5U+*N#^aN;I)9`#dBo{~q_^B|SF8(Dtwga5G|~=hP{B#)^&`oXer~_pKG) ze}z|o$m<02Q`4*`fy=WGc)yo}TKWQeprwsXhb?GY%6J3RQu_M^_dp}V{1ntu<|_wU z%KIHOGR#k#8~Ay@H{-|FD>_Z}4?&(rP4myd1m_KyAztnwJ<%hQc$p644<;vp7lU-Q z4;mTs)dg&?=xRONIostpB(+f@(wWvivT{4<`JuYJnH|p2xpK5li^R)vy9$=RGxAyu zn?*3tUX-iht|?&Y9PgRqt}$UB(@0%Uo}2gmXcH6gNM6J&BHPz8aMw!Sf=;3QFVHEN zT=Yl=or0qX=oB1})0_f8*Y{9zjn1*~i4~yM2hIcNy(_F$yp5}?VI5E2W|3XvY18nq z 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 delta 176753 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%0Arha_pyr?>**W%t}lqOJDyLbDGh~9Hujc= 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 Date: Fri, 29 Aug 2025 09:23:24 -0400 Subject: [PATCH 249/400] Abstract Calendar Update Incomplete (pending 3 additional methods: getDate(), getNextDate(), and getLastDate()) --- .../simplydt/calendar/abstract_calendar.hpp | 313 ++++++++++-------- 1 file changed, 174 insertions(+), 139 deletions(-) diff --git a/include/simplydt/calendar/abstract_calendar.hpp b/include/simplydt/calendar/abstract_calendar.hpp index ce0d666..5457463 100644 --- a/include/simplydt/calendar/abstract_calendar.hpp +++ b/include/simplydt/calendar/abstract_calendar.hpp @@ -8,45 +8,60 @@ * @file abstract_calendar.hpp * * @brief - * Base CRTP calendar declaration. + * Base calendar system interface declaration. */ -#ifndef SIMPLYDT_LIB_BASE_CALENDAR_H_ -#define SIMPLYDT_LIB_BASE_CALENDAR_H_ +#ifndef SIMPLYDT_LIB_BASE_CALENDAR_INTERFACE_H_ +#define SIMPLYDT_LIB_BASE_CALENDAR_INTERFACE_H_ -#include "simplydt/calendar/concepts/calendar_contract.hpp" +#include "simplydt/common/simplydt_defs.hpp" +#include +#include +#include namespace simplydt { /*! * @brief - * Base calendar agnostic system. + * Base calendar interface. * * @details - * This class serves as a foundational interface for calendar - * systems, providing a generic and extensible structure for - * calendar operations. It is designed to be agnostic of any - * specific calendar implementation, allowing derived calendars - * to define their own month and day-of-week enumerations, date - * representations, and naming conventions. This type is not - * self-constructable and must be inherited by a concrete - * implementation that presents a valid public API. Implementations - * should seek confirmation their API is compliant by invoking the - * calendar contract enforcement macro just after the body of the - * implementation. Failing to be compliant can result in substitution - * errors or undefined behavior. + * This serves as the foundational interface for calendar + * systems in Simply Datetime. It is designed to be agnostic + * of any specific calendar implementation, allowing derived + * calendars to define their own characteristics. Note that + * the assumption is made that the calendar model in question + * utilizes year, month, and day values to describe a date in + * time. An implementation of this type focuses on conducting + * calendar operations on dates of type `Date_Impl` while + * obeying defined systemic calendar rules. Similar to other + * class hierarchies in Simply Datetime, this family uses the + * CRTP design pattern which allows this base to reference the + * derivative. Consequently, the convenience methods defined + * in this base structure depend on the concrete calendars + * public API for them to be well-formed. A derivative is + * expected to present the appropriate static attributes and + * methods, which can be verified by invoking the contract + * enforcement macro (`SIMPLYDT_ENFORCE_CALENDAR_CONTRACT`) + * just after the body of the implementation. Failing to have + * a compliant API can result in substitution errors or + * undefined behavior. Similarly, the provided date + * implementation must also satisfy its API requirements to + * avoid substitution errors or undefined behavior. This type + * is meant to present a stateless API and should not be + * constructable. It must be inherited by a concrete + * implementation that presents the expected (public) static + * API. */ -template +template struct CalendricalSystem { - /*! @brief Calendar system implementation. */ - using Calendar = Calendar_Impl; - /*! @brief Calendar implementation base class. */ - using Base = CalendricalSystem; + /*! @brief Calendar system base class. */ + using Base = CalendricalSystem; /*! @brief Calendar date. */ - using Date = Date_T; - /*! @brief Year integer type. */ + using Date = Date_Impl; + /*! @brief Calendar year integer type. */ using YearInt_t = typename Date::YearInt_t; /*! @brief Enumeration of calendar months. */ using Month = Month_Enum; @@ -55,51 +70,55 @@ struct CalendricalSystem { /*! * @brief - * Returns name of a calendar month by its numeric value. + * Returns name of calendar month by its numeric value. * * @details - * Expects a 1-based month number (1 = January ... 12 = December). - * If the month value is invalid for the current calendar - * implementation, the function returns a predefined invalid - * string literal. Month names are provided by the derived - * calendar's `MONTH_NAMES` array. + * Expects a 1-based month number (1 = January ... 12 = + * December). If the month value is invalid for the + * current calendar implementation, the function returns + * a predefined invalid string literal. Month names are + * sourced from the derived calendar's `MONTH_NAMES` array. * * @return - * Month name + * Calendar month name */ [[nodiscard]] static constexpr const char* getMonthName(const uint8_t month) noexcept { - if (!Calendar::isValidMonth(month)) + if (month == 0 || !Calendar_Impl::isValidMonth(month)) return INVALID_LITERAL; const uint8_t monthIndex = month - 1; - return Calendar::MONTH_NAMES[monthIndex]; + return Calendar_Impl::MONTH_NAMES[monthIndex]; } /*! * @brief - * Returns name of a calendar month from its enumeration + * Returns name of calendar month from its enumeration * representation. * * @details - * Accepts a month enumeration constant defined by the derived - * calendar implementation. The enumeration is expected to use - * zero-based indexing (0 = January ... 11 = December). If the - * month value is invalid for the current calendar, the function - * returns a predefined invalid string literal. Month names are - * sourced from the derived calendar's `MONTH_NAMES` array. + * Accepts a month enumeration constant defined by the + * derived calendar implementation. The enumeration is + * expected to use zero-based indexing (0 = January ... + * 11 = December). If the month value is invalid for the + * current calendar, the function returns a predefined + * invalid string literal. Month names are sourced from + * the derived calendar's `MONTH_NAMES` array. * * @return - * Month name + * Calendar month name */ - [[nodiscard]] static constexpr const char* getMonthName(const Month month) noexcept + [[nodiscard]] static constexpr const char* getMonthName(const Month month_repr) noexcept { - const uint8_t monthIndex = static_cast(month); + if (month_repr < 0 || month_repr > std::numeric_limits::max()) + return INVALID_LITERAL; + + const uint8_t monthIndex = static_cast(month_repr); - if (!Calendar::isValidMonth(monthIndex + 1)) + if (!Calendar_Impl::isValidMonth(monthIndex + 1)) return INVALID_LITERAL; - return Calendar::MONTH_NAMES[monthIndex]; + return Calendar_Impl::MONTH_NAMES[monthIndex]; } /*! @@ -112,7 +131,7 @@ struct CalendricalSystem { * calendar's `MONTH_NAMES` array. * * @return - * Month name + * Calendar month name */ [[nodiscard]] static constexpr const char* getMonthName(const Date date) noexcept { @@ -128,20 +147,20 @@ struct CalendricalSystem { * Expects a 1-based month number (1 = January ... 12 = December). * If the month value is invalid for the current calendar * implementation, the function returns a predefined invalid - * string literal. Month abbreviations are provided by the + * string literal. Month abbreviations are sourced from the * derived calendar's `MONTH_ABBREVS` array. * * @return - * Abbreviated month name + * Abbreviated calendar month name */ - [[nodiscard]] static std::string getMonthAbbrev(const uint8_t month) noexcept + [[nodiscard]] static constexpr std::string_view getMonthAbbrev(const uint8_t month + ) noexcept { - if (!Calendar::isValidMonth(month)) - return INVALID_LITERAL; + if (month == 0 || !Calendar_Impl::isValidMonth(month)) + return std::string_view{INVALID_LITERAL}; const uint8_t monthIndex = month - 1; - const std::string abbreviation{Calendar::MONTH_ABBREVS[monthIndex]}; - return abbreviation; + return Calendar_Impl::MONTH_ABBREVS[monthIndex]; } /*! @@ -154,22 +173,24 @@ struct CalendricalSystem { * calendar implementation. The enumeration is expected to use * zero-based indexing (0 = January ... 11 = December). If the * month value is invalid for the current calendar, the function - * returns a predefined invalid string literal. Month - * abbreviations are sourced from the derived calendar's - * `MONTH_ABBREVS` array. + * returns a predefined invalid string literal. Month abbreviations + * are sourced from the derived calendar's `MONTH_ABBREVS` array. * * @return - * Abbreviated month name + * Abbreviated calendar month name */ - [[nodiscard]] static std::string getMonthAbbrev(const Month month) noexcept + [[nodiscard]] static constexpr std::string_view getMonthAbbrev(const Month month_repr + ) noexcept { - const uint8_t monthIndex = static_cast(month); + if (month_repr < 0 || month_repr > std::numeric_limits::max()) + return std::string_view{INVALID_LITERAL}; - if (!Calendar::isValidMonth(monthIndex + 1)) - return INVALID_LITERAL; + const uint8_t monthIndex = static_cast(month_repr); + + if (!Calendar_Impl::isValidMonth(monthIndex + 1)) + return std::string_view{INVALID_LITERAL}; - const std::string abbreviation{Calendar::MONTH_ABBREVS[monthIndex]}; - return abbreviation; + return Calendar_Impl::MONTH_ABBREVS[monthIndex]; } /*! @@ -182,9 +203,9 @@ struct CalendricalSystem { * the derived calendar's `MONTH_ABBREVS` array. * * @return - * Abbreviated month name + * Abbreviated calendar month name */ - [[nodiscard]] static std::string getMonthAbbrev(const Date date) noexcept + [[nodiscard]] static constexpr std::string_view getMonthAbbrev(const Date date) noexcept { return getMonthAbbrev(date.month()); } @@ -195,19 +216,19 @@ struct CalendricalSystem { * enumeration representation. * * @details - * Expects a 1-based month number (1 = January ... 12 = December). - * If the value is invalid for the current calendar implementation, - * the function returns a fallback enumeration value (0). The - * returned value uses zero-based indexing of the derived - * calendar's `Month` enumeration. + * Expects a 1-based month number (1 = January ... 12 = + * December). If the value is invalid for the current + * calendar implementation, the function returns a fallback + * enumeration value (0). The returned value uses zero-based + * indexing of the derived calendar's `Month` enumeration. * * @return - * Calendar month enum value + * Calendar month enum representation */ [[nodiscard]] static constexpr Month getMonthEnumRepr(const uint8_t month) noexcept { - if (!Calendar::isValidMonth(month)) - return static_cast(0); // TODO: Crap... + if (!Calendar_Impl::isValidMonth(month)) + return static_cast(0); // TODO: Fallback value not acceptable here... const uint8_t monthIndex = month - 1; return static_cast(monthIndex); @@ -220,117 +241,129 @@ struct CalendricalSystem { * * @details * Extracts month from calendar defined date implementation and - * converts it to the zero-based `Month` enumeration defined by - * the derived calendar implementation. + * converts it to the corresponding zero-based `Month` + * enumeration defined by the derived calendar implementation. * * @return - * Calendar month enum value + * Calendar month enum representation */ [[nodiscard]] static constexpr Month getMonthEnumRepr(const Date date) noexcept { - return static_cast(date.month() - 1); + return getMonthEnumRepr(date.month()); } /*! * @brief - * Returns day-of-week name of calendar date. + * Returns name of calendar day-of-week from its enumeration + * representation. * * @details - * Validates the given `Date` instance and determines its - * day-of-week index using the derived calendar's - * `getDayOfWeekIndex()` method. Returns the corresponding name - * from the `DAY_OF_WEEK_NAMES` array, or a predefined invalid - * string literal if the date is not valid. + * Accepts a day-of-week enumeration constant defined by + * the derived calendar implementation. The enumeration + * is expected to use zero-based indexing (0 = Sunday ... + * 6 = Saturday). If the day-of-week value is invalid for + * the current calendar, the function returns a predefined + * invalid string literal. Calendar day-of-week names are + * sourced from the derived calendar's `DAY_OF_WEEK_NAMES` + * array. * * @return - * Day-of-week name + * Calendar day-of-week name */ - [[nodiscard]] static constexpr const char* getDayOfWeekName(const Date date) noexcept + [[nodiscard]] static constexpr const char* getDayOfWeekName(const DayOfWeek dow_repr + ) noexcept { - if (!Calendar::isValidDate(date)) + if (dow_repr < 0 || dow_repr > std::numeric_limits::max()) return INVALID_LITERAL; - const uint8_t dowIndex = Calendar::getDayOfWeekIndex(date); - return Calendar::DAY_OF_WEEK_NAMES[dowIndex]; + const uint8_t dowIndex = static_cast(dow_repr); + + if (!Calendar_Impl::isValidDOWIndex(dowIndex)) + return INVALID_LITERAL; + + return Calendar_Impl::DAY_OF_WEEK_NAMES[dowIndex]; } /*! * @brief - * Returns name of a calendar day-of-week from its enumeration - * representation. + * Returns calendar date day-of-week name. * * @details - * Accepts a day-of-week enumeration constant defined by the - * derived calendar implementation. The enumeration is expected - * to use zero-based indexing (0 = Sunday ... 6 = Saturday). If - * the day-of-week value is invalid for the current calendar, the - * function returns a predefined invalid string literal. - * day-of-week names are sourced from the derived calendar's - * `DAY_OF_WEEK_NAMES` array. + * Determines day-of-week index of the provided calendar + * date by calling the derived calendar implementation + * `getDayOfWeekIndex()` method. Returns the corresponding + * name from the calendar defined `DAY_OF_WEEK_NAMES` + * array, or a predefined invalid string literal if the + * date is not valid. * * @return - * Day-of-week name + * Calendar day-of-week name */ - [[nodiscard]] static constexpr const char* getDayOfWeekName(const DayOfWeek dow) noexcept + [[nodiscard]] static constexpr const char* getDayOfWeekName(const Date date) noexcept { - const uint8_t dowIndex = static_cast(dow); - - if (!Calendar::isValidDOWIndex(dowIndex)) + if (!Calendar_Impl::isValidDate(date)) return INVALID_LITERAL; - return Calendar::DAY_OF_WEEK_NAMES[dowIndex]; + const uint8_t dowIndex = Calendar_Impl::getDayOfWeekIndex(date); + return Calendar_Impl::DAY_OF_WEEK_NAMES[dowIndex]; } /*! * @brief - * Returns abbreviated day-of-week name of calendar date. + * Returns abbreviated name of calendar day-of-week from its + * enumeration representation. * * @details - * Validates the given `Date` instance and determines its - * day-of-week index using the derived calendar's - * `getDayOfWeekIndex()` method. Returns the corresponding - * abbreviated name from the `DAY_OF_WEEK_ABBREVS` array, or a - * predefined invalid string literal if the date is not valid. + * Accepts a day-of-week enumeration constant defined by + * the derived calendar implementation. The enumeration is + * expected to use zero-based indexing (0 = Sunday ... 6 = + * Saturday). If the day-of-week value is invalid for the + * current calendar, the function returns a predefined + * invalid string literal. Day-of-week abbreviations are + * sourced from the derived calendar's `DAY_OF_WEEK_ABBREVS` + * array. * * @return - * Abbreviated day-of-week name + * Abbreviated calendar day-of-week name */ - [[nodiscard]] static std::string getDayOfWeekAbbrev(const Date date) noexcept + [[nodiscard]] static constexpr std::string_view getDayOfWeekAbbrev(const DayOfWeek dow_repr + ) noexcept { - if (!Calendar::isValidDate(date)) - return INVALID_LITERAL; + if (dow_repr < 0 || dow_repr > std::numeric_limits::max()) + return std::string_view{INVALID_LITERAL}; + + const uint8_t dowIndex = static_cast(dow_repr); - const uint8_t dowIndex = Calendar::getDayOfWeekIndex(date); - const std::string abbreviation{Calendar::DAY_OF_WEEK_ABBREVS[dowIndex]}; - return abbreviation; + if (!Calendar_Impl::isValidDOWIndex(dowIndex)) + return std::string_view{INVALID_LITERAL}; + + return Calendar_Impl::DAY_OF_WEEK_ABBREVS[dowIndex]; } /*! * @brief - * Returns abbreviated name of a calendar day-of-week from its + * Returns abbreviated name of calendar day-of-week from its * enumeration representation. * * @details - * Accepts a day-of-week enumeration constant defined by the derived - * calendar implementation. The enumeration is expected to use - * zero-based indexing (0 = Sunday ... 6 = Saturday). If the - * day-of-week value is invalid for the current calendar, the - * function returns a predefined invalid string literal. Day-of-week - * abbreviations are sourced from the derived calendar's - * `DAY_OF_WEEK_ABBREVS` array. + * Determines day-of-week index of the provided calendar + * date by calling the derived calendar implementation + * `getDayOfWeekIndex()` method. Returns the corresponding + * name from the calendar defined `DAY_OF_WEEK_ABBREVS` + * array, or a predefined invalid string literal if the + * date is not valid. * * @return - * Abbreviated day-of-week name + * Abbreviated calendar day-of-week name */ - [[nodiscard]] static std::string getDayOfWeekAbbrev(const DayOfWeek dow) noexcept + [[nodiscard]] static constexpr std::string_view getDayOfWeekAbbrev(const Date date + ) noexcept { - const uint8_t dowIndex = static_cast(dow); - - if (!Calendar::isValidDOWIndex(dowIndex)) - return INVALID_LITERAL; + if (!Calendar_Impl::isValidDate(date)) + return std::string_view{INVALID_LITERAL}; - const std::string abbreviation{Calendar::DAY_OF_WEEK_ABBREVS[dowIndex]}; - return abbreviation; + const uint8_t dowIndex = Calendar_Impl::getDayOfWeekIndex(date); + return Calendar_Impl::DAY_OF_WEEK_ABBREVS[dowIndex]; } /*! @@ -342,21 +375,23 @@ struct CalendricalSystem { * Validates the given `Date` instance and determines its * day-of-week index using the derived calendar's * `getDayOfWeekIndex()` method. Returns the corresponding - * day-of-week enumeration representation using the `DayOfWeek` - * enumeration defined by the derived calendar. + * day-of-week enumeration representation using the + * `DayOfWeek` enumeration defined by the derived calendar. * * @return - * Calendar day-of-week enum value + * Calendar day-of-week enum representation */ [[nodiscard]] static constexpr DayOfWeek getDayOfWeekEnumRepr(const Date date) noexcept { - if (!Calendar::isValidDate(date)) - return static_cast(0); // TODO: Oh no.. another one... + if (!Calendar_Impl::isValidDate(date)) + return static_cast(0); // TODO: Fallback value not acceptable here... - const uint8_t dowIndex = Calendar::getDayOfWeekIndex(date); + const uint8_t dowIndex = Calendar_Impl::getDayOfWeekIndex(date); return static_cast(dowIndex); } + // Continue... + private: CalendricalSystem() = delete; ~CalendricalSystem() = delete; @@ -365,4 +400,4 @@ struct CalendricalSystem { } // namespace simplydt -#endif // SIMPLYDT_LIB_BASE_CALENDAR_H_ +#endif // SIMPLYDT_LIB_BASE_CALENDAR_INTERFACE_H_ From 07fdaf06e8e877328a3b668e4f012776c492f516 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Fri, 29 Aug 2025 21:43:39 -0400 Subject: [PATCH 250/400] Update diagrams.drawio --- docs/prj/diagrams.drawio | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/prj/diagrams.drawio b/docs/prj/diagrams.drawio index 0bb9a02..63a6672 100644 --- a/docs/prj/diagrams.drawio +++ b/docs/prj/diagrams.drawio @@ -14,7 +14,7 @@ - + @@ -275,7 +275,7 @@ - + @@ -725,7 +725,7 @@ - + From 177a1a5fe970a2a1396926b4eaa6a4885cc58679 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Fri, 29 Aug 2025 21:45:45 -0400 Subject: [PATCH 251/400] Update abstract_calendar.hpp --- .../simplydt/calendar/abstract_calendar.hpp | 245 +++++++++++++++++- 1 file changed, 244 insertions(+), 1 deletion(-) diff --git a/include/simplydt/calendar/abstract_calendar.hpp b/include/simplydt/calendar/abstract_calendar.hpp index 5457463..68aefcc 100644 --- a/include/simplydt/calendar/abstract_calendar.hpp +++ b/include/simplydt/calendar/abstract_calendar.hpp @@ -16,6 +16,9 @@ #define SIMPLYDT_LIB_BASE_CALENDAR_INTERFACE_H_ #include "simplydt/common/simplydt_defs.hpp" +#include "simplydt/common/stl_chrono_defs.hpp" +#include "simplydt/common/stl_chrono_utils.hpp" +#include "simplydt/time/units/time_units.hpp" #include #include #include @@ -390,7 +393,247 @@ struct CalendricalSystem { return static_cast(dowIndex); } - // Continue... + /*! + * @brief + * Create calendar date using a year, month, and day value. + * + * @brief + * Constructs a calendar defined date implementation using + * the provided date values. Checks validity of date values + * beforehand using the derived calendars `isValidDate()` + * method. The method returns a default constructed calendar + * date if the provided date values were invalid for the + * current calendar. + * + * @return + * Calendar date + */ + [[nodiscard]] static constexpr Date getDate( + const YearInt_t year, const uint8_t month, const uint8_t day + ) noexcept + { + if (!Calendar_Impl::isValidDate(year, month, day)) + return Date{}; + + return Date{year, month, day}; + } + + /*! + * @brief + * Create calendar date using a year, month, and day value. + * + * @brief + * Constructs a calendar defined date implementation using + * the provided date values. Checks validity of date values + * beforehand using the derived calendars `isValidDate()` + * method. The method returns a default constructed calendar + * date if the provided date values were invalid for the + * current calendar. The month enumeration value is converted + * to a 1-based numerical month value for calculations. + * + * @return + * Calendar date + */ + [[nodiscard]] static constexpr Date getDate( + const YearInt_t year, const Month month, const uint8_t day + ) noexcept + { + if (month < 0 || month >= std::numeric_limits::max()) + return Date{}; + + const uint8_t numericMonth = static_cast(month) + 1; + return Date{year, numericMonth, day}; + } + + /*! + * @brief + * Create calendar date using local system clock. + * + * @details + * Interprets the given `stl::SystemTimePoint` as local time + * by converting it to a Unix timestamp and then populating + * a `std::tm` structure using the C++ standard library backed + * `stl::deriveLocalDateTimeFromTimestamp()` method. The + * resulting year, month, and day fields are used to construct + * and return the calendar defined date implementation. If the + * local date conversion fails a default constructed calendar + * date is returned. + * + * @return + * Calendar date + */ + [[nodiscard]] static Date getDate(const stl::SystemTimePoint time_point) noexcept + { + const stl::UnixTimestamp secsSinceEpoch = stl::SystemClock::to_time_t(time_point); + stl::CalendarDateTime dateBuffer{}; + + if (!stl::deriveLocalDateTimeFromTimestamp(&secsSinceEpoch, &dateBuffer)) + return Date{}; // Failed to interpret local date + + return Date{ + static_cast( + dateBuffer.tm_year + 1'900 + ), // tm_year measures years since 1900 + static_cast( + dateBuffer.tm_mon + 1 + ), // tm_mon measures months since January + static_cast(dateBuffer.tm_mday) + }; + } + + /*! + * @brief + * Create calendar date using system clock. + * + * @details + * If `local` is true the given `stl::SystemTimePoint` is + * interpreted as local time (OS time-zone applied). If + * `local` is false the time point is interpreted without + * the assistance of the host OS (no time-zone). The OS has + * access to the necessary system settings that influence + * local time interpretation and must be consulted to get + * the systems true date. + * + * @return + * Calendar date + */ + [[nodiscard]] static Date getDate( + const stl::SystemTimePoint time_point, const bool local + ) noexcept + { + if (local) + return getDate(time_point); + + const stl::UnixTimestamp secsSinceEpoch = stl::SystemClock::to_time_t(time_point); + return Calendar_Impl::fromUnixTimestamp(secsSinceEpoch); + } + + /*! + * @brief + * Returns next calendar date on provided day-of-week. + * + * @details + * TODO: INCOMPLETE COMMENT!!! + * + * @return + * Calendar date + */ + [[nodiscard]] static constexpr Date getNextDate( + const Date from_date, const DayOfWeek dow_repr + ) noexcept + { + if (!Calendar_Impl::isValidDate(from_date)) + return from_date; // No next date + // NOTE: Return default constructed date above instead? + + constexpr uint8_t daysInWeek = + static_cast(Calendar_Impl::DAY_OF_WEEK_NAMES.size()); + const int8_t fromDate_dow = + static_cast(Calendar_Impl::getDayOfWeekIndex(from_date)); + const int8_t dowOffset = fromDate_dow - static_cast(dow_repr); + + const Date next = from_date + Days{dowOffset + daysInWeek}; + return next; + } + + /*! + * @brief + * Returns next calendar date in provided month. + * + * @details + * TODO: INCOMPLETE COMMENT!!! + * + * @return + * Calendar date + */ + [[nodiscard]] static constexpr Date getNextDate( + const Date from_date, const Month month_repr + ) noexcept + { + const uint8_t fromNumericMonth = from_date.month(); + const uint8_t toNumericMonth = static_cast(month_repr) + 1; + + if (fromNumericMonth != toNumericMonth) { + if (fromNumericMonth > toNumericMonth) + return Date{from_date.year() + 1, toNumericMonth, 1}; + else if (fromNumericMonth < toNumericMonth) + return Date{from_date.year(), toNumericMonth, 1}; + } + + const uint8_t daysInMonth = + Calendar_Impl::getDaysInMonth(from_date.year(), fromNumericMonth); + + if (from_date.day() != daysInMonth) + return from_date + Days{1}; + + return Date{from_date.year() + 1, fromNumericMonth, 1}; + // NOTE: Check validity of above date values first before return? + // (wrap around to valid?) + } + + /*! + * @brief + * Returns last calendar date on provided day-of-week. + * + * @details + * TODO: INCOMPLETE COMMENT!!! + * + * @return + * Calendar date + */ + [[nodiscard]] static constexpr Date getLastDate( + const Date from_date, const DayOfWeek dow_repr + ) noexcept + { + if (!Calendar_Impl::isValidDate(from_date)) + return from_date; // No last date + // NOTE: Return default constructed date above instead? + + constexpr uint8_t daysInWeek = + static_cast(Calendar_Impl::DAY_OF_WEEK_NAMES.size()); + const int8_t fromDate_dow = + static_cast(Calendar_Impl::getDayOfWeekIndex(from_date)); + const int8_t dowOffset = fromDate_dow - static_cast(dow_repr); + + const Date last = from_date - Days{dowOffset + daysInWeek}; + return last; + } + + /*! + * @brief + * Returns last calendar date in provided month. + * + * @details + * TODO: INCOMPLETE COMMENT!!! + * + * @return + * Calendar date + */ + [[nodiscard]] static constexpr Date getLastDate( + const Date from_date, const Month month_repr + ) noexcept + { + const uint8_t fromNumericMonth = from_date.month(); + const uint8_t toNumericMonth = static_cast(month_repr) + 1; + uint8_t daysInMonth = + Calendar_Impl::getDaysInMonth(from_date.year(), fromNumericMonth); + + if (fromNumericMonth != toNumericMonth) { + if (fromNumericMonth > toNumericMonth) + return Date{from_date.year(), toNumericMonth, daysInMonth}; + else if (fromNumericMonth < toNumericMonth) + return Date{from_date.year() - 1, toNumericMonth, daysInMonth}; + } + + if (from_date.day() != 1) + return from_date - Days{1}; + + const YearInt_t previousYear = from_date.year() - 1; + daysInMonth = Calendar_Impl::getDaysInMonth(previousYear, toNumericMonth); + return Date{previousYear, toNumericMonth, daysInMonth}; + // NOTE: Check validity of above date values first before return? + // (wrap around to valid?) + } private: CalendricalSystem() = delete; From 86e2ab74e6b5430a24ebbb7f6c07254a4a18dc20 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Fri, 29 Aug 2025 21:46:13 -0400 Subject: [PATCH 252/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index 36f01fc..1723ec5 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -45,7 +45,9 @@ int main(int argc, char* argv[]) using UnixTimestamp = simplydt::stl::UnixTimestamp; using UTCTime = simplydt::utc::UTCTime; - constexpr GregorianDate demo{2'025, 8, 15}; + const GregorianDate blizz = GregorianCalendar::getDate(simplydt::stl::SystemClock::now()); + constexpr GregorianDate demo = + GregorianCalendar::getDate(2'025, simplydt::gregorian::AUGUST, 29); std::cout << "\nDemo date: " << demo << '\n'; constexpr bool isValid = GregorianCalendar::isValidDate(demo); @@ -53,8 +55,9 @@ int main(int argc, char* argv[]) constexpr const char* month = GregorianCalendar::getMonthName(demo); constexpr simplydt::gregorian::Month monthRepr = GregorianCalendar::getMonthEnumRepr(demo); constexpr const char* dowName = GregorianCalendar::getDayOfWeekName(demo); - constexpr bool isLeap = GregorianCalendar::isLeapYear(demo); - constexpr uint16_t daysInYr = GregorianCalendar::getDaysInYear(demo); + constexpr std::string_view dowShort = GregorianCalendar::getDayOfWeekAbbrev(demo); + constexpr bool isLeap = GregorianCalendar::isLeapYear(demo); + constexpr uint16_t daysInYr = GregorianCalendar::getDaysInYear(demo); constexpr simplydt::gregorian::DayOfWeek dowRepr = GregorianCalendar::getDayOfWeekEnumRepr(demo); constexpr UnixTimestamp serialDays = GregorianCalendar::toDaysSinceEpoch(demo); From 715c2b567e550f26881de4ad3cea8356ec9bb197 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Fri, 29 Aug 2025 21:48:54 -0400 Subject: [PATCH 253/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index 1723ec5..3f50936 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -80,6 +80,7 @@ int main(int argc, char* argv[]) constexpr const char* mmq = dvq.hourPhaseStr(); std::cout << "UTC Time: " << dvq << '\n'; constexpr simplydt::Seconds evv = dvq.toSerialSeconds(); + //constexpr GregorianDate next = GregorianCalendar::getNextDate(demo, simplydt::gregorian::FRIDAY); // std::cout << "\n\n\t[ Complete ]" << std::endl; From bcd01f5a0fa8d4e07c142ab6ffed2c1fa1b10e59 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Fri, 29 Aug 2025 21:56:30 -0400 Subject: [PATCH 254/400] Update diagrams.drawio --- docs/prj/diagrams.drawio | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/prj/diagrams.drawio b/docs/prj/diagrams.drawio index 63a6672..565dd58 100644 --- a/docs/prj/diagrams.drawio +++ b/docs/prj/diagrams.drawio @@ -14,7 +14,7 @@ - + @@ -256,7 +256,7 @@ - + @@ -275,7 +275,7 @@ - + From 853bbe4f8e9082f6e20a4b9c630f8922ae18478a Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Fri, 29 Aug 2025 21:58:36 -0400 Subject: [PATCH 255/400] Update diagrams.drawio --- docs/prj/diagrams.drawio | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/prj/diagrams.drawio b/docs/prj/diagrams.drawio index 565dd58..27484fc 100644 --- a/docs/prj/diagrams.drawio +++ b/docs/prj/diagrams.drawio @@ -285,7 +285,7 @@ - + @@ -391,10 +391,10 @@ - + - + @@ -409,7 +409,7 @@ - + From b174efb654395f1028cd7f07fd5673eda14eb756 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sun, 31 Aug 2025 02:54:35 -0400 Subject: [PATCH 256/400] Update diagrams.drawio --- docs/prj/diagrams.drawio | 107 +++++++++++++++++++-------------------- 1 file changed, 52 insertions(+), 55 deletions(-) diff --git a/docs/prj/diagrams.drawio b/docs/prj/diagrams.drawio index 27484fc..317fa20 100644 --- a/docs/prj/diagrams.drawio +++ b/docs/prj/diagrams.drawio @@ -256,7 +256,7 @@ - + @@ -275,7 +275,7 @@ - + @@ -285,8 +285,8 @@ - - + + @@ -298,7 +298,7 @@ - + @@ -307,7 +307,7 @@ - + @@ -323,7 +323,7 @@ - + @@ -344,28 +344,28 @@ - + - + - + - + - + - + - + @@ -387,7 +387,7 @@ - + @@ -397,67 +397,64 @@ - + - - - - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -616,7 +613,7 @@ - + @@ -728,12 +725,12 @@ - + - + @@ -741,7 +738,7 @@ - + @@ -775,58 +772,58 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + From 509de971e3278c32e56d971755bda9ef5f279ae8 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sun, 31 Aug 2025 18:19:05 -0400 Subject: [PATCH 257/400] Update calendar_defs.hpp --- include/simplydt/common/calendar_defs.hpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/include/simplydt/common/calendar_defs.hpp b/include/simplydt/common/calendar_defs.hpp index 739e35e..2bb4ff7 100644 --- a/include/simplydt/common/calendar_defs.hpp +++ b/include/simplydt/common/calendar_defs.hpp @@ -17,6 +17,7 @@ #include "simplydt/common/simplydt_defs.hpp" #include +#include namespace simplydt { @@ -40,6 +41,16 @@ enum class CalendarComponent : uint8_t { YEAR = DatetimeComponent::YEAR ///< Calendar year component }; +/*! + * @brief + * Calendar year, month, and day value tuple. + * + * @details + * TODO: INCOMPLETE COMMENT!!! + */ +template +using CalendarDateTuple = std::tuple; + } // namespace simplydt #endif // SIMPLYDT_LIB_GENERAL_CALENDAR_DEFINITIONS_H_ From d7c1ba33f1da6f43be6b0146e6c54750008106cf Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sun, 31 Aug 2025 18:19:11 -0400 Subject: [PATCH 258/400] Update stl_chrono_defs.hpp --- include/simplydt/common/stl_chrono_defs.hpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/include/simplydt/common/stl_chrono_defs.hpp b/include/simplydt/common/stl_chrono_defs.hpp index 4969d17..b64e3c7 100644 --- a/include/simplydt/common/stl_chrono_defs.hpp +++ b/include/simplydt/common/stl_chrono_defs.hpp @@ -83,6 +83,15 @@ using UnixTimestamp = int64_t; */ using CalendarDateTime = std::tm; +/*! + * @brief + * Broken-down calendar date structure. + * + * @details + * TODO: INCOMPLETE COMMENT!!! + */ +using CalendarDate = std::chrono::year_month_day; + } // namespace simplydt::stl #endif // SIMPLYDT_LIB_STL_CHRONO_ALIASES_H_ From 0eb6d0da257574d1b063dd0c9c0d7b6a0efb24b0 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sun, 31 Aug 2025 18:19:22 -0400 Subject: [PATCH 259/400] Create helper_algorithms.hpp --- .../calendar/gregorian/helper_algorithms.hpp | 89 +++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 include/simplydt/calendar/gregorian/helper_algorithms.hpp diff --git a/include/simplydt/calendar/gregorian/helper_algorithms.hpp b/include/simplydt/calendar/gregorian/helper_algorithms.hpp new file mode 100644 index 0000000..cf887f8 --- /dev/null +++ b/include/simplydt/calendar/gregorian/helper_algorithms.hpp @@ -0,0 +1,89 @@ + +// Copyright (C) 2026 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. +// Released under the terms of the GNU Affero General Public License version 3. + +// [ISJTB-CXX-XL20230401-000001] + +/*! + * @file helper_algorithms.hpp + * + * @brief + * Gregorian calendar helper algorithms. + */ + + +#ifndef SIMPLYDT_LIB_GREGORIAN_HELPER_ALGORITHMS_H_ +#define SIMPLYDT_LIB_GREGORIAN_HELPER_ALGORITHMS_H_ + +#include "simplydt/calendar/gregorian/gregorian_defs.hpp" +#include "simplydt/common/stl_chrono_defs.hpp" + +namespace simplydt::gregorian +{ + +/*! + * @brief + * Converts a calendar date to serial number + * of days since Unix epoch. + * + * @details + * Uses Howard Hinnant’s civil date algorithm + * to convert a year, month, day combination + * into a signed day count relative to the + * Unix epoch (1970-01-01 = day 0). The result + * can be negative for dates before the epoch. + * + * @return + * Days since January 1, 1970 + */ +[[nodiscard]] constexpr int32_t toDaysSinceEpoch( + Year_Type year, uint8_t month, uint8_t day +) noexcept +{ + // CREDITS: Howard Hinnant [Mr. Chrono] - (Ripple Labs) + // Convert {year, month, day} triple into a serial count of days. + year -= month <= February; + const int era = year / YEARS_IN_ERA; + const unsigned yoe = static_cast(year - era * YEARS_IN_ERA); + const unsigned doy = (153 * (month + (month > February ? -3 : 9)) + 2) / 5 + day - 1; + const unsigned doe = yoe * DAYS_IN_YEAR + yoe / 4 - yoe / 100 + doy; + return static_cast(era * 146'097 + static_cast(doe) - 719'468); +} + +/*! + * @brief + * Converts a serial count of days since Unix + * epoch to calendar date values. + * + * @details + * Uses Howard Hinnant’s civil date algorithm + * to convert a signed day count relative to + * the Unix epoch (1970-01-01 = day 0) into a + * year, month, day combination. Returns a + * `DateTuple` representing the calculated + * civil date in y-m-d order. + * + * @return + * Calendar date values tuple + */ +[[nodiscard]] constexpr DateTuple fromDaysSinceEpoch( + int32_t serial_days +) noexcept +{ + // CREDITS: Howard Hinnant [Mr. Chrono] - (Ripple Labs) + // Convert a serial count of days into a {year, month, day} triple. + serial_days += 719'468; + const int era = (serial_days >= 0 ? serial_days : serial_days - 146'096) / 146'097; + const unsigned doe = static_cast(serial_days - era * 146'097); + const unsigned yoe = (doe - doe / 1'460 + doe / 36'524 - doe / 146'096) / DAYS_IN_YEAR; + const Year_Type y = static_cast(yoe) + era * YEARS_IN_ERA; + const unsigned doy = doe - (DAYS_IN_YEAR * yoe + yoe / 4 - yoe / 100); + const unsigned mp = (5 * doy + 2) / 153; + const uint8_t d = static_cast(doy - (153 * mp + 2) / 5 + 1); + const uint8_t m = static_cast(mp + (mp < 10 ? 3 : -9)); + return DateTuple{y, m, d}; +} + +} // namespace simplydt::gregorian + +#endif // SIMPLYDT_LIB_GREGORIAN_HELPER_ALGORITHMS_H_ From 5863c7f9d2cdba68f38977e7e0c810b258f0e9da Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sun, 31 Aug 2025 18:19:46 -0400 Subject: [PATCH 260/400] Update gregorian_defs.hpp --- .../simplydt/calendar/gregorian/gregorian_defs.hpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_defs.hpp b/include/simplydt/calendar/gregorian/gregorian_defs.hpp index fe6c106..0fbbd86 100644 --- a/include/simplydt/calendar/gregorian/gregorian_defs.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_defs.hpp @@ -15,8 +15,8 @@ #ifndef SIMPLYDT_LIB_GREGORIAN_CALENDAR_DEFINITIONS_H_ #define SIMPLYDT_LIB_GREGORIAN_CALENDAR_DEFINITIONS_H_ +#include "simplydt/common/calendar_defs.hpp" #include -#include #include /*! @@ -39,6 +39,15 @@ namespace simplydt::gregorian */ using Year_Type = uint16_t; +/*! + * @brief + * Gregorian calendar date values tuple. + * + * @details + * TODO: INCOMPLETE COMMENT!!! + */ +using DateTuple = CalendarDateTuple; + /*! * @brief * Minimum supported year value. From 376047efbb31cb5a119a32b6ad447068d89ce6e8 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sun, 31 Aug 2025 18:20:29 -0400 Subject: [PATCH 261/400] Update abstract_date.hpp Incomplete --- .../simplydt/calendar/date/abstract_date.hpp | 209 ++++++++++++++---- 1 file changed, 165 insertions(+), 44 deletions(-) diff --git a/include/simplydt/calendar/date/abstract_date.hpp b/include/simplydt/calendar/date/abstract_date.hpp index 02ecb3f..6d841d8 100644 --- a/include/simplydt/calendar/date/abstract_date.hpp +++ b/include/simplydt/calendar/date/abstract_date.hpp @@ -8,79 +8,200 @@ * @file abstract_date.hpp * * @brief - * Abstract calendar date declaration. + * Base serial calendar date interface declaration. */ -#ifndef SIMPLYDT_LIB_BASE_CALENDAR_DATE_H_ -#define SIMPLYDT_LIB_BASE_CALENDAR_DATE_H_ +#ifndef SIMPLYDT_LIB_BASE_SERIAL_CALENDAR_DATE_INTERFACE_H_ +#define SIMPLYDT_LIB_BASE_SERIAL_CALENDAR_DATE_INTERFACE_H_ -#include "simplydt/common/calendar_defs.hpp" -#include +#include "simplydt/time/units/time_units.hpp" +#include +#include namespace simplydt { /*! * @brief - * Base calendar agnostic date. + * Base calendar date interface. * * @details - * This is a generic representation of a calendar date - * that is not associated with any specific calendar. - * This type is not self-constructable and must be - * inherited by a concrete implementation that presents - * a valid public API. Implementations should seek - * confirmation their API is compliant by invoking the - * date contract enforcement macro just after the body - * of the implementation. Failing to be compliant can - * result in substitution errors or undefined behavior. + * TODO: INCOMPLETE COMMENT!!! */ -template -struct CalendarDate { - /*! @brief Calendar date implementation. */ - using Date = Date_Impl; - /*! @brief Date year type. */ +template +struct SerialCalendarDate { + /*! @brief Calendar date base class. */ + using Base = SerialCalendarDate; + /*! @brief Calendar date validation policy. */ + using ValidationPolicy = Validation_Policy; + /*! @brief Underlying serial date type. */ + using Repr_Type = Repr_T; + /*! @brief Year integer type. */ using YearInt_t = Year_T; + /*! @brief Puts human-readable date string in output stream. */ + friend inline std::ostream& operator<<(std::ostream& os, const Base& serial_date) noexcept + { + os << serial_date.derivedImpl().toStr(); + return os; + } + + /*! @brief Evaluates equivalence of calendar dates. */ + [[nodiscard]] constexpr bool operator==(const Date_Impl date) const noexcept + { + return this->serialDays == date.serialDays; + } + + /*! @brief Determines if left-hand side is sequentially before right-hand side. */ + [[nodiscard]] constexpr bool operator<(const Date_Impl date) const noexcept + { + return this->serialDays < date.serialDays; + } + + /*! @brief Determines if left-hand side is sequentially after right-hand side. */ + [[nodiscard]] constexpr bool operator>(const Date_Impl date) const noexcept + { + return this->serialDays > date.serialDays; + } + + [[nodiscard]] constexpr bool operator<=(const Date_Impl date) const noexcept + { + return this->serialDays <= date.serialDays; + } + + [[nodiscard]] constexpr bool operator>=(const Date_Impl date) const noexcept + { + return this->serialDays >= date.serialDays; + } + + /*! @brief Returns this calendar date with provided amount of days added. */ + [[nodiscard]] constexpr Date_Impl operator+(const Days days) const noexcept + { + Date_Impl displacedDate{this->derivedImpl()}; + displacedDate.serialDays += days.count(); + return displacedDate; + // TODO: This method is not safe nor complete... + // ('days' can underflow or overflow 'serialDays') + } + + /*! @brief Returns this calendar date with provided amount of days subtracted. */ + [[nodiscard]] constexpr Date_Impl operator-(const Days days) const noexcept + { + Date_Impl displacedDate{this->derivedImpl()}; + displacedDate.serialDays -= days.count(); + return displacedDate; + // TODO: This method is not safe nor complete... + // ('days' can underflow or overflow 'serialDays') + } + + /*! @brief Calculates number of days between calendar dates. */ + [[nodiscard]] constexpr Days operator-(const Date_Impl date) const noexcept + { + return Days{this->serialDays - date.serialDays}; + // TODO: This method is not safe nor complete... + // (the math was looking at me funny) + // (no but srsly, the math could overflow) + } + /*! * @brief - * Get specified calendar date component. - * + * Increments calendar date one day. + * * @return - * Requested calendar date component + * Reference to self */ - [[nodiscard]] std::optional getComponent(const CalendarComponent component - ) const + Date_Impl& operator++() noexcept { - switch (component) { - case CalendarComponent::YEAR: - return thisImpl().year(); - case CalendarComponent::MONTH: - return thisImpl().month(); - case CalendarComponent::DAY: - return thisImpl().day(); - default: - return std::nullopt; // Invalid component request - }; + this->serialDays += 1; + return *this; + // TODO: This method is not safe nor complete... + // ('this->serialDays' can overflow) } - private: - CalendarDate() = default; - ~CalendarDate() = default; - friend Date_Impl; + /*! + * @brief + * Increments calendar date one day. + * + * @return + * Copy of previous calendar date + */ + [[nodiscard]] Date_Impl operator++(int) noexcept + { + Date_Impl previousDate{this->derivedImpl()}; + this->serialDays += 1; + return previousDate; + // TODO: This method is not safe nor complete... + // ('this->serialDays' can overflow) + } - [[nodiscard]] const Date& thisImpl() const noexcept + /*! @brief Adds provided amount of days to calendar date. */ + Date_Impl& operator+=(const Days days) noexcept { - return static_cast(*this); + this->serialDays += days.count(); + return *this; + // TODO: This method is not safe nor complete... + // ('days' can underflow or overflow 'this->serialDays') } - [[nodiscard]] Date& thisImpl() noexcept + /*! + * @brief + * Decrements calendar date one day. + * + * @return + * Reference to self + */ + Date_Impl& operator--() noexcept + { + this->serialDays -= 1; + return *this; + // TODO: This method is not safe nor complete... + // ('this->serialDays' can underflow) + } + + /*! + * @brief + * Decrements calendar date one day. + * + * @return + * Copy of previous calendar date + */ + [[nodiscard]] Date_Impl operator--(int) noexcept + { + Date_Impl previousDate{this->derivedImpl()}; + this->serialDays -= 1; + return previousDate; + // TODO: This method is not safe nor complete... + // ('this->serialDays' can underflow) + } + + /*! @brief Subtracts provided amount of days from calendar date. */ + Date_Impl& operator-=(const Days days) noexcept + { + this->serialDays -= days.count(); + return *this; + // TODO: This method is not safe nor complete... + // ('days' can underflow or overflow 'this->serialDays') + } + + // Continue... + + private: + Repr_Type serialDays; + + constexpr SerialCalendarDate(const Repr_Type serialDayCount) noexcept + : serialDays{serialDayCount} + { } + + ~SerialCalendarDate() = default; + friend Date_Impl; + + [[nodiscard]] constexpr Date_Impl& derivedImpl() const noexcept { - return static_cast(*this); + return static_cast(*this); } }; } // namespace simplydt -#endif // SIMPLYDT_LIB_BASE_CALENDAR_DATE_H_ +#endif // SIMPLYDT_LIB_BASE_SERIAL_CALENDAR_DATE_INTERFACE_H_ From 1420d3b8a77264c2e50db7e0eb03c292d940caec Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sun, 31 Aug 2025 18:20:40 -0400 Subject: [PATCH 262/400] Create date_validation.hpp --- .../calendar/gregorian/date_validation.hpp | 160 ++++++++++++++++++ 1 file changed, 160 insertions(+) create mode 100644 include/simplydt/calendar/gregorian/date_validation.hpp diff --git a/include/simplydt/calendar/gregorian/date_validation.hpp b/include/simplydt/calendar/gregorian/date_validation.hpp new file mode 100644 index 0000000..592d0b5 --- /dev/null +++ b/include/simplydt/calendar/gregorian/date_validation.hpp @@ -0,0 +1,160 @@ + +// Copyright (C) 2026 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. +// Released under the terms of the GNU Affero General Public License version 3. + +// [ISJTB-CXX-XL20230401-000001] + +/*! + * @file date_validation.hpp + * + * @brief + * Gregorian calendar date validation policy declaration. + */ + + +#ifndef SIMPLYDT_LIB_GREGORIAN_DATE_VALIDATION_POLICY_H_ +#define SIMPLYDT_LIB_GREGORIAN_DATE_VALIDATION_POLICY_H_ + +#include "simplydt/calendar/gregorian/gregorian_defs.hpp" +#include + +namespace simplydt::gregorian +{ + +/*! + * @brief + * Gregorian calendar date validation policy. + * + * @details + * TODO: INCOMPLETE COMMENT!!! + */ +struct DateValidationPolicy { + /*! + * @brief + * Determines if provided year is a leap year. + * + * @details + * This function checks if the specified year qualifies + * as a leap year under Gregorian calendar rules. A year + * is considered a leap year if it is divisible by 4, + * except for years divisible by 100 unless it is also + * divisible by 400. + * + * @return + * True if leap year + */ + [[nodiscard]] static constexpr bool isLeapYear(const Year_Type year) noexcept + { + return (year % 4) == 0 && (year % 100 != 0 || year % YEARS_IN_ERA == 0); + } + + /*! + * @brief + * Evaluates support of year value. + * + * @details + * This function returns true if the given year falls + * within the inclusive bounds defined by `YEAR_MINIMUM` + * and `YEAR_MAXIMUM` for the Gregorian calendar system. + * + * @return + * True if supported year + */ + [[nodiscard]] static constexpr bool isValidYear(const Year_Type year) noexcept + { + return year >= YEAR_MINIMUM && year <= YEAR_MAXIMUM; + } + + /*! + * @brief + * Checks if a month value is within valid range. + * + * @details + * This function returns true if the given month falls + * within the inclusive bounds defined by + * `MIN_MONTH_OF_YEAR` and `MAX_MONTH_OF_YEAR` for the + * Gregorian calendar system. + * + * @return + * True if valid numerical month + */ + [[nodiscard]] static constexpr bool isValidMonth(const uint8_t month) noexcept + { + return month >= MIN_MONTH_OF_YEAR && month <= MAX_MONTH_OF_YEAR; + } + + /*! + * @brief + * Calculates total number of days in a given month of + * a specified year. + * + * @details + * This function handles the varying lengths of months + * in the Gregorian calendar, including the special + * case of February during a leap year. The function + * first validates the year and month; if either is + * invalid, it returns 0 to indicate an unsupported or + * invalid date value. + * + * @return + * Total days in month + */ + [[nodiscard]] static constexpr uint8_t getDaysInMonth( + const Year_Type year, const uint8_t month + ) noexcept + { + if (!isValidYear(year) || !isValidMonth(month)) + return 0; // Unsupported or invalid + + switch (month) { + case February: + switch (isLeapYear(year)) { + case true: + return 29; + default: + return 28; + } + + case April: + case June: + case September: + case November: + return 30; + + // January, March, May, July, August, October, December + default: + return 31; + } + } + + /*! + * @brief + * Checks if given date values form a valid Gregorian + * date. + * + * @details + * This function returns true when the provided date + * parameters describe a real date on the Gregorian + * calendar. This is achieved by comparing the dates + * day to the total number of days in the month. If + * the provided year is not supported, the function + * returns false. + * + * @return + * True if date exists on calendar + */ + [[nodiscard]] static constexpr bool isValidDate( + const Year_Type year, const uint8_t month, const uint8_t day + ) noexcept + { + if (!isValidYear(year)) + return false; + + const uint8_t monthTotalDays = getDaysInMonth(year, month); + return day <= monthTotalDays; + } +}; + +} // namespace simplydt::gregorian + +#endif // SIMPLYDT_LIB_GREGORIAN_DATE_VALIDATION_POLICY_H_ From 323c3d0127561771ca6255c41a21cbb7567006fe Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sun, 31 Aug 2025 18:21:08 -0400 Subject: [PATCH 263/400] Update gregorian_date.hpp --- .../calendar/gregorian/gregorian_date.hpp | 303 ++---------------- 1 file changed, 25 insertions(+), 278 deletions(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_date.hpp b/include/simplydt/calendar/gregorian/gregorian_date.hpp index 2481efb..ecc61b1 100644 --- a/include/simplydt/calendar/gregorian/gregorian_date.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_date.hpp @@ -12,14 +12,13 @@ */ -#ifndef SIMPLYDT_LIB_GREGORIAN_DATE_STRUCT_H_ -#define SIMPLYDT_LIB_GREGORIAN_DATE_STRUCT_H_ +#ifndef SIMPLYDT_LIB_SERIAL_GREGORIAN_CALENDAR_DATE_H_ +#define SIMPLYDT_LIB_SERIAL_GREGORIAN_CALENDAR_DATE_H_ -#include "simplydt/calendar/concepts/date_contract.hpp" #include "simplydt/calendar/date/abstract_date.hpp" +#include "simplydt/calendar/gregorian/date_validation.hpp" #include "simplydt/calendar/gregorian/gregorian_defs.hpp" -#include "simplydt/common/string_utils.hpp" -#include +#include "simplydt/calendar/gregorian/helper_algorithms.hpp" namespace simplydt::gregorian { @@ -29,107 +28,31 @@ namespace simplydt::gregorian * Gregorian calendar date. * * @details - * This type serves as a broken-down form of - * Gregorian calendar dates and has no calendar - * knowledge. This type does not validate the - * date values provided to the constructor beyond - * disregarding nonsensical values. Such values - * are the kind that could obviously never be a - * date (i.e, 2023-04-32, 2023-15-11, etc). - * Consequently, a well-constructed `GregorianDate` - * does not automatically imply that date exists on - * the real-world calendar. The calendar can verify - * the validity of the date held by this type. + * TODO: INCOMPLETE COMMENT!!! */ -struct GregorianDate final : public CalendarDate { - /*! @brief Underlying date representation type. */ - using Repr_Type = uint32_t; - - /*! @brief Factor used to store and retrieve year values. */ - static constexpr Repr_Type YEAR_FACTOR = 10'000; - - /*! @brief Factor used to store and retrieve month values. */ - static constexpr Repr_Type MONTH_FACTOR = 100; - - /*! @brief Default Gregorian calendar date. */ - static constexpr Repr_Type DEFAULT_DATE = ((1'970 * YEAR_FACTOR) + 101); - +struct GregorianDate : + public SerialCalendarDate { /*! * @brief - * Encoded Gregorian calendar date to integer. - * + * Intercepts invalid date constructor values. + * + * @details + * TODO: INCOMPLETE COMMENT!!! + * * @return - * Gregorian calendar date as integer + * Provided date in serial days if valid, epoch + * otherwise */ - static constexpr Repr_Type encodeGregorianDateToInteger( + static constexpr Repr_Type useDefaultIfInvalid( const YearInt_t year, const uint8_t month, const uint8_t day ) noexcept { - if ((year < YEAR_MINIMUM) || (year > YEAR_MAXIMUM) || (month < MIN_MONTH_OF_YEAR) || - (month > MAX_MONTH_OF_YEAR) || (day < MIN_DAY_OF_MONTH) || - (day > MAX_DAY_OF_MONTH)) - return 0; // Invalid date params - - return ((year * YEAR_FACTOR) + (month * MONTH_FACTOR) + day); + if (!ValidationPolicy::isValidDate(year, month, day)) + return 0; // Serial epoch + + return toDaysSinceEpoch(year, month, day); } - - /*! - * @brief - * Intercept invalid signal from date encoding and return - * default date. - * - * @details - * This is a compile-time helper for the `GregorianDate` - * constructors. Non-zero values pass through this method - * while zeros are intercepted and yeild the default date. - * - * @return - * Valid encoded date, default date otherwise - */ - static constexpr Repr_Type useDefaultIfInvalid(const Repr_Type& encoded_date) noexcept - { - return (encoded_date == 0) ? DEFAULT_DATE : encoded_date; - } - - /*! - * @brief - * Retrieve year component from encoded Gregorian - * date integer. - * - * @return - * Gregorian date year component - */ - static constexpr YearInt_t extractEncodedYear(const Repr_Type& encoded_date) noexcept - { - return static_cast(encoded_date / YEAR_FACTOR); - } - - /*! - * @brief - * Retrieve month component from encoded Gregorian - * date integer. - * - * @return - * Gregorian date month component - */ - static constexpr uint8_t extractEncodedMonth(const Repr_Type& encoded_date) noexcept - { - return static_cast((encoded_date % YEAR_FACTOR) / MONTH_FACTOR); - } - - /*! - * @brief - * Retrieve day component from encoded Gregorian - * date integer. - * - * @return - * Gregorian date day component - */ - static constexpr uint8_t extractEncodedDay(const Repr_Type& encoded_date) noexcept - { - return static_cast((encoded_date % YEAR_FACTOR) % MONTH_FACTOR); - } - + /*! * @brief * Construct Gregorian calendar date using year, @@ -138,190 +61,14 @@ struct GregorianDate final : public CalendarDate { constexpr GregorianDate( const YearInt_t year, const uint8_t month, const uint8_t day ) noexcept - : CalendarDate{}, - date{useDefaultIfInvalid(encodeGregorianDateToInteger(year, month, day))} - { - // - } - - /*! - * @brief - * Construct Gregorian calendar date using year - * and month values; assume first of month. - */ - constexpr GregorianDate(const YearInt_t year, const uint8_t month) noexcept - : CalendarDate{}, - date{useDefaultIfInvalid(encodeGregorianDateToInteger(year, month, 1))} - { - // - } - - /*! - * @brief - * Construct default Gregorian calendar date. - */ - constexpr GregorianDate() noexcept - : CalendarDate{}, date{DEFAULT_DATE} - { - // - } + : SerialCalendarDate{ + useDefaultIfInvalid(year, month, day) + } + { } ~GregorianDate() = default; - - friend inline std::ostream& operator<<(std::ostream& os, const GregorianDate date) noexcept - { - os << date.toStr(); - return os; - } - - /*! @brief Evaluate equivalence of Gregorian dates. */ - [[nodiscard]] constexpr bool operator==(const GregorianDate date) const noexcept - { - return this->date == date.date; - } - - /*! @brief Determine if left-hand side is sequentially before right-hand side. */ - [[nodiscard]] constexpr bool operator<(const GregorianDate date) const noexcept - { - return this->date < date.date; - } - - /*! @brief Determine if left-hand side is sequentially after right-hand side. */ - [[nodiscard]] constexpr bool operator>(const GregorianDate date) const noexcept - { - return this->date > date.date; - } - - [[nodiscard]] constexpr bool operator<=(const GregorianDate date) const noexcept - { - return this->date <= date.date; - } - - [[nodiscard]] constexpr bool operator>=(const GregorianDate date) const noexcept - { - return this->date >= date.date; - } - - /*! @brief Index Gregorian calendar date components. */ - [[nodiscard]] std::optional operator[](const CalendarComponent component - ) const noexcept - { - return this->getComponent(component); - } - - /*! - * @brief - * Evaluate if date is epoch. - * - * @return - * True if date is epoch date - */ - [[nodiscard]] constexpr bool isDefault() const noexcept - { - return this->date == DEFAULT_DATE; - } - - /*! - * @brief - * Date year component. - * - * @return - * Year of Gregorian calendar date - */ - [[nodiscard]] constexpr YearInt_t year() const noexcept - { - return extractEncodedYear(this->date); - } - - /*! - * @brief - * Date month component. - * - * @return - * Month of Gregorian calendar date - */ - [[nodiscard]] constexpr uint8_t month() const noexcept - { - return extractEncodedMonth(this->date); - } - - /*! - * @brief - * Month name. - * - * @return - * Month literal - */ - [[nodiscard]] constexpr const char* monthStr() const noexcept - { - const uint8_t monthIndex = extractEncodedMonth(this->date) - 1; - return Months[monthIndex]; - } - - /*! - * @brief - * Abbreviated month name. - * - * @return - * Abbreviated month literal - */ - [[nodiscard]] constexpr std::string monthAbbreviation() const noexcept - { - const uint8_t monthIndex = extractEncodedMonth(this->date) - 1; - return std::string{MonthAbbrevs[monthIndex]}; - } - - /*! - * @brief - * Date day component. - * - * @return - * Day of Gregorian calendar date - */ - [[nodiscard]] constexpr uint8_t day() const noexcept - { - return extractEncodedDay(this->date); - } - - /*! - * @brief - * Compose string representation of Gregorian - * calendar date. - * - * @return - * Gregorian calendar date as string - */ - [[nodiscard]] std::string toStr() const noexcept - { - const char delimiter = '-'; - - std::string dateStr; - dateStr.reserve(12); - dateStr += (std::to_string(this->year()) + delimiter); - dateStr += (toDoubleDigitStr(this->month()) + delimiter); - dateStr += toDoubleDigitStr(this->day()); - return dateStr; - } - - /*! - * @brief - * Returns underlying representation of Gregorian - * calendar date. - * - * @return - * Gregorian calendar date as integer - */ - [[nodiscard]] constexpr Repr_Type underlying() const noexcept - { - return this->date; - } - - private: - Repr_Type date; ///< Calendar date }; -SIMPLYDT_ENFORCE_DATE_CONTRACT(GregorianDate); - } // namespace simplydt::gregorian -#endif // SIMPLYDT_LIB_GREGORIAN_DATE_STRUCT_H_ +#endif // SIMPLYDT_LIB_SERIAL_GREGORIAN_CALENDAR_DATE_H_ From b91ac273db19ed12bcc71f3ce78eabfb04ac9b02 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sun, 31 Aug 2025 18:23:29 -0400 Subject: [PATCH 264/400] Update date_validation.hpp --- .../calendar/gregorian/date_validation.hpp | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/include/simplydt/calendar/gregorian/date_validation.hpp b/include/simplydt/calendar/gregorian/date_validation.hpp index 592d0b5..15eb869 100644 --- a/include/simplydt/calendar/gregorian/date_validation.hpp +++ b/include/simplydt/calendar/gregorian/date_validation.hpp @@ -32,14 +32,14 @@ struct DateValidationPolicy { /*! * @brief * Determines if provided year is a leap year. - * + * * @details * This function checks if the specified year qualifies * as a leap year under Gregorian calendar rules. A year * is considered a leap year if it is divisible by 4, * except for years divisible by 100 unless it is also * divisible by 400. - * + * * @return * True if leap year */ @@ -51,12 +51,12 @@ struct DateValidationPolicy { /*! * @brief * Evaluates support of year value. - * + * * @details * This function returns true if the given year falls * within the inclusive bounds defined by `YEAR_MINIMUM` * and `YEAR_MAXIMUM` for the Gregorian calendar system. - * + * * @return * True if supported year */ @@ -68,13 +68,13 @@ struct DateValidationPolicy { /*! * @brief * Checks if a month value is within valid range. - * + * * @details * This function returns true if the given month falls * within the inclusive bounds defined by * `MIN_MONTH_OF_YEAR` and `MAX_MONTH_OF_YEAR` for the * Gregorian calendar system. - * + * * @return * True if valid numerical month */ @@ -87,7 +87,7 @@ struct DateValidationPolicy { * @brief * Calculates total number of days in a given month of * a specified year. - * + * * @details * This function handles the varying lengths of months * in the Gregorian calendar, including the special @@ -95,7 +95,7 @@ struct DateValidationPolicy { * first validates the year and month; if either is * invalid, it returns 0 to indicate an unsupported or * invalid date value. - * + * * @return * Total days in month */ @@ -105,7 +105,7 @@ struct DateValidationPolicy { { if (!isValidYear(year) || !isValidMonth(month)) return 0; // Unsupported or invalid - + switch (month) { case February: switch (isLeapYear(year)) { @@ -120,7 +120,7 @@ struct DateValidationPolicy { case September: case November: return 30; - + // January, March, May, July, August, October, December default: return 31; @@ -131,7 +131,7 @@ struct DateValidationPolicy { * @brief * Checks if given date values form a valid Gregorian * date. - * + * * @details * This function returns true when the provided date * parameters describe a real date on the Gregorian @@ -139,7 +139,7 @@ struct DateValidationPolicy { * day to the total number of days in the month. If * the provided year is not supported, the function * returns false. - * + * * @return * True if date exists on calendar */ @@ -149,7 +149,7 @@ struct DateValidationPolicy { { if (!isValidYear(year)) return false; - + const uint8_t monthTotalDays = getDaysInMonth(year, month); return day <= monthTotalDays; } From 17d31203bc04ec524a8f66df0f3b5ce2eb5bb8b1 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sun, 31 Aug 2025 18:23:41 -0400 Subject: [PATCH 265/400] Update gregorian_date.hpp --- .../simplydt/calendar/gregorian/gregorian_date.hpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_date.hpp b/include/simplydt/calendar/gregorian/gregorian_date.hpp index ecc61b1..8424b36 100644 --- a/include/simplydt/calendar/gregorian/gregorian_date.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_date.hpp @@ -35,10 +35,10 @@ struct GregorianDate : /*! * @brief * Intercepts invalid date constructor values. - * + * * @details * TODO: INCOMPLETE COMMENT!!! - * + * * @return * Provided date in serial days if valid, epoch * otherwise @@ -49,10 +49,10 @@ struct GregorianDate : { if (!ValidationPolicy::isValidDate(year, month, day)) return 0; // Serial epoch - + return toDaysSinceEpoch(year, month, day); } - + /*! * @brief * Construct Gregorian calendar date using year, @@ -62,8 +62,8 @@ struct GregorianDate : const YearInt_t year, const uint8_t month, const uint8_t day ) noexcept : SerialCalendarDate{ - useDefaultIfInvalid(year, month, day) - } + useDefaultIfInvalid(year, month, day) + } { } ~GregorianDate() = default; From 048031590bc2200e9ef5580222da34b7cfb15418 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sun, 31 Aug 2025 18:23:48 -0400 Subject: [PATCH 266/400] Update gregorian_defs.hpp --- include/simplydt/calendar/gregorian/gregorian_defs.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_defs.hpp b/include/simplydt/calendar/gregorian/gregorian_defs.hpp index 0fbbd86..9fc24c5 100644 --- a/include/simplydt/calendar/gregorian/gregorian_defs.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_defs.hpp @@ -42,7 +42,7 @@ using Year_Type = uint16_t; /*! * @brief * Gregorian calendar date values tuple. - * + * * @details * TODO: INCOMPLETE COMMENT!!! */ From e60a5bfb76c3271e2d64854d2417a03f61f77808 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sun, 31 Aug 2025 18:24:19 -0400 Subject: [PATCH 267/400] Update helper_algorithms.hpp --- .../calendar/gregorian/helper_algorithms.hpp | 20 +++++++++---------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/include/simplydt/calendar/gregorian/helper_algorithms.hpp b/include/simplydt/calendar/gregorian/helper_algorithms.hpp index cf887f8..3630ebe 100644 --- a/include/simplydt/calendar/gregorian/helper_algorithms.hpp +++ b/include/simplydt/calendar/gregorian/helper_algorithms.hpp @@ -25,14 +25,14 @@ namespace simplydt::gregorian * @brief * Converts a calendar date to serial number * of days since Unix epoch. - * + * * @details * Uses Howard Hinnant’s civil date algorithm * to convert a year, month, day combination * into a signed day count relative to the * Unix epoch (1970-01-01 = day 0). The result * can be negative for dates before the epoch. - * + * * @return * Days since January 1, 1970 */ @@ -54,7 +54,7 @@ namespace simplydt::gregorian * @brief * Converts a serial count of days since Unix * epoch to calendar date values. - * + * * @details * Uses Howard Hinnant’s civil date algorithm * to convert a signed day count relative to @@ -62,25 +62,23 @@ namespace simplydt::gregorian * year, month, day combination. Returns a * `DateTuple` representing the calculated * civil date in y-m-d order. - * + * * @return * Calendar date values tuple */ -[[nodiscard]] constexpr DateTuple fromDaysSinceEpoch( - int32_t serial_days -) noexcept +[[nodiscard]] constexpr DateTuple fromDaysSinceEpoch(int32_t serial_days) noexcept { // CREDITS: Howard Hinnant [Mr. Chrono] - (Ripple Labs) // Convert a serial count of days into a {year, month, day} triple. serial_days += 719'468; - const int era = (serial_days >= 0 ? serial_days : serial_days - 146'096) / 146'097; + const int era = (serial_days >= 0 ? serial_days : serial_days - 146'096) / 146'097; const unsigned doe = static_cast(serial_days - era * 146'097); const unsigned yoe = (doe - doe / 1'460 + doe / 36'524 - doe / 146'096) / DAYS_IN_YEAR; - const Year_Type y = static_cast(yoe) + era * YEARS_IN_ERA; + const Year_Type y = static_cast(yoe) + era * YEARS_IN_ERA; const unsigned doy = doe - (DAYS_IN_YEAR * yoe + yoe / 4 - yoe / 100); const unsigned mp = (5 * doy + 2) / 153; - const uint8_t d = static_cast(doy - (153 * mp + 2) / 5 + 1); - const uint8_t m = static_cast(mp + (mp < 10 ? 3 : -9)); + const uint8_t d = static_cast(doy - (153 * mp + 2) / 5 + 1); + const uint8_t m = static_cast(mp + (mp < 10 ? 3 : -9)); return DateTuple{y, m, d}; } From fe939dbfc1836b18a8ea4169649a39f17e531d7e Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sun, 31 Aug 2025 18:24:22 -0400 Subject: [PATCH 268/400] Update calendar_defs.hpp --- include/simplydt/common/calendar_defs.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/simplydt/common/calendar_defs.hpp b/include/simplydt/common/calendar_defs.hpp index 2bb4ff7..3481d51 100644 --- a/include/simplydt/common/calendar_defs.hpp +++ b/include/simplydt/common/calendar_defs.hpp @@ -44,7 +44,7 @@ enum class CalendarComponent : uint8_t { /*! * @brief * Calendar year, month, and day value tuple. - * + * * @details * TODO: INCOMPLETE COMMENT!!! */ From 516dfd297d8e9a26b319f0f641f22cfa1d16ba58 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sun, 31 Aug 2025 18:24:27 -0400 Subject: [PATCH 269/400] Update stl_chrono_defs.hpp --- include/simplydt/common/stl_chrono_defs.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/simplydt/common/stl_chrono_defs.hpp b/include/simplydt/common/stl_chrono_defs.hpp index b64e3c7..983eb9b 100644 --- a/include/simplydt/common/stl_chrono_defs.hpp +++ b/include/simplydt/common/stl_chrono_defs.hpp @@ -86,7 +86,7 @@ using CalendarDateTime = std::tm; /*! * @brief * Broken-down calendar date structure. - * + * * @details * TODO: INCOMPLETE COMMENT!!! */ From 2843ca8fdd8eb35b837f7624ef127f70d3549a98 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 1 Sep 2025 03:08:50 -0400 Subject: [PATCH 270/400] Update diagrams.drawio --- docs/prj/diagrams.drawio | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/prj/diagrams.drawio b/docs/prj/diagrams.drawio index 317fa20..e0589ec 100644 --- a/docs/prj/diagrams.drawio +++ b/docs/prj/diagrams.drawio @@ -301,13 +301,13 @@ - + - + - + @@ -326,19 +326,19 @@ - + - + - + - + - + From ebae0a475906a14e74bfc48e9e28213a73e41bc1 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 1 Sep 2025 03:09:02 -0400 Subject: [PATCH 271/400] Update abstract_date.hpp --- .../simplydt/calendar/date/abstract_date.hpp | 155 +++++++++++++++--- 1 file changed, 135 insertions(+), 20 deletions(-) diff --git a/include/simplydt/calendar/date/abstract_date.hpp b/include/simplydt/calendar/date/abstract_date.hpp index 6d841d8..f910fcb 100644 --- a/include/simplydt/calendar/date/abstract_date.hpp +++ b/include/simplydt/calendar/date/abstract_date.hpp @@ -27,7 +27,36 @@ namespace simplydt * Base calendar date interface. * * @details - * TODO: INCOMPLETE COMMENT!!! + * This is the foundational interface for serial calendar + * dates in Simply Datetime. It is agnostic of any specific + * calendar and allows derivatives to define their own + * implementation. Note that the assumption is made that + * the calendar model in question utilizes year, month, + * and day values to describe a date in time. This type + * is not meant to have calendar knowledge, its purpose + * is to point to a valid date on the calendar it is + * designed for. Simply Datetime relies on the object + * invariant that any constructed instance of this type + * represents a valid calendar date. Each implementation is + * responsible for enforcing this invariant to prevent bugs + * and undefined behavior. This structure timekeeps dates + * using a serial count of days relative to some epoch date. + * The provided underlying serial date representation type + * `Repr_T` is initialized in this base class but can also + * be accessed by the derived calendar date implementation. + * The class hierarchy implements the CRTP design pattern + * which allows this base to reference the derivative. + * Consequently, the convenience methods defined in this + * base structure depend on the concrete calendar dates + * public API for them to be well-formed. A derivative is + * expected to present the appropriate attributes and + * methods, which can be verified by invoking the contract + * enforcement macro (`SIMPLYDT_ENFORCE_DATE_CONTRACT`) + * just after the body of the implementation. Failing to + * have a compliant API can result in substitution errors + * or undefined behavior. This is not a self-constructable + * type, it must be inherited by a concrete implementation + * that presents the expected (public) API. */ template struct SerialCalendarDate { @@ -48,31 +77,31 @@ struct SerialCalendarDate { } /*! @brief Evaluates equivalence of calendar dates. */ - [[nodiscard]] constexpr bool operator==(const Date_Impl date) const noexcept + [[nodiscard]] constexpr bool operator==(const Base& serial_date) const noexcept { - return this->serialDays == date.serialDays; + return this->serialDays == serial_date.serialDays; } /*! @brief Determines if left-hand side is sequentially before right-hand side. */ - [[nodiscard]] constexpr bool operator<(const Date_Impl date) const noexcept + [[nodiscard]] constexpr bool operator<(const Base& serial_date) const noexcept { - return this->serialDays < date.serialDays; + return this->serialDays < serial_date.serialDays; } /*! @brief Determines if left-hand side is sequentially after right-hand side. */ - [[nodiscard]] constexpr bool operator>(const Date_Impl date) const noexcept + [[nodiscard]] constexpr bool operator>(const Base& serial_date) const noexcept { - return this->serialDays > date.serialDays; + return this->serialDays > serial_date.serialDays; } - [[nodiscard]] constexpr bool operator<=(const Date_Impl date) const noexcept + [[nodiscard]] constexpr bool operator<=(const Base& serial_date) const noexcept { - return this->serialDays <= date.serialDays; + return this->serialDays <= serial_date.serialDays; } - [[nodiscard]] constexpr bool operator>=(const Date_Impl date) const noexcept + [[nodiscard]] constexpr bool operator>=(const Base& serial_date) const noexcept { - return this->serialDays >= date.serialDays; + return this->serialDays >= serial_date.serialDays; } /*! @brief Returns this calendar date with provided amount of days added. */ @@ -99,9 +128,6 @@ struct SerialCalendarDate { [[nodiscard]] constexpr Days operator-(const Date_Impl date) const noexcept { return Days{this->serialDays - date.serialDays}; - // TODO: This method is not safe nor complete... - // (the math was looking at me funny) - // (no but srsly, the math could overflow) } /*! @@ -114,7 +140,7 @@ struct SerialCalendarDate { Date_Impl& operator++() noexcept { this->serialDays += 1; - return *this; + return static_cast(*this); // TODO: This method is not safe nor complete... // ('this->serialDays' can overflow) } @@ -139,7 +165,7 @@ struct SerialCalendarDate { Date_Impl& operator+=(const Days days) noexcept { this->serialDays += days.count(); - return *this; + return static_cast(*this); // TODO: This method is not safe nor complete... // ('days' can underflow or overflow 'this->serialDays') } @@ -154,7 +180,7 @@ struct SerialCalendarDate { Date_Impl& operator--() noexcept { this->serialDays -= 1; - return *this; + return static_cast(*this); // TODO: This method is not safe nor complete... // ('this->serialDays' can underflow) } @@ -179,16 +205,97 @@ struct SerialCalendarDate { Date_Impl& operator-=(const Days days) noexcept { this->serialDays -= days.count(); - return *this; + return static_cast(*this); // TODO: This method is not safe nor complete... // ('days' can underflow or overflow 'this->serialDays') } - // Continue... + /*! + * @brief + * Determines if calendar date is epoch date. + * + * @return + * True if serial day count is zero + */ + [[nodiscard]] constexpr bool isZero() const noexcept + { + return this->serialDays == 0; + } + + /*! + * @brief + * Determines if date is sequentially before provided + * date. + * + * @return + * True if this date occurs before provided + */ + [[nodiscard]] constexpr bool isBefore(const Date_Impl date) const noexcept + { + return this->serialDays < date.serialDays; + } + + /*! + * @brief + * Determines if date is sequentially after provided + * date. + * + * @return + * True if this date occurs after provided + */ + [[nodiscard]] constexpr bool isAfter(const Date_Impl date) const noexcept + { + return this->serialDays > date.serialDays; + } + + /*! + * @brief + * Determines if date is sequentially between two + * dates. + * + * @details + * TODO: INCOMPLETE COMMENT!!! + * + * @return + * True if this date occurs between provided dates + */ + [[nodiscard]] constexpr bool isBetween(const Date_Impl start_date, const Date_Impl end_date) const noexcept + { + return start_date.serialDays <= this->serialDays && this->serialDays <= end_date.serialDays; + } + + /*! + * @brief + * Calculates number of days between dates. + * + * @details + * TODO: INCOMPLETE COMMENT!!! + * + * @return + * Days from this date to provided + */ + [[nodiscard]] constexpr Days daysUntil(const Date_Impl date) const noexcept + { + return Days{date.serialDays - this->serialDays}; + } + + /*! + * @brief + * Returns constant reference to underlying serial + * day count. + * + * @return + * Constant reference to serial day count + */ + [[nodiscard]] constexpr const Repr_Type& underlying() const noexcept + { + return this->serialDays; + } private: Repr_Type serialDays; + /*! @brief Construct calendar date with serial day count. */ constexpr SerialCalendarDate(const Repr_Type serialDayCount) noexcept : serialDays{serialDayCount} { } @@ -196,7 +303,15 @@ struct SerialCalendarDate { ~SerialCalendarDate() = default; friend Date_Impl; - [[nodiscard]] constexpr Date_Impl& derivedImpl() const noexcept + /*! + * @brief + * Returns constant reference to this concrete derivative. + * + * @note + * Do not call this from the derived class, YOU are the + * `derivedImpl()` (a.k.a `this`) + */ + [[nodiscard]] constexpr const Date_Impl& derivedImpl() const noexcept { return static_cast(*this); } From 5439a951eee1f5a26dd68aa6f97e8417d7c8b7b8 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 1 Sep 2025 03:09:23 -0400 Subject: [PATCH 272/400] Update gregorian_date.hpp --- include/simplydt/calendar/gregorian/gregorian_date.hpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_date.hpp b/include/simplydt/calendar/gregorian/gregorian_date.hpp index 8424b36..2db9877 100644 --- a/include/simplydt/calendar/gregorian/gregorian_date.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_date.hpp @@ -32,6 +32,9 @@ namespace simplydt::gregorian */ struct GregorianDate : public SerialCalendarDate { + /*! @brief Epoch date in serial form. */ + static constexpr Repr_Type SERIAL_EPOCH = 0; + /*! * @brief * Intercepts invalid date constructor values. @@ -48,7 +51,7 @@ struct GregorianDate : ) noexcept { if (!ValidationPolicy::isValidDate(year, month, day)) - return 0; // Serial epoch + return SERIAL_EPOCH; return toDaysSinceEpoch(year, month, day); } From 15a01264adc601995a481bfea6a7af0ff6f95abf Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 1 Sep 2025 03:11:02 -0400 Subject: [PATCH 273/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 131 +++++++++++++++++++++++++++--------------- 1 file changed, 86 insertions(+), 45 deletions(-) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index 3f50936..73dcb2a 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -30,57 +30,98 @@ \* /// \\\ /// \\\ /// | END | \\\ /// \\\ /// \\\ */ // Includes... -#include "simplydt/calendar/gregorian/gregorian_calendar.hpp" -#include "simplydt/time/utc/utc_time.hpp" -#include "simplydt/common/time_defs.hpp" +#include "simplydt/calendar/gregorian/gregorian_date.hpp" int main(int argc, char* argv[]) { ProjectInfoOut(); //\\// - using GregorianDate = simplydt::gregorian::GregorianDate; - using GregorianCalendar = simplydt::gregorian::GregorianCalendar; - using Month = simplydt::gregorian::Month; - using UnixTimestamp = simplydt::stl::UnixTimestamp; - using UTCTime = simplydt::utc::UTCTime; - - const GregorianDate blizz = GregorianCalendar::getDate(simplydt::stl::SystemClock::now()); - constexpr GregorianDate demo = - GregorianCalendar::getDate(2'025, simplydt::gregorian::AUGUST, 29); - std::cout << "\nDemo date: " << demo << '\n'; - - constexpr bool isValid = GregorianCalendar::isValidDate(demo); - constexpr uint8_t noWeeks = GregorianCalendar::getWeeksInMonth(demo); - constexpr const char* month = GregorianCalendar::getMonthName(demo); - constexpr simplydt::gregorian::Month monthRepr = GregorianCalendar::getMonthEnumRepr(demo); - constexpr const char* dowName = GregorianCalendar::getDayOfWeekName(demo); - constexpr std::string_view dowShort = GregorianCalendar::getDayOfWeekAbbrev(demo); - constexpr bool isLeap = GregorianCalendar::isLeapYear(demo); - constexpr uint16_t daysInYr = GregorianCalendar::getDaysInYear(demo); - constexpr simplydt::gregorian::DayOfWeek dowRepr = - GregorianCalendar::getDayOfWeekEnumRepr(demo); - constexpr UnixTimestamp serialDays = GregorianCalendar::toDaysSinceEpoch(demo); - constexpr GregorianDate fromSerial = GregorianCalendar::fromDaysSinceEpoch(0); - constexpr UnixTimestamp tzz = - GregorianCalendar::toUnixTimestamp(GregorianDate{2'004, 9, 17}); - constexpr GregorianDate zzt = - GregorianCalendar::fromUnixTimestamp(1'095'379'200); // 2004-09-17T00:00:00.00 - const GregorianDate bzr = - GregorianCalendar::fromTimePoint(std::chrono::system_clock::now(), false); - std::cout << bzr << '\n'; - - constexpr UTCTime dvq = UTCTime{14, 37, 48}; - constexpr UTCTime gbx = UTCTime{simplydt::Hours{23} + simplydt::Minutes{15}}; - // constexpr bool eqlTst = dvq == dvq; - constexpr uint8_t hr = dvq.hour12(); - constexpr uint8_t min = dvq.minute(); - constexpr uint8_t sec = dvq.second(); - constexpr simplydt::MeridiemPhase mdx = dvq.hourPhaseEnumRepr(); - constexpr const char* mmq = dvq.hourPhaseStr(); - std::cout << "UTC Time: " << dvq << '\n'; - constexpr simplydt::Seconds evv = dvq.toSerialSeconds(); - //constexpr GregorianDate next = GregorianCalendar::getNextDate(demo, simplydt::gregorian::FRIDAY); + using Date = simplydt::gregorian::GregorianDate; + using Days = simplydt::Days; + + constexpr Date todayDate{2025, 9, 1}; ///<---(The focus) + constexpr Date pastDate{2025, 8, 1}; + + // GregorianDate constexpr tests: + { + constexpr bool eq = todayDate == pastDate; + constexpr bool lt = todayDate < pastDate; + constexpr bool gt = todayDate > pastDate; + constexpr bool lte = todayDate <= pastDate; + constexpr bool gte = todayDate >= pastDate; + + constexpr Date pd = todayDate + Days{7}; + constexpr Date md = todayDate - Days{7}; + constexpr Days diff1 = todayDate - pastDate; + constexpr Days diff2 = pastDate - todayDate; + constexpr Date arith = pastDate + (todayDate - pastDate); + + constexpr bool zro = todayDate.isZero(); + constexpr bool ftr = todayDate.isAfter(pastDate); + constexpr bool pst = todayDate.isBefore(pastDate); + constexpr bool btw = todayDate.isBetween(pastDate, todayDate); + constexpr Days ntl = pastDate.daysUntil(todayDate); + constexpr int32_t tck = todayDate.underlying(); + } + + // GregorianDate increment/decrement tests: + { + Date today = todayDate; + Date next = ++today; + next = today++; + + Date yesterday = todayDate - Days{1}; + Date last = --yesterday; + last = yesterday--; + + next += Days{15}; + last -= Days{10}; + } + + //_SUSPEND_// const GregorianDate blizz = + // GregorianCalendar::getDate(simplydt::stl::SystemClock::now()); + //_SUSPEND_// constexpr GregorianDate demo = + //_SUSPEND_// GregorianCalendar::getDate(2'025, simplydt::gregorian::AUGUST, 29); + //_SUSPEND_// std::cout << "\nDemo date: " << demo << '\n'; + + //_SUSPEND_// constexpr bool isValid = + // GregorianCalendar::isValidDate(demo); + //_SUSPEND_// constexpr uint8_t noWeeks = + // GregorianCalendar::getWeeksInMonth(demo); + //_SUSPEND_// constexpr const char* month = + // GregorianCalendar::getMonthName(demo); + //_SUSPEND_// constexpr simplydt::gregorian::Month monthRepr = + // GregorianCalendar::getMonthEnumRepr(demo); + //_SUSPEND_// constexpr const char* dowName = + // GregorianCalendar::getDayOfWeekName(demo); + //_SUSPEND_// constexpr std::string_view dowShort = GregorianCalendar::getDayOfWeekAbbrev(demo); + //_SUSPEND_// constexpr bool isLeap = GregorianCalendar::isLeapYear(demo); + //_SUSPEND_// constexpr uint16_t daysInYr = GregorianCalendar::getDaysInYear(demo); + //_SUSPEND_// constexpr simplydt::gregorian::DayOfWeek dowRepr = + //_SUSPEND_// GregorianCalendar::getDayOfWeekEnumRepr(demo); + //_SUSPEND_// constexpr UnixTimestamp serialDays = GregorianCalendar::toDaysSinceEpoch(demo); + //_SUSPEND_// constexpr GregorianDate fromSerial = GregorianCalendar::fromDaysSinceEpoch(0); + //_SUSPEND_// constexpr UnixTimestamp tzz = + //_SUSPEND_// GregorianCalendar::toUnixTimestamp(GregorianDate{2'004, 9, 17}); + //_SUSPEND_// constexpr GregorianDate zzt = + //_SUSPEND_// GregorianCalendar::fromUnixTimestamp(1'095'379'200); // 2004-09-17T00:00:00.00 + //_SUSPEND_// const GregorianDate bzr = + //_SUSPEND_// GregorianCalendar::fromTimePoint(std::chrono::system_clock::now(), false); + //_SUSPEND_// std::cout << bzr << '\n'; + + //_SUSPEND_// constexpr UTCTime dvq = UTCTime{14, 37, 48}; + //_SUSPEND_// constexpr UTCTime gbx = UTCTime{simplydt::Hours{23} + simplydt::Minutes{15}}; + //_SUSPEND_// // constexpr bool eqlTst = dvq == dvq; + //_SUSPEND_// constexpr uint8_t hr = dvq.hour12(); + //_SUSPEND_// constexpr uint8_t min = dvq.minute(); + //_SUSPEND_// constexpr uint8_t sec = dvq.second(); + //_SUSPEND_// constexpr simplydt::MeridiemPhase mdx = dvq.hourPhaseEnumRepr(); + //_SUSPEND_// constexpr const char* mmq = dvq.hourPhaseStr(); + //_SUSPEND_// std::cout << "UTC Time: " << dvq << '\n'; + //_SUSPEND_// constexpr simplydt::Seconds evv = dvq.toSerialSeconds(); + // constexpr GregorianDate next = GregorianCalendar::getNextDate(demo, + // simplydt::gregorian::FRIDAY); // std::cout << "\n\n\t[ Complete ]" << std::endl; From 4340a16c5e94ccb5b76280abf323747225862660 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 1 Sep 2025 03:27:15 -0400 Subject: [PATCH 274/400] Update abstract_date.hpp --- .../simplydt/calendar/date/abstract_date.hpp | 25 +++++++++++-------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/include/simplydt/calendar/date/abstract_date.hpp b/include/simplydt/calendar/date/abstract_date.hpp index f910fcb..cac6421 100644 --- a/include/simplydt/calendar/date/abstract_date.hpp +++ b/include/simplydt/calendar/date/abstract_date.hpp @@ -213,7 +213,7 @@ struct SerialCalendarDate { /*! * @brief * Determines if calendar date is epoch date. - * + * * @return * True if serial day count is zero */ @@ -226,7 +226,7 @@ struct SerialCalendarDate { * @brief * Determines if date is sequentially before provided * date. - * + * * @return * True if this date occurs before provided */ @@ -239,7 +239,7 @@ struct SerialCalendarDate { * @brief * Determines if date is sequentially after provided * date. - * + * * @return * True if this date occurs after provided */ @@ -252,25 +252,28 @@ struct SerialCalendarDate { * @brief * Determines if date is sequentially between two * dates. - * + * * @details * TODO: INCOMPLETE COMMENT!!! - * + * * @return * True if this date occurs between provided dates */ - [[nodiscard]] constexpr bool isBetween(const Date_Impl start_date, const Date_Impl end_date) const noexcept + [[nodiscard]] constexpr bool isBetween( + const Date_Impl start_date, const Date_Impl end_date + ) const noexcept { - return start_date.serialDays <= this->serialDays && this->serialDays <= end_date.serialDays; + return start_date.serialDays <= this->serialDays && + this->serialDays <= end_date.serialDays; } /*! * @brief * Calculates number of days between dates. - * + * * @details * TODO: INCOMPLETE COMMENT!!! - * + * * @return * Days from this date to provided */ @@ -283,7 +286,7 @@ struct SerialCalendarDate { * @brief * Returns constant reference to underlying serial * day count. - * + * * @return * Constant reference to serial day count */ @@ -306,7 +309,7 @@ struct SerialCalendarDate { /*! * @brief * Returns constant reference to this concrete derivative. - * + * * @note * Do not call this from the derived class, YOU are the * `derivedImpl()` (a.k.a `this`) From 427406e3ef621edb209abc06cc6f9c4fa5998ad9 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 1 Sep 2025 03:27:34 -0400 Subject: [PATCH 275/400] Update diagrams.drawio --- docs/prj/diagrams.drawio | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/docs/prj/diagrams.drawio b/docs/prj/diagrams.drawio index e0589ec..48bc1b1 100644 --- a/docs/prj/diagrams.drawio +++ b/docs/prj/diagrams.drawio @@ -407,7 +407,7 @@ - + @@ -416,40 +416,43 @@ - + - + - + - + - + - + - + - + - + - + + + + - + From 35d3f06376935b5efdb7b0c487b2a802a5761fa5 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 1 Sep 2025 03:27:45 -0400 Subject: [PATCH 276/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 60 +++++++++++++++++++++---------------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index 73dcb2a..5f4514f 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -40,40 +40,40 @@ int main(int argc, char* argv[]) using Date = simplydt::gregorian::GregorianDate; using Days = simplydt::Days; - constexpr Date todayDate{2025, 9, 1}; ///<---(The focus) - constexpr Date pastDate{2025, 8, 1}; + constexpr Date todayDate{2'025, 9, 1}; ///<---(The focus) + constexpr Date pastDate{2'025, 8, 1}; // GregorianDate constexpr tests: { - constexpr bool eq = todayDate == pastDate; - constexpr bool lt = todayDate < pastDate; - constexpr bool gt = todayDate > pastDate; + constexpr bool eq = todayDate == pastDate; + constexpr bool lt = todayDate < pastDate; + constexpr bool gt = todayDate > pastDate; constexpr bool lte = todayDate <= pastDate; constexpr bool gte = todayDate >= pastDate; - constexpr Date pd = todayDate + Days{7}; - constexpr Date md = todayDate - Days{7}; + constexpr Date pd = todayDate + Days{7}; + constexpr Date md = todayDate - Days{7}; constexpr Days diff1 = todayDate - pastDate; constexpr Days diff2 = pastDate - todayDate; constexpr Date arith = pastDate + (todayDate - pastDate); - constexpr bool zro = todayDate.isZero(); - constexpr bool ftr = todayDate.isAfter(pastDate); - constexpr bool pst = todayDate.isBefore(pastDate); - constexpr bool btw = todayDate.isBetween(pastDate, todayDate); - constexpr Days ntl = pastDate.daysUntil(todayDate); + constexpr bool zro = todayDate.isZero(); + constexpr bool ftr = todayDate.isAfter(pastDate); + constexpr bool pst = todayDate.isBefore(pastDate); + constexpr bool btw = todayDate.isBetween(pastDate, todayDate); + constexpr Days ntl = pastDate.daysUntil(todayDate); constexpr int32_t tck = todayDate.underlying(); } // GregorianDate increment/decrement tests: { Date today = todayDate; - Date next = ++today; - next = today++; + Date next = ++today; + next = today++; Date yesterday = todayDate - Days{1}; - Date last = --yesterday; - last = yesterday--; + Date last = --yesterday; + last = yesterday--; next += Days{15}; last -= Days{10}; @@ -95,20 +95,20 @@ int main(int argc, char* argv[]) // GregorianCalendar::getMonthEnumRepr(demo); //_SUSPEND_// constexpr const char* dowName = // GregorianCalendar::getDayOfWeekName(demo); - //_SUSPEND_// constexpr std::string_view dowShort = GregorianCalendar::getDayOfWeekAbbrev(demo); - //_SUSPEND_// constexpr bool isLeap = GregorianCalendar::isLeapYear(demo); - //_SUSPEND_// constexpr uint16_t daysInYr = GregorianCalendar::getDaysInYear(demo); - //_SUSPEND_// constexpr simplydt::gregorian::DayOfWeek dowRepr = - //_SUSPEND_// GregorianCalendar::getDayOfWeekEnumRepr(demo); - //_SUSPEND_// constexpr UnixTimestamp serialDays = GregorianCalendar::toDaysSinceEpoch(demo); - //_SUSPEND_// constexpr GregorianDate fromSerial = GregorianCalendar::fromDaysSinceEpoch(0); - //_SUSPEND_// constexpr UnixTimestamp tzz = - //_SUSPEND_// GregorianCalendar::toUnixTimestamp(GregorianDate{2'004, 9, 17}); - //_SUSPEND_// constexpr GregorianDate zzt = - //_SUSPEND_// GregorianCalendar::fromUnixTimestamp(1'095'379'200); // 2004-09-17T00:00:00.00 - //_SUSPEND_// const GregorianDate bzr = - //_SUSPEND_// GregorianCalendar::fromTimePoint(std::chrono::system_clock::now(), false); - //_SUSPEND_// std::cout << bzr << '\n'; + //_SUSPEND_// constexpr std::string_view dowShort = + //GregorianCalendar::getDayOfWeekAbbrev(demo); _SUSPEND_// constexpr bool isLeap = + //GregorianCalendar::isLeapYear(demo); _SUSPEND_// constexpr uint16_t daysInYr = + //GregorianCalendar::getDaysInYear(demo); _SUSPEND_// constexpr + //simplydt::gregorian::DayOfWeek dowRepr = _SUSPEND_// + //GregorianCalendar::getDayOfWeekEnumRepr(demo); _SUSPEND_// constexpr UnixTimestamp + //serialDays = GregorianCalendar::toDaysSinceEpoch(demo); _SUSPEND_// constexpr + //GregorianDate fromSerial = GregorianCalendar::fromDaysSinceEpoch(0); _SUSPEND_// + //constexpr UnixTimestamp tzz = _SUSPEND_// + //GregorianCalendar::toUnixTimestamp(GregorianDate{2'004, 9, 17}); _SUSPEND_// constexpr + //GregorianDate zzt = _SUSPEND_// GregorianCalendar::fromUnixTimestamp(1'095'379'200); + //// 2004-09-17T00:00:00.00 _SUSPEND_// const GregorianDate bzr = _SUSPEND_// + //GregorianCalendar::fromTimePoint(std::chrono::system_clock::now(), false); _SUSPEND_// + //std::cout << bzr << '\n'; //_SUSPEND_// constexpr UTCTime dvq = UTCTime{14, 37, 48}; //_SUSPEND_// constexpr UTCTime gbx = UTCTime{simplydt::Hours{23} + simplydt::Minutes{15}}; From bb09231d0c0de705f72ba8d348c7b800ed38a605 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 1 Sep 2025 03:28:19 -0400 Subject: [PATCH 277/400] Update gregorian_date.hpp Incomplete --- .../calendar/gregorian/gregorian_date.hpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_date.hpp b/include/simplydt/calendar/gregorian/gregorian_date.hpp index 2db9877..c3ca6c3 100644 --- a/include/simplydt/calendar/gregorian/gregorian_date.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_date.hpp @@ -34,7 +34,7 @@ struct GregorianDate : public SerialCalendarDate { /*! @brief Epoch date in serial form. */ static constexpr Repr_Type SERIAL_EPOCH = 0; - + /*! * @brief * Intercepts invalid date constructor values. @@ -69,7 +69,20 @@ struct GregorianDate : } { } + /*! + * @brief + * Construct default Gregorian calendar date + * (epoch date). + */ + constexpr GregorianDate() noexcept + : SerialCalendarDate{ + SERIAL_EPOCH + } + { } + ~GregorianDate() = default; + + // Continue... }; } // namespace simplydt::gregorian From 055d4b6d1f00333e1459264672be9b512f978d6d Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 1 Sep 2025 04:00:30 -0400 Subject: [PATCH 278/400] Update gregorian_date.hpp --- .../calendar/gregorian/gregorian_date.hpp | 85 ++++++++++++++++++- 1 file changed, 84 insertions(+), 1 deletion(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_date.hpp b/include/simplydt/calendar/gregorian/gregorian_date.hpp index c3ca6c3..b10781a 100644 --- a/include/simplydt/calendar/gregorian/gregorian_date.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_date.hpp @@ -19,6 +19,7 @@ #include "simplydt/calendar/gregorian/date_validation.hpp" #include "simplydt/calendar/gregorian/gregorian_defs.hpp" #include "simplydt/calendar/gregorian/helper_algorithms.hpp" +#include "simplydt/common/string_utils.hpp" namespace simplydt::gregorian { @@ -82,7 +83,89 @@ struct GregorianDate : ~GregorianDate() = default; - // Continue... + /*! + * @brief + * Date year component. + * + * @details + * TODO: INCOMPLETE COMMENT!!! + * + * @return + * Year of Gregorian calendar date + */ + [[nodiscard]] constexpr YearInt_t year() const noexcept + { + // CREDITS: Howard Hinnant [Mr. Chrono] - (Ripple Labs) + Repr_Type serial_days = this->serialDays + 719'468; + const int era = (serial_days >= 0 ? serial_days : serial_days - 146'096) / 146'097; + const unsigned doe = static_cast(serial_days - era * 146'097); + const unsigned yoe = (doe - doe / 1'460 + doe / 36'524 - doe / 146'096) / DAYS_IN_YEAR; + return static_cast(yoe) + era * YEARS_IN_ERA; + } + + /*! + * @brief + * Date month component. + * + * @details + * TODO: INCOMPLETE COMMENT!!! + * + * @return + * Month of Gregorian calendar date + */ + [[nodiscard]] constexpr uint8_t month() const noexcept + { + // CREDITS: Howard Hinnant [Mr. Chrono] - (Ripple Labs) + Repr_Type serial_days = this->serialDays + 719'468; + const int era = (serial_days >= 0 ? serial_days : serial_days - 146'096) / 146'097; + const unsigned doe = static_cast(serial_days - era * 146'097); + const unsigned yoe = (doe - doe / 1'460 + doe / 36'524 - doe / 146'096) / DAYS_IN_YEAR; + const unsigned doy = doe - (DAYS_IN_YEAR * yoe + yoe / 4 - yoe / 100); + const unsigned mp = (5 * doy + 2) / 153; + return static_cast(mp + (mp < 10 ? 3 : -9)); + } + + /*! + * @brief + * Date day component. + * + * @details + * TODO: INCOMPLETE COMMENT!!! + * + * @return + * Day of Gregorian calendar date + */ + [[nodiscard]] constexpr uint8_t day() const noexcept + { + // CREDITS: Howard Hinnant [Mr. Chrono] - (Ripple Labs) + Repr_Type serial_days = this->serialDays + 719'468; + const int era = (serial_days >= 0 ? serial_days : serial_days - 146'096) / 146'097; + const unsigned doe = static_cast(serial_days - era * 146'097); + const unsigned yoe = (doe - doe / 1'460 + doe / 36'524 - doe / 146'096) / DAYS_IN_YEAR; + const unsigned doy = doe - (DAYS_IN_YEAR * yoe + yoe / 4 - yoe / 100); + const unsigned mp = (5 * doy + 2) / 153; + return static_cast(doy - (153 * mp + 2) / 5 + 1); + } + + /*! + * @brief + * Compose string representation of Gregorian + * calendar date. + * + * @return + * Gregorian calendar date as string + */ + [[nodiscard]] std::string toStr() const noexcept + { + const char delimiter = '-'; + + std::string dateStr; + dateStr.reserve(12); + dateStr += (std::to_string(this->year()) + delimiter); + dateStr += (toDoubleDigitStr(this->month()) + delimiter); + dateStr += toDoubleDigitStr(this->day()); + return dateStr; + } }; } // namespace simplydt::gregorian From 12ca97c1f69f2591e902ac359fafd779f27cab1b Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 1 Sep 2025 04:00:35 -0400 Subject: [PATCH 279/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index 5f4514f..a858cb4 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -45,6 +45,10 @@ int main(int argc, char* argv[]) // GregorianDate constexpr tests: { + constexpr Date::YearInt_t today_yr = todayDate.year(); + constexpr uint8_t today_mn = todayDate.month(); + constexpr uint8_t today_dy = todayDate.day(); + constexpr bool eq = todayDate == pastDate; constexpr bool lt = todayDate < pastDate; constexpr bool gt = todayDate > pastDate; From 9c92813185e63f2f7ebb052d0abef6aea40b9c94 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 1 Sep 2025 04:13:00 -0400 Subject: [PATCH 280/400] Update abstract_date.hpp --- include/simplydt/calendar/date/abstract_date.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/simplydt/calendar/date/abstract_date.hpp b/include/simplydt/calendar/date/abstract_date.hpp index cac6421..85ef9d6 100644 --- a/include/simplydt/calendar/date/abstract_date.hpp +++ b/include/simplydt/calendar/date/abstract_date.hpp @@ -296,7 +296,7 @@ struct SerialCalendarDate { } private: - Repr_Type serialDays; + Repr_Type serialDays; ///< Serial day count /*! @brief Construct calendar date with serial day count. */ constexpr SerialCalendarDate(const Repr_Type serialDayCount) noexcept From a625da405581e0ae01c0adeb7de045c0eb9558d0 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 1 Sep 2025 04:13:16 -0400 Subject: [PATCH 281/400] Update gregorian_date.hpp --- include/simplydt/calendar/gregorian/gregorian_date.hpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_date.hpp b/include/simplydt/calendar/gregorian/gregorian_date.hpp index b10781a..e4bd6d9 100644 --- a/include/simplydt/calendar/gregorian/gregorian_date.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_date.hpp @@ -158,12 +158,12 @@ struct GregorianDate : [[nodiscard]] std::string toStr() const noexcept { const char delimiter = '-'; - std::string dateStr; dateStr.reserve(12); - dateStr += (std::to_string(this->year()) + delimiter); - dateStr += (toDoubleDigitStr(this->month()) + delimiter); - dateStr += toDoubleDigitStr(this->day()); + const DateTuple dateValues = fromDaysSinceEpoch(this->serialDays); + dateStr += (std::to_string(std::get<0>(dateValues)) + delimiter); + dateStr += (toDoubleDigitStr(std::get<1>(dateValues)) + delimiter); + dateStr += toDoubleDigitStr(std::get<2>(dateValues)); return dateStr; } }; From d34e67434ff32b3642f51e493fc0a25fdca76aac Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 1 Sep 2025 04:14:34 -0400 Subject: [PATCH 282/400] Update gregorian_date.hpp --- include/simplydt/calendar/gregorian/gregorian_date.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_date.hpp b/include/simplydt/calendar/gregorian/gregorian_date.hpp index e4bd6d9..1328a9a 100644 --- a/include/simplydt/calendar/gregorian/gregorian_date.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_date.hpp @@ -33,7 +33,7 @@ namespace simplydt::gregorian */ struct GregorianDate : public SerialCalendarDate { - /*! @brief Epoch date in serial form. */ + /*! @brief Epoch date in serial days. */ static constexpr Repr_Type SERIAL_EPOCH = 0; /*! From 5837d275eb940a857850abfe23615e03537f47dc Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 1 Sep 2025 17:54:01 -0400 Subject: [PATCH 283/400] Update date_concepts.hpp --- .../calendar/concepts/date_concepts.hpp | 36 ++++++++++++++----- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/include/simplydt/calendar/concepts/date_concepts.hpp b/include/simplydt/calendar/concepts/date_concepts.hpp index d13bd42..5b69277 100644 --- a/include/simplydt/calendar/concepts/date_concepts.hpp +++ b/include/simplydt/calendar/concepts/date_concepts.hpp @@ -16,6 +16,7 @@ #define SIMPLYDT_LIB_CALENDAR_DATE_CONCEPTS_H_ #include "simplydt/calendar/type_traits/date_traits.hpp" +#include "simplydt/time/units/time_units.hpp" #include #include #include @@ -38,9 +39,9 @@ namespace simplydt::concepts namespace simplydt::concepts::date { -template +template concept has_date_component_methods = requires(const Date_Impl& d) { - { d.year() } -> std::same_as; + { d.year() } -> std::same_as; { d.month() } -> std::same_as; { d.day() } -> std::same_as; }; @@ -54,9 +55,23 @@ concept has_logical_operators = requires(const Date_Impl& d) { { d >= d } -> std::same_as; }; +template +concept has_arithmetic_operators = requires(Date_Impl& d, Days days) { + { d + days } -> std::same_as; + { d - days } -> std::same_as; + { d - d } -> std::same_as; + { d += days } -> std::same_as; + { d -= days } -> std::same_as; + { ++d } -> std::same_as; + { d++ } -> std::same_as; + { --d } -> std::same_as; + { d-- } -> std::same_as; +}; + template concept has_basic_state_methods = requires(const Date_Impl& d) { - { d.isDefault() } -> std::same_as; + { d.isZero() } -> std::same_as; + { d.underlying() } -> std::same_as; }; template @@ -65,20 +80,25 @@ concept is_stream_out_compatible = requires(std::ostream& os, const Date_Impl& d }; template -concept has_comparison_methods = requires(const Date_Impl& d) { +concept has_sequential_evaluation_methods = requires(const Date_Impl& d) { { d.isBefore(d) } -> std::same_as; { d.isAfter(d) } -> std::same_as; + { d.isBetween(d, d) } -> std::same_as; + { d.daysUntil(d) } -> std::same_as; }; template -concept has_date_literal_methods = requires(const Date_Impl& d) { - { d.monthStr() } -> std::same_as; - { d.monthAbbreviation() } -> std::same_as; +concept has_date_string_methods = requires(const Date_Impl& d) { + //_// { d.monthStr() } -> std::same_as; + //_// { d.monthAbbrev() } -> std::same_as; { d.toStr() } -> std::same_as; }; template -concept has_contextual_nested_types = requires { typename Date_Impl::YearInt_t; }; +concept has_contextual_nested_types = requires { + typename Date_Impl::Repr_Type; + typename Date_Impl::YearInt_t; +}; } // namespace simplydt::concepts::date From 330d67e8bc655022f9d1ca6570d3588b39966881 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 1 Sep 2025 17:54:13 -0400 Subject: [PATCH 284/400] Update date_contract.hpp --- include/simplydt/calendar/concepts/date_contract.hpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/include/simplydt/calendar/concepts/date_contract.hpp b/include/simplydt/calendar/concepts/date_contract.hpp index 6947a63..5886cb0 100644 --- a/include/simplydt/calendar/concepts/date_contract.hpp +++ b/include/simplydt/calendar/concepts/date_contract.hpp @@ -24,15 +24,21 @@ namespace simplydt::concepts * @brief * Concept of a type that meets the criteria to be * considered a useable calendar date implementation. + * + * @details + * TODO: INCOMPLETE COMMENT!!! */ template concept contract_abiding_date = requires { + requires date::has_contextual_nested_types; requires std::is_integral_v; - requires date::has_date_component_methods; + requires date::has_date_component_methods; requires date::has_logical_operators; + requires date::has_arithmetic_operators; requires date::has_basic_state_methods; + requires date::has_sequential_evaluation_methods; requires date::is_stream_out_compatible; - requires date::has_date_literal_methods; + requires date::has_date_string_methods; requires std::default_initializable; requires std::copyable; requires std::destructible; @@ -41,7 +47,7 @@ concept contract_abiding_date = requires { } // namespace simplydt::concepts #ifndef SIMPLYDT_ENFORCE_DATE_CONTRACT -/*! @brief Macro for asserting date implementation interface contract. */ +/*! @brief Macro for asserting date interface implementation contract. */ # define SIMPLYDT_ENFORCE_DATE_CONTRACT(Class) \ static_assert( \ simplydt::concepts::contract_abiding_date, \ From 1d050bfcc0c146813f17c62b8a1c7c65724b0562 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 1 Sep 2025 17:54:20 -0400 Subject: [PATCH 285/400] Update gregorian_date.hpp --- include/simplydt/calendar/gregorian/gregorian_date.hpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/include/simplydt/calendar/gregorian/gregorian_date.hpp b/include/simplydt/calendar/gregorian/gregorian_date.hpp index 1328a9a..34d3c03 100644 --- a/include/simplydt/calendar/gregorian/gregorian_date.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_date.hpp @@ -16,6 +16,7 @@ #define SIMPLYDT_LIB_SERIAL_GREGORIAN_CALENDAR_DATE_H_ #include "simplydt/calendar/date/abstract_date.hpp" +#include "simplydt/calendar/concepts/calendar_contract.hpp" #include "simplydt/calendar/gregorian/date_validation.hpp" #include "simplydt/calendar/gregorian/gregorian_defs.hpp" #include "simplydt/calendar/gregorian/helper_algorithms.hpp" @@ -168,6 +169,8 @@ struct GregorianDate : } }; +SIMPLYDT_ENFORCE_DATE_CONTRACT(GregorianDate); + } // namespace simplydt::gregorian #endif // SIMPLYDT_LIB_SERIAL_GREGORIAN_CALENDAR_DATE_H_ From a92a462da86af33662ca8e595f6f797243ca38b4 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Tue, 2 Sep 2025 06:12:36 -0400 Subject: [PATCH 286/400] Update date_contract.hpp --- include/simplydt/calendar/concepts/date_contract.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/simplydt/calendar/concepts/date_contract.hpp b/include/simplydt/calendar/concepts/date_contract.hpp index 5886cb0..a2d6389 100644 --- a/include/simplydt/calendar/concepts/date_contract.hpp +++ b/include/simplydt/calendar/concepts/date_contract.hpp @@ -24,7 +24,7 @@ namespace simplydt::concepts * @brief * Concept of a type that meets the criteria to be * considered a useable calendar date implementation. - * + * * @details * TODO: INCOMPLETE COMMENT!!! */ From 0371d86ace735e041152c51461b8b49a29b56b87 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Tue, 2 Sep 2025 06:13:10 -0400 Subject: [PATCH 287/400] Update gregorian_date.hpp --- .../simplydt/calendar/gregorian/gregorian_date.hpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_date.hpp b/include/simplydt/calendar/gregorian/gregorian_date.hpp index 34d3c03..9763e6f 100644 --- a/include/simplydt/calendar/gregorian/gregorian_date.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_date.hpp @@ -15,8 +15,8 @@ #ifndef SIMPLYDT_LIB_SERIAL_GREGORIAN_CALENDAR_DATE_H_ #define SIMPLYDT_LIB_SERIAL_GREGORIAN_CALENDAR_DATE_H_ -#include "simplydt/calendar/date/abstract_date.hpp" #include "simplydt/calendar/concepts/calendar_contract.hpp" +#include "simplydt/calendar/date/abstract_date.hpp" #include "simplydt/calendar/gregorian/date_validation.hpp" #include "simplydt/calendar/gregorian/gregorian_defs.hpp" #include "simplydt/calendar/gregorian/helper_algorithms.hpp" @@ -87,7 +87,7 @@ struct GregorianDate : /*! * @brief * Date year component. - * + * * @details * TODO: INCOMPLETE COMMENT!!! * @@ -98,7 +98,7 @@ struct GregorianDate : { // CREDITS: Howard Hinnant [Mr. Chrono] - (Ripple Labs) Repr_Type serial_days = this->serialDays + 719'468; - const int era = (serial_days >= 0 ? serial_days : serial_days - 146'096) / 146'097; + const int era = (serial_days >= 0 ? serial_days : serial_days - 146'096) / 146'097; const unsigned doe = static_cast(serial_days - era * 146'097); const unsigned yoe = (doe - doe / 1'460 + doe / 36'524 - doe / 146'096) / DAYS_IN_YEAR; return static_cast(yoe) + era * YEARS_IN_ERA; @@ -107,7 +107,7 @@ struct GregorianDate : /*! * @brief * Date month component. - * + * * @details * TODO: INCOMPLETE COMMENT!!! * @@ -118,7 +118,7 @@ struct GregorianDate : { // CREDITS: Howard Hinnant [Mr. Chrono] - (Ripple Labs) Repr_Type serial_days = this->serialDays + 719'468; - const int era = (serial_days >= 0 ? serial_days : serial_days - 146'096) / 146'097; + const int era = (serial_days >= 0 ? serial_days : serial_days - 146'096) / 146'097; const unsigned doe = static_cast(serial_days - era * 146'097); const unsigned yoe = (doe - doe / 1'460 + doe / 36'524 - doe / 146'096) / DAYS_IN_YEAR; const unsigned doy = doe - (DAYS_IN_YEAR * yoe + yoe / 4 - yoe / 100); @@ -129,7 +129,7 @@ struct GregorianDate : /*! * @brief * Date day component. - * + * * @details * TODO: INCOMPLETE COMMENT!!! * @@ -140,7 +140,7 @@ struct GregorianDate : { // CREDITS: Howard Hinnant [Mr. Chrono] - (Ripple Labs) Repr_Type serial_days = this->serialDays + 719'468; - const int era = (serial_days >= 0 ? serial_days : serial_days - 146'096) / 146'097; + const int era = (serial_days >= 0 ? serial_days : serial_days - 146'096) / 146'097; const unsigned doe = static_cast(serial_days - era * 146'097); const unsigned yoe = (doe - doe / 1'460 + doe / 36'524 - doe / 146'096) / DAYS_IN_YEAR; const unsigned doy = doe - (DAYS_IN_YEAR * yoe + yoe / 4 - yoe / 100); From 4c7deef225bd56be4c2029214cca01229c9c0825 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Tue, 2 Sep 2025 06:13:33 -0400 Subject: [PATCH 288/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index a858cb4..217d830 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -46,8 +46,8 @@ int main(int argc, char* argv[]) // GregorianDate constexpr tests: { constexpr Date::YearInt_t today_yr = todayDate.year(); - constexpr uint8_t today_mn = todayDate.month(); - constexpr uint8_t today_dy = todayDate.day(); + constexpr uint8_t today_mn = todayDate.month(); + constexpr uint8_t today_dy = todayDate.day(); constexpr bool eq = todayDate == pastDate; constexpr bool lt = todayDate < pastDate; @@ -100,19 +100,19 @@ int main(int argc, char* argv[]) //_SUSPEND_// constexpr const char* dowName = // GregorianCalendar::getDayOfWeekName(demo); //_SUSPEND_// constexpr std::string_view dowShort = - //GregorianCalendar::getDayOfWeekAbbrev(demo); _SUSPEND_// constexpr bool isLeap = - //GregorianCalendar::isLeapYear(demo); _SUSPEND_// constexpr uint16_t daysInYr = - //GregorianCalendar::getDaysInYear(demo); _SUSPEND_// constexpr - //simplydt::gregorian::DayOfWeek dowRepr = _SUSPEND_// - //GregorianCalendar::getDayOfWeekEnumRepr(demo); _SUSPEND_// constexpr UnixTimestamp - //serialDays = GregorianCalendar::toDaysSinceEpoch(demo); _SUSPEND_// constexpr - //GregorianDate fromSerial = GregorianCalendar::fromDaysSinceEpoch(0); _SUSPEND_// - //constexpr UnixTimestamp tzz = _SUSPEND_// - //GregorianCalendar::toUnixTimestamp(GregorianDate{2'004, 9, 17}); _SUSPEND_// constexpr - //GregorianDate zzt = _SUSPEND_// GregorianCalendar::fromUnixTimestamp(1'095'379'200); + // GregorianCalendar::getDayOfWeekAbbrev(demo); _SUSPEND_// constexpr bool isLeap = + // GregorianCalendar::isLeapYear(demo); _SUSPEND_// constexpr uint16_t daysInYr = + // GregorianCalendar::getDaysInYear(demo); _SUSPEND_// constexpr + // simplydt::gregorian::DayOfWeek dowRepr = _SUSPEND_// + // GregorianCalendar::getDayOfWeekEnumRepr(demo); _SUSPEND_// constexpr UnixTimestamp + // serialDays = GregorianCalendar::toDaysSinceEpoch(demo); _SUSPEND_// constexpr + // GregorianDate fromSerial = GregorianCalendar::fromDaysSinceEpoch(0); _SUSPEND_// + // constexpr UnixTimestamp tzz = _SUSPEND_// + // GregorianCalendar::toUnixTimestamp(GregorianDate{2'004, 9, 17}); _SUSPEND_// constexpr + // GregorianDate zzt = _SUSPEND_// GregorianCalendar::fromUnixTimestamp(1'095'379'200); //// 2004-09-17T00:00:00.00 _SUSPEND_// const GregorianDate bzr = _SUSPEND_// - //GregorianCalendar::fromTimePoint(std::chrono::system_clock::now(), false); _SUSPEND_// - //std::cout << bzr << '\n'; + // GregorianCalendar::fromTimePoint(std::chrono::system_clock::now(), false); _SUSPEND_// + // std::cout << bzr << '\n'; //_SUSPEND_// constexpr UTCTime dvq = UTCTime{14, 37, 48}; //_SUSPEND_// constexpr UTCTime gbx = UTCTime{simplydt::Hours{23} + simplydt::Minutes{15}}; From b4358d5a64a7f4403044d327da408b8c100c28fb Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Tue, 2 Sep 2025 06:30:20 -0400 Subject: [PATCH 289/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index 217d830..9454c53 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -40,7 +40,7 @@ int main(int argc, char* argv[]) using Date = simplydt::gregorian::GregorianDate; using Days = simplydt::Days; - constexpr Date todayDate{2'025, 9, 1}; ///<---(The focus) + constexpr Date todayDate{2'025, 9, 2}; constexpr Date pastDate{2'025, 8, 1}; // GregorianDate constexpr tests: From e3f4770f4cf3aa887eaa13f7f50fdc446b90bcf5 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Tue, 2 Sep 2025 17:10:06 -0400 Subject: [PATCH 290/400] Update diagrams.drawio --- docs/prj/diagrams.drawio | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/prj/diagrams.drawio b/docs/prj/diagrams.drawio index 48bc1b1..601d081 100644 --- a/docs/prj/diagrams.drawio +++ b/docs/prj/diagrams.drawio @@ -275,7 +275,7 @@ - + @@ -728,7 +728,7 @@ - + @@ -741,7 +741,7 @@ - + @@ -837,10 +837,10 @@ - + - + From 006280b3e6702f58794042b4c263c6794b7ecde9 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Tue, 2 Sep 2025 23:57:21 -0400 Subject: [PATCH 291/400] Update diagrams.drawio --- docs/prj/diagrams.drawio | 81 ++++++++++++++++++++++++---------------- 1 file changed, 48 insertions(+), 33 deletions(-) diff --git a/docs/prj/diagrams.drawio b/docs/prj/diagrams.drawio index 601d081..d0c92bd 100644 --- a/docs/prj/diagrams.drawio +++ b/docs/prj/diagrams.drawio @@ -256,7 +256,7 @@ - + @@ -275,7 +275,7 @@ - + @@ -286,7 +286,7 @@ - + @@ -319,7 +319,7 @@ - + @@ -383,11 +383,14 @@ - + + + + - + @@ -728,12 +731,12 @@ - - + + - + @@ -741,7 +744,7 @@ - + @@ -759,7 +762,7 @@ - + @@ -775,74 +778,86 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + - + - + - + + + + + + + From 3f5a39bd87b0fa490838c2e67f44eeada770c101 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Tue, 2 Sep 2025 23:57:26 -0400 Subject: [PATCH 292/400] Update abstract_date.hpp --- include/simplydt/calendar/date/abstract_date.hpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/include/simplydt/calendar/date/abstract_date.hpp b/include/simplydt/calendar/date/abstract_date.hpp index 85ef9d6..6a21052 100644 --- a/include/simplydt/calendar/date/abstract_date.hpp +++ b/include/simplydt/calendar/date/abstract_date.hpp @@ -282,6 +282,9 @@ struct SerialCalendarDate { return Days{date.serialDays - this->serialDays}; } + // TODO: Implement functionality here... + // constexpr Days units() const noexcept + /*! * @brief * Returns constant reference to underlying serial From 88cfecb04a277d4a431e6613f2b863de1318ecf9 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Tue, 2 Sep 2025 23:57:38 -0400 Subject: [PATCH 293/400] Update abstract_time.hpp --- include/simplydt/time/abstract_time.hpp | 312 +++++++++++++++++++++--- 1 file changed, 280 insertions(+), 32 deletions(-) diff --git a/include/simplydt/time/abstract_time.hpp b/include/simplydt/time/abstract_time.hpp index c188dc6..a2e5e5e 100644 --- a/include/simplydt/time/abstract_time.hpp +++ b/include/simplydt/time/abstract_time.hpp @@ -8,40 +8,44 @@ * @file abstract_time.hpp * * @brief - * Abstract time system declaration. + * Base serial time standard declaration. */ -#ifndef SIMPLYDT_LIB_BASE_TEMPORAL_TIME_H_ -#define SIMPLYDT_LIB_BASE_TEMPORAL_TIME_H_ +#ifndef SIMPLYDT_LIB_BASE_SERIAL_TIME_SYSTEM_H_ +#define SIMPLYDT_LIB_BASE_SERIAL_TIME_SYSTEM_H_ #include "simplydt/common/time_defs.hpp" +#include "simplydt/time/units/time_units.hpp" namespace simplydt { /*! * @brief + * Base time standard interface. + * + * @details * TODO: INCOMPLETE COMMENT!!! */ -template -struct TimeSystem { - /*! @brief Time system implementation. */ - using Time = Time_Impl; - /*! @brief Time system base class. */ - using Base = TimeSystem; - /*! @brief Underlying time representation type. */ +template +struct SerialTimeStandard { + /*! @brief Time standard base class. */ + using Base = SerialTimeStandard; + /*! @brief Time resolution unit type. */ + using Unit_Resolution = Resolution_T; + /*! @brief Underlying serial time type. */ using Repr_Type = Repr_T; /*! * @brief - * Converts an hour, minute, and second combination to - * a serial count of seconds since start of day. + * Converts hour, minute, and second values to a + * count of seconds since start of day. * * @return - * Seconds since start of day + * Seconds since midnight (00:00:00 AM) */ - [[nodiscard]] static constexpr Time_t toSerialSeconds( + [[nodiscard]] static constexpr uint32_t toSerialSeconds( const uint8_t hr, const uint8_t min, const uint8_t sec ) noexcept { @@ -50,7 +54,7 @@ struct TimeSystem { const uint32_t secsSinceMidnight = (hr * SECONDS_IN_HOUR) + (min * SECONDS_IN_MINUTE) + sec; - return static_cast(secsSinceMidnight); + return secsSinceMidnight; } /*! @@ -61,13 +65,13 @@ struct TimeSystem { * @return * Time hour component */ - [[nodiscard]] static constexpr uint8_t hourFromSerialSecs(const Time_t secs_in_day + [[nodiscard]] static constexpr uint8_t hourFromSerialSecs(const uint32_t serial_secs ) noexcept { - if (secs_in_day >= SECONDS_IN_DAY) + if (serial_secs >= SECONDS_IN_DAY) return 0; // Invalid serial seconds count - return static_cast(secs_in_day / SECONDS_IN_HOUR); + return static_cast(serial_secs / SECONDS_IN_HOUR); } /*! @@ -78,13 +82,13 @@ struct TimeSystem { * @return * Time minute component */ - [[nodiscard]] static constexpr uint8_t minuteFromSerialSecs(const Time_t secs_in_day + [[nodiscard]] static constexpr uint8_t minuteFromSerialSecs(const uint32_t serial_secs ) noexcept { - if (secs_in_day >= SECONDS_IN_DAY) + if (serial_secs >= SECONDS_IN_DAY) return 0; // Invalid serial seconds count - return static_cast((secs_in_day % SECONDS_IN_HOUR) / SECONDS_IN_MINUTE); + return static_cast((serial_secs % SECONDS_IN_HOUR) / SECONDS_IN_MINUTE); } /*! @@ -95,31 +99,275 @@ struct TimeSystem { * @return * Time second component */ - [[nodiscard]] static constexpr uint8_t secondFromSerialSecs(const Time_t secs_in_day + [[nodiscard]] static constexpr uint8_t secondFromSerialSecs(const uint32_t serial_secs ) noexcept { - if (secs_in_day >= SECONDS_IN_DAY) + if (serial_secs >= SECONDS_IN_DAY) return 0; // Invalid serial seconds count - return static_cast(secs_in_day % SECONDS_IN_MINUTE); + return static_cast(serial_secs % SECONDS_IN_MINUTE); + } + + /*! @brief Puts human-readable time string in output stream. */ + friend inline std::ostream& operator<<(std::ostream& os, const Base& serial_time) noexcept + { + os << serial_time.derivedImpl().toStr(); + return os; + } + + /*! @brief Evaluates equivalence of times. */ + [[nodiscard]] constexpr bool operator==(const Base& serial_time) const noexcept + { + return this->serialUnits == serial_time.serialUnits; + } + + /*! @brief Determines if left-hand side is sequentially before right-hand side. */ + [[nodiscard]] constexpr bool operator<(const Base& serial_time) const noexcept + { + return this->serialUnits < serial_time.serialUnits; + } + + /*! @brief Determines if left-hand side is sequentially after right-hand side. */ + [[nodiscard]] constexpr bool operator>(const Base& serial_time) const noexcept + { + return this->serialUnits > serial_time.serialUnits; + } + + [[nodiscard]] constexpr bool operator<=(const Base& serial_time) const noexcept + { + return this->serialUnits <= serial_time.serialUnits; + } + + [[nodiscard]] constexpr bool operator>=(const Base& serial_time) const noexcept + { + return this->serialUnits >= serial_time.serialUnits; + } + + /*! @brief Returns this time with provided amount of time units added. */ + [[nodiscard]] constexpr Standard_Impl operator+(const Unit_Resolution units) const noexcept + { + Standard_Impl displacedTime{this->derivedImpl()}; + displacedTime.serialUnits += units.count(); + return displacedTime; + } + + /*! @brief Returns this time with provided amount of time units subtracted. */ + [[nodiscard]] constexpr Standard_Impl operator-(const Unit_Resolution units) const noexcept + { + Standard_Impl displacedTime{this->derivedImpl()}; + displacedTime.serialUnits -= units.count(); + return displacedTime; + } + + /*! @brief Calculates number of precision time units between times. */ + [[nodiscard]] constexpr Unit_Resolution operator-(const Standard_Impl time) const noexcept + { + return this->units() - time.units(); + } + + /*! + * @brief + * Increments time one unit of precision. + * + * @return + * Reference to self + */ + Standard_Impl& operator++() noexcept + { + this->serialUnits += 1; + return static_cast(*this); + } + + /*! + * @brief + * Increments time one unit of precision. + * + * @return + * Copy of previous time + */ + [[nodiscard]] Standard_Impl operator++(int) noexcept + { + Standard_Impl previousTime{this->derivedImpl()}; + this->serialUnits += 1; + return previousTime; + } + + /*! @brief Adds provided amount of units to time. */ + Standard_Impl& operator+=(const Unit_Resolution units) noexcept + { + this->serialUnits += units.count(); + return static_cast(*this); + } + + /*! + * @brief + * Decrements time one unit of precision. + * + * @return + * Reference to self + */ + Standard_Impl& operator--() noexcept + { + this->serialUnits -= 1; + return static_cast(*this); + } + + /*! + * @brief + * Decrements time one unit of precision. + * + * @return + * Copy of previous time + */ + [[nodiscard]] Standard_Impl operator--(int) noexcept + { + Standard_Impl previousTime{this->derivedImpl()}; + this->serialUnits -= 1; + return previousTime; + } + + /*! @brief Subtracts provided amount of units from time. */ + Standard_Impl& operator-=(const Unit_Resolution units) noexcept + { + this->serialUnits -= units.count(); + return static_cast(*this); + } + + /*! + * @brief + * Determines if time is midnight. + * + * @return + * True if serial time count is zero + */ + [[nodiscard]] constexpr bool isZero() const noexcept + { + return this->serialUnits == 0; + } + + /*! + * @brief + * Determines if time is sequentially before provided + * time. + * + * @return + * True if this time occurs before provided + */ + [[nodiscard]] constexpr bool isBefore(const Standard_Impl time) const noexcept + { + return this->serialUnits < time.serialUnits; + } + + /*! + * @brief + * Determines if time is sequentially after provided + * time. + * + * @return + * True if this time occurs after provided + */ + [[nodiscard]] constexpr bool isAfter(const Standard_Impl time) const noexcept + { + return this->serialUnits > time.serialUnits; + } + + /*! + * @brief + * Determines if time is sequentially between two + * times. + * + * @details + * TODO: INCOMPLETE COMMENT!!! + * + * @return + * True if this time occurs between provided times + */ + [[nodiscard]] constexpr bool isBetween( + const Standard_Impl start_time, const Standard_Impl end_time + ) const noexcept + { + return start_time.serialUnits <= this->serialUnits && + this->serialUnits <= end_time.serialUnits; + } + + /*! + * @brief + * Returns serial time count as explicit units + * of precision. + * + * @details + * TODO: INCOMPLETE COMMENT!!! + * + * @return + * Serial time count + */ + [[nodiscard]] constexpr Unit_Resolution units() const noexcept + { + return Unit_Resolution{this->serialUnits}; + } + + /*! + * @brief + * Returns constant reference to underlying serial + * time count. + * + * @details + * TODO: INCOMPLETE COMMENT!!! + * + * @return + * Serial time count + */ + [[nodiscard]] constexpr const Repr_Type& underlying() const noexcept + { + return this->serialUnits; } private: - TimeSystem() = default; - ~TimeSystem() = default; - friend Time_Impl; + Repr_Type serialUnits; ///< Serial time of day - [[nodiscard]] const Time& thisImpl() const noexcept + /*! + * @brief + * Intercepts negative units and returns absolute + * units. + * + * @return + * Absolute unit count + */ + [[nodiscard]] static constexpr Repr_Type absoluteCount(const Unit_Resolution serial_count + ) noexcept { - return static_cast(*this); + return static_cast( + (serial_count.count() < 0) ? serial_count.count() * -1 : serial_count.count() + ); } - [[nodiscard]] Time& thisImpl() noexcept + /*! @brief Construct time of day with serial time units. */ + constexpr SerialTimeStandard(const Repr_Type serial_units) noexcept + : serialUnits{serial_units} + { } + + /*! @brief Construct time of day with serial time units. */ + constexpr SerialTimeStandard(const Unit_Resolution serial_units) noexcept + : serialUnits{absoluteCount(serial_units)} + { } + + ~SerialTimeStandard() = default; + friend Standard_Impl; + + /*! + * @brief + * Returns constant reference to this concrete derivative. + * + * @note + * Do not call this from the derived class, YOU are the + * `derivedImpl()` (a.k.a `this`) + */ + [[nodiscard]] constexpr const Standard_Impl& derivedImpl() const noexcept { - return static_cast(*this); + return static_cast(*this); } }; } // namespace simplydt -#endif // SIMPLYDT_LIB_BASE_TEMPORAL_TIME_H_ +#endif // SIMPLYDT_LIB_BASE_SERIAL_TIME_SYSTEM_H_ From 51574c4f2f4b023a9a99f0742f9d1ed612195399 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 3 Sep 2025 01:08:13 -0400 Subject: [PATCH 294/400] Update diagrams.drawio --- docs/prj/diagrams.drawio | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/docs/prj/diagrams.drawio b/docs/prj/diagrams.drawio index d0c92bd..dc79b8b 100644 --- a/docs/prj/diagrams.drawio +++ b/docs/prj/diagrams.drawio @@ -864,68 +864,68 @@ - + - + - + - + - + + + + - + - - - - + - + - + - + - + - + - + - + - + - + - + From 4f63c7cec1c7f49175e3ec6ca28000b007dd9c9e Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 3 Sep 2025 01:08:24 -0400 Subject: [PATCH 295/400] Update utc_time.hpp --- include/simplydt/time/utc/utc_time.hpp | 243 ++++--------------------- 1 file changed, 37 insertions(+), 206 deletions(-) diff --git a/include/simplydt/time/utc/utc_time.hpp b/include/simplydt/time/utc/utc_time.hpp index c1bc8a5..9889dcc 100644 --- a/include/simplydt/time/utc/utc_time.hpp +++ b/include/simplydt/time/utc/utc_time.hpp @@ -12,12 +12,10 @@ */ -#ifndef SIMPLYDT_LIB_COORDINATED_UNIVERSAL_TIME_STRUCT_H_ -#define SIMPLYDT_LIB_COORDINATED_UNIVERSAL_TIME_STRUCT_H_ +#ifndef SIMPLYDT_LIB_COORDINATED_UNIVERSAL_TIME_STANDARD_H_ +#define SIMPLYDT_LIB_COORDINATED_UNIVERSAL_TIME_STANDARD_H_ #include "simplydt/time/abstract_time.hpp" -#include "simplydt/time/concepts/time_api_contract.hpp" -#include "simplydt/time/units/time_units.hpp" #include "simplydt/time/utc/utc_defs.hpp" namespace simplydt::utc @@ -25,9 +23,12 @@ namespace simplydt::utc /*! * @brief + * Coordinated Universal Time. + * + * @details * TODO: INCOMPLETE COMMENT!!! */ -struct UTCTime final : public TimeSystem { +struct UTCTime : public SerialTimeStandard { /*! * @brief * Identifies the time system represented by this @@ -37,192 +38,61 @@ struct UTCTime final : public TimeSystem { /*! * @brief - * Indicates the resolution this time system is based on. + * Indicates the resolution this time system is based + * on. */ static constexpr TimeComponent resolution = TimeComponent::SECOND; /*! * @brief - * Indicates whether the time system is based on celestial - * motion. + * Indicates whether the time system is based on + * celestial motion. * * @details - * Specifies that UTC is a celestial time system. While its - * rate is derived from atomic clocks, it is fundamentally - * tied to the Earth's rotation (a celestial phenomenon) - * through the mechanism of leap seconds. + * Specifies that UTC is a celestial time system. + * While its rate is derived from atomic clocks, it is + * fundamentally tied to the Earth's rotation (a + * celestial phenomenon) through the mechanism of leap + * seconds. */ static constexpr bool isCelestialTimeSystem = true; /*! * @brief - * Indicates whether the time system is a pure atomic time - * scale. + * Indicates whether the time system is a pure atomic + * time scale. * * @details - * Specifies that UTC is not a pure atomic time system which - * is a continuous time scale based solely on atomic clocks. + * Specifies that UTC is not a pure atomic time system + * which is a continuous time scale based solely on + * atomic clocks. */ static constexpr bool isPureAtomicTimeSystem = false; /*! * @brief - * Intercepts invalid serial seconds values and returns - * midnight (00:00:00 AM). - * - * @return - * Midnight if invalid, provided time-in-day value otherwise - */ - [[nodiscard]] static constexpr Time_t useDefaultIfInvalid(const Time_t& time_in_day - ) noexcept - { - return time_in_day >= SECONDS_IN_DAY ? MIDNIGHT : time_in_day; - } - - /*! - * @brief - * Intercepts invalid time parameters and returns midnight - * (00:00:00 AM). - * - * @return - * Midnight if invalid, provided time-in-day value otherwise - */ - [[nodiscard]] static constexpr Time_t useDefaultIfInvalid( - const uint8_t& hour, const uint8_t& minute, const uint8_t& second - ) noexcept - { - if ((hour >= HOURS_IN_DAY) || (minute >= MINUTES_IN_HOUR) || - (second >= SECONDS_IN_MINUTE)) - return MIDNIGHT; // Invalid time parameters - - return Base::toSerialSeconds(hour, minute, second); - } - - /*! - * @brief - * Intercepts invalid serial seconds and returns midnight - * (00:00:00 AM). - * - * @return - * Midnight if invalid, provided time-in-day value otherwise + * Indicates whether the time system is derived from an + * atomic time scale. */ - [[nodiscard]] static constexpr Time_t useDefaultIfInvalid(const Seconds& secs_in_day - ) noexcept - { - if ((secs_in_day.count() < MIDNIGHT) || (secs_in_day.count() >= SECONDS_IN_DAY)) - return MIDNIGHT; - - return static_cast(secs_in_day.count()); - } + static constexpr bool isAtomicDerivedTimeSystem = true; /*! * @brief - * Construct UTC time using hour, minute, and second + * Construct UTC time with hour, minute, and second * values. */ constexpr UTCTime(const uint8_t hour, const uint8_t minute, const uint8_t second) noexcept - : TimeSystem{}, timeInDay{useDefaultIfInvalid(hour, minute, second)} - { - // - } - - /*! - * @brief - * Construct UTC time using hour and minute values; - * assume second = 0. - */ - constexpr UTCTime(const uint8_t hour, const uint8_t minute) noexcept - : TimeSystem{}, timeInDay{useDefaultIfInvalid(hour, minute, 0)} - { - // - } + : SerialTimeStandard{ + Base::toSerialSeconds(hour, minute, second) + } + { } - /*! - * @brief - * Construct UTC time using an hour value; assume - * minute and second = 0. - */ - explicit constexpr UTCTime(const uint8_t hour) noexcept - : TimeSystem{}, timeInDay{useDefaultIfInvalid(hour, 0, 0)} - { - // - } - - /*! - * @brief - * Construct UTC time from seconds since start of - * day. - */ - constexpr UTCTime(const Seconds secs_in_day) noexcept - : TimeSystem{}, timeInDay{useDefaultIfInvalid(secs_in_day)} - { - // - } - - /*! - * @brief - * Construct default UTC time (midnight). - */ - constexpr UTCTime() noexcept : TimeSystem{}, timeInDay{MIDNIGHT} - { - // - } + /*! @brief Construct default UTC time (00:00:00 AM) */ + constexpr UTCTime() noexcept : SerialTimeStandard{MIDNIGHT} + { } ~UTCTime() = default; - friend inline std::ostream& operator<<(std::ostream& os, const UTCTime time) noexcept - { - os << time.toStr(); - return os; - } - - /*! @brief Evaluate equivalence of UTC times. */ - [[nodiscard]] constexpr bool operator==(const UTCTime time) const noexcept - { - return this->timeInDay == time.timeInDay; - } - - /*! @brief Determine if left-hand side is sequentially before right-hand side. */ - [[nodiscard]] constexpr bool operator<(const UTCTime time) const noexcept - { - return this->timeInDay < time.timeInDay; - } - - /*! @brief Determine if left-hand side is sequentially after right-hand side. */ - [[nodiscard]] constexpr bool operator>(const UTCTime time) const noexcept - { - return this->timeInDay > time.timeInDay; - } - - [[nodiscard]] constexpr bool operator<=(const UTCTime time) const noexcept - { - return this->timeInDay <= time.timeInDay; - } - - [[nodiscard]] constexpr bool operator>=(const UTCTime time) const noexcept - { - return this->timeInDay >= time.timeInDay; - } - - /*! @brief Index UTC time components. */ - [[nodiscard]] std::optional operator[](const TimeComponent component - ) const noexcept - { - return this->getComponent(component); - } - - /*! - * @brief - * Evaluate if time is midnight. - * - * @return - * True if time is midnight - */ - [[nodiscard]] constexpr bool isDefault() const noexcept - { - return this->timeInDay == MIDNIGHT; - } - /*! * @brief * Time hour component (24-hour). @@ -232,7 +102,7 @@ struct UTCTime final : public TimeSystem { */ [[nodiscard]] constexpr uint8_t hour() const noexcept { - return Base::hourFromSerialSecs(this->timeInDay); + return Base::hourFromSerialSecs(this->serialUnits); } /*! @@ -244,7 +114,7 @@ struct UTCTime final : public TimeSystem { */ [[nodiscard]] constexpr uint8_t hour12() const noexcept { - return Base::hourFromSerialSecs(this->timeInDay) % 12; + return Base::hourFromSerialSecs(this->serialUnits) % 12; } /*! @@ -286,7 +156,7 @@ struct UTCTime final : public TimeSystem { */ [[nodiscard]] constexpr uint8_t minute() const noexcept { - return Base::minuteFromSerialSecs(this->timeInDay); + return Base::minuteFromSerialSecs(this->serialUnits); } /*! @@ -298,7 +168,7 @@ struct UTCTime final : public TimeSystem { */ [[nodiscard]] constexpr uint8_t second() const noexcept { - return Base::secondFromSerialSecs(this->timeInDay); + return Base::secondFromSerialSecs(this->serialUnits); } /*! @@ -311,7 +181,6 @@ struct UTCTime final : public TimeSystem { [[nodiscard]] const std::string toStr() const noexcept { const char delimiter = ':'; - std::string timeStr; timeStr.reserve(12); timeStr += (toDoubleDigitStr(this->hour()) + delimiter); @@ -320,48 +189,10 @@ struct UTCTime final : public TimeSystem { timeStr += this->hourPhaseStr(); return timeStr; } - - /*! - * @brief - * Get specified UTC time component. - * - * @return - * Requested time component - */ - [[nodiscard]] std::optional getComponent(const TimeComponent component - ) const noexcept - { - switch (component) { - case TimeComponent::HOUR: - return this->hour(); - case TimeComponent::MINUTE: - return this->minute(); - case TimeComponent::SECOND: - return this->second(); - default: // Invalid component request - return std::nullopt; - }; - } - - /*! - * @brief - * Converts UTC time to serial count of seconds since - * midnight. - * - * @return - * Serial count of seconds since start of day - */ - [[nodiscard]] constexpr Seconds toSerialSeconds() const noexcept - { - return Seconds{this->timeInDay}; - } - - private: - Time_t timeInDay; ///< Time of day }; -SIMPLYDT_ENFORCE_TIME_CONTRACT(UTCTime); +// SIMPLYDT_ENFORCE_TIME_CONTRACT(UTCTime); } // namespace simplydt::utc -#endif // SIMPLYDT_LIB_COORDINATED_UNIVERSAL_TIME_STRUCT_H_ +#endif // SIMPLYDT_LIB_COORDINATED_UNIVERSAL_TIME_STANDARD_H_ From ce4e437d25ed16af83107638c57ca5d6c9a1f1ff Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 3 Sep 2025 01:08:31 -0400 Subject: [PATCH 296/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 43 ++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 40 insertions(+), 3 deletions(-) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index 9454c53..83be55d 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -31,18 +31,24 @@ // Includes... #include "simplydt/calendar/gregorian/gregorian_date.hpp" +#include "simplydt/time/utc/utc_time.hpp" int main(int argc, char* argv[]) { ProjectInfoOut(); //\\// - using Date = simplydt::gregorian::GregorianDate; - using Days = simplydt::Days; + using Date = simplydt::gregorian::GregorianDate; + using Time = simplydt::utc::UTCTime; + using Days = simplydt::Days; + using Seconds = simplydt::Seconds; - constexpr Date todayDate{2'025, 9, 2}; + constexpr Date todayDate{2'025, 9, 3}; constexpr Date pastDate{2'025, 8, 1}; + constexpr Time rightNow{1, 54, 19}; + constexpr Time secondsAgo{1, 53, 48}; + // GregorianDate constexpr tests: { constexpr Date::YearInt_t today_yr = todayDate.year(); @@ -83,6 +89,37 @@ int main(int argc, char* argv[]) last -= Days{10}; } + // UTCTime constexpr tests: + { + constexpr uint8_t now_hr = rightNow.hour12(); + constexpr uint8_t now_min = rightNow.minute(); + constexpr uint8_t now_sec = rightNow.second(); + + constexpr bool eq = rightNow == secondsAgo; + constexpr bool lt = rightNow < secondsAgo; + constexpr bool gt = rightNow > secondsAgo; + constexpr bool lte = rightNow <= secondsAgo; + constexpr bool gte = rightNow >= secondsAgo; + + constexpr Time ps = rightNow + Seconds{15}; + constexpr Time ms = rightNow - Seconds{15}; + constexpr Seconds diff1 = rightNow - secondsAgo; + constexpr Seconds diff2 = secondsAgo - rightNow; + constexpr Time arith = secondsAgo + (rightNow - secondsAgo); + + constexpr bool zro = rightNow.isZero(); + constexpr bool ftr = rightNow.isAfter(secondsAgo); + constexpr bool pst = rightNow.isBefore(secondsAgo); + constexpr bool btw = rightNow.isBetween(secondsAgo, rightNow); + constexpr uint32_t tck = rightNow.underlying(); + } + + // SerialCalendarDate and SerialTimeStandard Stream out tests: + { + std::cout << "\nToday date: " << todayDate << "\nTime: " << rightNow << '\n'; + std::cout << "\nToday + 19 days = " << (todayDate + Days{19}) << '\n'; + } + //_SUSPEND_// const GregorianDate blizz = // GregorianCalendar::getDate(simplydt::stl::SystemClock::now()); //_SUSPEND_// constexpr GregorianDate demo = From facbd8e23002099a11151600d95d7d8e3b4eaf99 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 3 Sep 2025 01:18:48 -0400 Subject: [PATCH 297/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index 83be55d..5e5974e 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -14,18 +14,8 @@ * -> [] ... * * -* -> [] :: GregorianCalendar Static Methods :: -* -> [] static constexpr uint8_t getWeeksInMonth() <------(Returns whole weeks in month) -* -> [] static constexpr uint8_t getWeeksMonthSpans() <---(Returns weeks spanned by month) -* -* * -> [] :: Common Time Definitions :: * -> [] using ExTime_t = uint64_t; -* -> [] constexpr ExTime_t EX_TIME_MAX = NANOSECS_IN_DAY - 1; -* -* -* -> [] :: Library Compile-Time Utilities :: -* -> [] template struct ArgParams<...>; <---(Holds argument parameter types) * \* /// \\\ /// \\\ /// | END | \\\ /// \\\ /// \\\ */ @@ -114,6 +104,20 @@ int main(int argc, char* argv[]) constexpr uint32_t tck = rightNow.underlying(); } + // UTCTime increment/decrement tests: + { + Time now = rightNow; + Time next = ++now; + next = now++; + + next = rightNow - Seconds{30}; + next = --now; + next = now--; + + next += Seconds{15}; + next -= Seconds{10}; + } + // SerialCalendarDate and SerialTimeStandard Stream out tests: { std::cout << "\nToday date: " << todayDate << "\nTime: " << rightNow << '\n'; From 9fbfc97981b651d2d7982367ef2f708743aabce1 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Thu, 4 Sep 2025 18:46:06 -0400 Subject: [PATCH 298/400] Renamed Date Contract Header --- .../concepts/{date_contract.hpp => date_api_contract.hpp} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename include/simplydt/calendar/concepts/{date_contract.hpp => date_api_contract.hpp} (98%) diff --git a/include/simplydt/calendar/concepts/date_contract.hpp b/include/simplydt/calendar/concepts/date_api_contract.hpp similarity index 98% rename from include/simplydt/calendar/concepts/date_contract.hpp rename to include/simplydt/calendar/concepts/date_api_contract.hpp index a2d6389..cd77f6f 100644 --- a/include/simplydt/calendar/concepts/date_contract.hpp +++ b/include/simplydt/calendar/concepts/date_api_contract.hpp @@ -5,7 +5,7 @@ // [ISJTB-CXX-XL20230401-000001] /*! - * @file date_contract.hpp + * @file date_api_contract.hpp * * @brief * Conceptual calendar date implementation contract. From b14d550512c59f9c5bca24267d38598d0c58cde9 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Thu, 4 Sep 2025 18:46:26 -0400 Subject: [PATCH 299/400] Renamed Calendar Contract Header --- .../{calendar_contract.hpp => calendar_api_contract.hpp} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename include/simplydt/calendar/concepts/{calendar_contract.hpp => calendar_api_contract.hpp} (94%) diff --git a/include/simplydt/calendar/concepts/calendar_contract.hpp b/include/simplydt/calendar/concepts/calendar_api_contract.hpp similarity index 94% rename from include/simplydt/calendar/concepts/calendar_contract.hpp rename to include/simplydt/calendar/concepts/calendar_api_contract.hpp index a237833..975bab5 100644 --- a/include/simplydt/calendar/concepts/calendar_contract.hpp +++ b/include/simplydt/calendar/concepts/calendar_api_contract.hpp @@ -5,7 +5,7 @@ // [ISJTB-CXX-XL20230401-000001] /*! - * @file calendar_contract.hpp + * @file calendar_api_contract.hpp * * @brief * Conceptual calendar implementation contract. @@ -16,7 +16,7 @@ #define SIMPLYDT_LIB_CALENDAR_CONTRACT_CONCEPT_H_ #include "simplydt/calendar/concepts/calendar_concepts.hpp" -#include "simplydt/calendar/concepts/date_contract.hpp" +#include "simplydt/calendar/concepts/date_api_contract.hpp" namespace simplydt::concepts { From f54bc68c1a403f95579541f054948586bcf51bff Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Thu, 4 Sep 2025 18:46:52 -0400 Subject: [PATCH 300/400] Update time_concepts.hpp --- .../simplydt/time/concepts/time_concepts.hpp | 66 ++++++++++++++++++- 1 file changed, 63 insertions(+), 3 deletions(-) diff --git a/include/simplydt/time/concepts/time_concepts.hpp b/include/simplydt/time/concepts/time_concepts.hpp index 5a0ca4e..dac1c24 100644 --- a/include/simplydt/time/concepts/time_concepts.hpp +++ b/include/simplydt/time/concepts/time_concepts.hpp @@ -15,18 +15,78 @@ #ifndef SIMPLYDT_LIB_TEMPORAL_TIME_CONCEPTS_H_ #define SIMPLYDT_LIB_TEMPORAL_TIME_CONCEPTS_H_ -//... +#include +#include +#include /*! * @namespace simplydt::concepts::time * * @brief - * Temporal time concepts. + * Time concepts. */ namespace simplydt::concepts::time { -//... +template +concept has_contextual_nested_types = requires { + typename Time_Impl::Repr_Type; + typename Time_Impl::Unit_Resolution; +}; + +template +concept has_time_component_methods = requires(const Time_Impl& t) { + { t.hour() } -> std::same_as; + { t.minute() } -> std::same_as; + { t.second() } -> std::same_as; +}; + +template +concept has_logical_operators = requires(const Time_Impl& t) { + { t == t } -> std::same_as; + { t < t } -> std::same_as; + { t > t } -> std::same_as; + { t <= t } -> std::same_as; + { t >= t } -> std::same_as; +}; + +template +concept has_arithmetic_operators = requires(Time_Impl& t, typename Time_Impl::Unit_Resolution units) { + { t + units } -> std::same_as; + { t - units } -> std::same_as; + { t - t } -> std::same_as; + { t += units } -> std::same_as; + { t -= units } -> std::same_as; + { ++t } -> std::same_as; + { t++ } -> std::same_as; + { --t } -> std::same_as; + { t-- } -> std::same_as; +}; + +template +concept has_basic_state_methods = requires(const Time_Impl& t) { + { t.isZero() } -> std::same_as; + { t.units() } -> std::same_as; + { t.underlying() } -> std::same_as; +}; + +template +concept is_stream_out_compatible = requires(std::ostream& os, const Time_Impl& t) { + { os << t } -> std::convertible_to; +}; + +template +concept has_sequential_evaluation_methods = requires(const Time_Impl& t) { + { t.isBefore(t) } -> std::same_as; + { t.isAfter(t) } -> std::same_as; + { t.isBetween(t, t) } -> std::same_as; +}; + +template +concept has_time_string_methods = requires(const Time_Impl& t) { + { t.toStr() } -> std::same_as; + { t.hourPhaseStr() } -> std::same_as; +}; } // namespace simplydt::concepts::time From 6894938346191d1c94e9e8300ed2551cea192c98 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Thu, 4 Sep 2025 18:46:59 -0400 Subject: [PATCH 301/400] Update time_api_contract.hpp --- .../simplydt/time/concepts/time_api_contract.hpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/include/simplydt/time/concepts/time_api_contract.hpp b/include/simplydt/time/concepts/time_api_contract.hpp index c47dd66..2f7f6e9 100644 --- a/include/simplydt/time/concepts/time_api_contract.hpp +++ b/include/simplydt/time/concepts/time_api_contract.hpp @@ -27,8 +27,18 @@ namespace simplydt::concepts */ template concept contract_abiding_time = requires { - // TODO: INCOMPLETE!!! - requires std::is_same_v; + requires time::has_contextual_nested_types; + // NOTE: Perhaps enforcing v below v here is too specific? + requires time::has_time_component_methods; + requires time::has_logical_operators; + requires time::has_arithmetic_operators; + requires time::has_basic_state_methods; + requires time::has_sequential_evaluation_methods; + requires time::is_stream_out_compatible; + requires time::has_time_string_methods; + requires std::default_initializable; + requires std::copyable; + requires std::destructible; }; } // namespace simplydt::concepts From 39e3eac6d1418ab290353b662bfab361d5286e7f Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Thu, 4 Sep 2025 18:47:11 -0400 Subject: [PATCH 302/400] Update utc_time.hpp --- include/simplydt/time/utc/utc_time.hpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/include/simplydt/time/utc/utc_time.hpp b/include/simplydt/time/utc/utc_time.hpp index 9889dcc..79ddf16 100644 --- a/include/simplydt/time/utc/utc_time.hpp +++ b/include/simplydt/time/utc/utc_time.hpp @@ -17,6 +17,7 @@ #include "simplydt/time/abstract_time.hpp" #include "simplydt/time/utc/utc_defs.hpp" +#include "simplydt/time/concepts/time_api_contract.hpp" namespace simplydt::utc { @@ -178,7 +179,7 @@ struct UTCTime : public SerialTimeStandard { * @return * UTC time as string */ - [[nodiscard]] const std::string toStr() const noexcept + [[nodiscard]] std::string toStr() const noexcept { const char delimiter = ':'; std::string timeStr; @@ -191,7 +192,7 @@ struct UTCTime : public SerialTimeStandard { } }; -// SIMPLYDT_ENFORCE_TIME_CONTRACT(UTCTime); +SIMPLYDT_ENFORCE_TIME_CONTRACT(UTCTime); } // namespace simplydt::utc From 739e28be7cd2eb288df85183a5a8359b4d9d715d Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Thu, 4 Sep 2025 18:47:17 -0400 Subject: [PATCH 303/400] Update gregorian_date.hpp --- include/simplydt/calendar/gregorian/gregorian_date.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_date.hpp b/include/simplydt/calendar/gregorian/gregorian_date.hpp index 9763e6f..87bced2 100644 --- a/include/simplydt/calendar/gregorian/gregorian_date.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_date.hpp @@ -15,12 +15,12 @@ #ifndef SIMPLYDT_LIB_SERIAL_GREGORIAN_CALENDAR_DATE_H_ #define SIMPLYDT_LIB_SERIAL_GREGORIAN_CALENDAR_DATE_H_ -#include "simplydt/calendar/concepts/calendar_contract.hpp" #include "simplydt/calendar/date/abstract_date.hpp" #include "simplydt/calendar/gregorian/date_validation.hpp" #include "simplydt/calendar/gregorian/gregorian_defs.hpp" #include "simplydt/calendar/gregorian/helper_algorithms.hpp" #include "simplydt/common/string_utils.hpp" +#include "simplydt/calendar/concepts/date_api_contract.hpp" namespace simplydt::gregorian { From 397a402fe9ff401b20f26b5a06d1cf7fd5c6ae6c Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sat, 6 Sep 2025 02:02:03 -0400 Subject: [PATCH 304/400] Update abstract_date.hpp --- .../simplydt/calendar/date/abstract_date.hpp | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/include/simplydt/calendar/date/abstract_date.hpp b/include/simplydt/calendar/date/abstract_date.hpp index 6a21052..25b5b5b 100644 --- a/include/simplydt/calendar/date/abstract_date.hpp +++ b/include/simplydt/calendar/date/abstract_date.hpp @@ -282,8 +282,21 @@ struct SerialCalendarDate { return Days{date.serialDays - this->serialDays}; } - // TODO: Implement functionality here... - // constexpr Days units() const noexcept + /*! + * @brief + * Returns serial day count as explicit units + * of precision. + * + * @details + * TODO: INCOMPLETE COMMENT!!! + * + * @return + * Serial day count + */ + [[nodiscard]] constexpr Days units() const noexcept + { + return Days{this->serialDays}; + } /*! * @brief From ce8bcbd06931ae0715bedb136b3a5e891cc60de3 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sat, 6 Sep 2025 02:02:09 -0400 Subject: [PATCH 305/400] Update date_concepts.hpp --- include/simplydt/calendar/concepts/date_concepts.hpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/include/simplydt/calendar/concepts/date_concepts.hpp b/include/simplydt/calendar/concepts/date_concepts.hpp index 5b69277..1b15daf 100644 --- a/include/simplydt/calendar/concepts/date_concepts.hpp +++ b/include/simplydt/calendar/concepts/date_concepts.hpp @@ -56,10 +56,10 @@ concept has_logical_operators = requires(const Date_Impl& d) { }; template -concept has_arithmetic_operators = requires(Date_Impl& d, Days days) { +concept has_arithmetic_operators = requires(Date_Impl& d, simplydt::Days days) { { d + days } -> std::same_as; { d - days } -> std::same_as; - { d - d } -> std::same_as; + { d - d } -> std::same_as; { d += days } -> std::same_as; { d -= days } -> std::same_as; { ++d } -> std::same_as; @@ -72,6 +72,7 @@ template concept has_basic_state_methods = requires(const Date_Impl& d) { { d.isZero() } -> std::same_as; { d.underlying() } -> std::same_as; + { d.units() } -> std::same_as; }; template @@ -84,7 +85,7 @@ concept has_sequential_evaluation_methods = requires(const Date_Impl& d) { { d.isBefore(d) } -> std::same_as; { d.isAfter(d) } -> std::same_as; { d.isBetween(d, d) } -> std::same_as; - { d.daysUntil(d) } -> std::same_as; + { d.daysUntil(d) } -> std::same_as; }; template From 635d103c6c46b21f88c20f6f87eb83e55b462f5d Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sat, 6 Sep 2025 02:36:08 -0400 Subject: [PATCH 306/400] Update diagrams.drawio --- docs/prj/diagrams.drawio | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/docs/prj/diagrams.drawio b/docs/prj/diagrams.drawio index dc79b8b..4c5843a 100644 --- a/docs/prj/diagrams.drawio +++ b/docs/prj/diagrams.drawio @@ -14,7 +14,7 @@ - + @@ -271,6 +271,12 @@ + + + + + + @@ -383,7 +389,7 @@ - + From 852cd868c9faf84cbadc483d3ea4cbd8075e6c10 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sat, 6 Sep 2025 03:01:09 -0400 Subject: [PATCH 307/400] Update abstract_date.hpp --- include/simplydt/calendar/date/abstract_date.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/simplydt/calendar/date/abstract_date.hpp b/include/simplydt/calendar/date/abstract_date.hpp index 25b5b5b..761eb58 100644 --- a/include/simplydt/calendar/date/abstract_date.hpp +++ b/include/simplydt/calendar/date/abstract_date.hpp @@ -284,7 +284,7 @@ struct SerialCalendarDate { /*! * @brief - * Returns serial day count as explicit units + * Returns serial calendar date as explicit units * of precision. * * @details From 036d678563ee36ac54c94542ac368ba8ec4cafe3 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sat, 6 Sep 2025 03:01:16 -0400 Subject: [PATCH 308/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index 5e5974e..b6f2f2e 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -62,7 +62,8 @@ int main(int argc, char* argv[]) constexpr bool pst = todayDate.isBefore(pastDate); constexpr bool btw = todayDate.isBetween(pastDate, todayDate); constexpr Days ntl = pastDate.daysUntil(todayDate); - constexpr int32_t tck = todayDate.underlying(); + constexpr Days unit = todayDate.units(); + constexpr int32_t rep = todayDate.underlying(); } // GregorianDate increment/decrement tests: @@ -101,7 +102,8 @@ int main(int argc, char* argv[]) constexpr bool ftr = rightNow.isAfter(secondsAgo); constexpr bool pst = rightNow.isBefore(secondsAgo); constexpr bool btw = rightNow.isBetween(secondsAgo, rightNow); - constexpr uint32_t tck = rightNow.underlying(); + constexpr Seconds unit = rightNow.units(); + constexpr uint32_t rep = rightNow.underlying(); } // UTCTime increment/decrement tests: @@ -124,6 +126,11 @@ int main(int argc, char* argv[]) std::cout << "\nToday + 19 days = " << (todayDate + Days{19}) << '\n'; } + // General Demo + { + //... + } + //_SUSPEND_// const GregorianDate blizz = // GregorianCalendar::getDate(simplydt::stl::SystemClock::now()); //_SUSPEND_// constexpr GregorianDate demo = From 493e9ee876ce5ed9b2d9256b832f418a70336af6 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sat, 6 Sep 2025 03:16:43 -0400 Subject: [PATCH 309/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index b6f2f2e..c48fb3e 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -120,13 +120,13 @@ int main(int argc, char* argv[]) next -= Seconds{10}; } - // SerialCalendarDate and SerialTimeStandard Stream out tests: + // SerialCalendarDate and SerialTimeStandard stream out tests: { std::cout << "\nToday date: " << todayDate << "\nTime: " << rightNow << '\n'; std::cout << "\nToday + 19 days = " << (todayDate + Days{19}) << '\n'; } - // General Demo + // Gregorian calendar tests: { //... } From 7e2553ac366add4fcad5baa0145e763d4a004789 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sat, 6 Sep 2025 23:47:27 -0400 Subject: [PATCH 310/400] Update date_concepts.hpp --- include/simplydt/calendar/concepts/date_concepts.hpp | 1 + 1 file changed, 1 insertion(+) diff --git a/include/simplydt/calendar/concepts/date_concepts.hpp b/include/simplydt/calendar/concepts/date_concepts.hpp index 1b15daf..32227ee 100644 --- a/include/simplydt/calendar/concepts/date_concepts.hpp +++ b/include/simplydt/calendar/concepts/date_concepts.hpp @@ -99,6 +99,7 @@ template concept has_contextual_nested_types = requires { typename Date_Impl::Repr_Type; typename Date_Impl::YearInt_t; + typename Date_Impl::ValidationPolicy; }; } // namespace simplydt::concepts::date From 4097e0cad4cb659b3ea7d3283c5b49cbffb1b7fa Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sat, 6 Sep 2025 23:48:02 -0400 Subject: [PATCH 311/400] Update gregorian_date.hpp --- include/simplydt/calendar/gregorian/gregorian_date.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_date.hpp b/include/simplydt/calendar/gregorian/gregorian_date.hpp index 87bced2..ed7d1f2 100644 --- a/include/simplydt/calendar/gregorian/gregorian_date.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_date.hpp @@ -15,12 +15,12 @@ #ifndef SIMPLYDT_LIB_SERIAL_GREGORIAN_CALENDAR_DATE_H_ #define SIMPLYDT_LIB_SERIAL_GREGORIAN_CALENDAR_DATE_H_ +#include "simplydt/calendar/concepts/date_api_contract.hpp" #include "simplydt/calendar/date/abstract_date.hpp" #include "simplydt/calendar/gregorian/date_validation.hpp" #include "simplydt/calendar/gregorian/gregorian_defs.hpp" #include "simplydt/calendar/gregorian/helper_algorithms.hpp" #include "simplydt/common/string_utils.hpp" -#include "simplydt/calendar/concepts/date_api_contract.hpp" namespace simplydt::gregorian { From 39bd98938bf1321f66e602bba5f0b2b64da5d2b1 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sat, 6 Sep 2025 23:48:24 -0400 Subject: [PATCH 312/400] Update calendar_concepts.hpp --- include/simplydt/calendar/concepts/calendar_concepts.hpp | 1 + 1 file changed, 1 insertion(+) diff --git a/include/simplydt/calendar/concepts/calendar_concepts.hpp b/include/simplydt/calendar/concepts/calendar_concepts.hpp index 9eca01b..75f3319 100644 --- a/include/simplydt/calendar/concepts/calendar_concepts.hpp +++ b/include/simplydt/calendar/concepts/calendar_concepts.hpp @@ -36,6 +36,7 @@ concept has_contextual_nested_types = requires { typename Calendar_Impl::Date; typename Calendar_Impl::Month; typename Calendar_Impl::DayOfWeek; + typename Calendar_Impl::DatePolicy; }; template From e42d35b8beb2dd6b039432a81336e2a0dc49a97a Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sat, 6 Sep 2025 23:48:34 -0400 Subject: [PATCH 313/400] Update abstract_calendar.hpp --- include/simplydt/calendar/abstract_calendar.hpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/simplydt/calendar/abstract_calendar.hpp b/include/simplydt/calendar/abstract_calendar.hpp index 68aefcc..c042a26 100644 --- a/include/simplydt/calendar/abstract_calendar.hpp +++ b/include/simplydt/calendar/abstract_calendar.hpp @@ -66,6 +66,8 @@ struct CalendricalSystem { using Date = Date_Impl; /*! @brief Calendar year integer type. */ using YearInt_t = typename Date::YearInt_t; + /*! @brief Calendar date validation policy. */ + using DatePolicy = typename Date::ValidationPolicy; /*! @brief Enumeration of calendar months. */ using Month = Month_Enum; /*! @brief Enumeration of calendar days of week. */ From 5b96464cb21342805553c24f804a547ab92b209b Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sat, 6 Sep 2025 23:49:09 -0400 Subject: [PATCH 314/400] Update time_concepts.hpp --- .../simplydt/time/concepts/time_concepts.hpp | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/include/simplydt/time/concepts/time_concepts.hpp b/include/simplydt/time/concepts/time_concepts.hpp index dac1c24..ba09c87 100644 --- a/include/simplydt/time/concepts/time_concepts.hpp +++ b/include/simplydt/time/concepts/time_concepts.hpp @@ -51,17 +51,18 @@ concept has_logical_operators = requires(const Time_Impl& t) { }; template -concept has_arithmetic_operators = requires(Time_Impl& t, typename Time_Impl::Unit_Resolution units) { - { t + units } -> std::same_as; - { t - units } -> std::same_as; - { t - t } -> std::same_as; - { t += units } -> std::same_as; - { t -= units } -> std::same_as; - { ++t } -> std::same_as; - { t++ } -> std::same_as; - { --t } -> std::same_as; - { t-- } -> std::same_as; -}; +concept has_arithmetic_operators = + requires(Time_Impl& t, typename Time_Impl::Unit_Resolution units) { + { t + units } -> std::same_as; + { t - units } -> std::same_as; + { t - t } -> std::same_as; + { t += units } -> std::same_as; + { t -= units } -> std::same_as; + { ++t } -> std::same_as; + { t++ } -> std::same_as; + { --t } -> std::same_as; + { t-- } -> std::same_as; + }; template concept has_basic_state_methods = requires(const Time_Impl& t) { From 21024fbbc2a1664bde989e979d87b32442c6f619 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sat, 6 Sep 2025 23:49:15 -0400 Subject: [PATCH 315/400] Update utc_time.hpp --- include/simplydt/time/utc/utc_time.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/simplydt/time/utc/utc_time.hpp b/include/simplydt/time/utc/utc_time.hpp index 79ddf16..17864b2 100644 --- a/include/simplydt/time/utc/utc_time.hpp +++ b/include/simplydt/time/utc/utc_time.hpp @@ -16,8 +16,8 @@ #define SIMPLYDT_LIB_COORDINATED_UNIVERSAL_TIME_STANDARD_H_ #include "simplydt/time/abstract_time.hpp" -#include "simplydt/time/utc/utc_defs.hpp" #include "simplydt/time/concepts/time_api_contract.hpp" +#include "simplydt/time/utc/utc_defs.hpp" namespace simplydt::utc { From 1fc8c19807bfca309bbc2edba8f653b7bc600680 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sat, 6 Sep 2025 23:49:33 -0400 Subject: [PATCH 316/400] Update diagrams.drawio --- docs/prj/diagrams.drawio | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/docs/prj/diagrams.drawio b/docs/prj/diagrams.drawio index 4c5843a..c92a5a1 100644 --- a/docs/prj/diagrams.drawio +++ b/docs/prj/diagrams.drawio @@ -14,7 +14,7 @@ - + @@ -281,7 +281,7 @@ - + @@ -628,7 +628,7 @@ - + @@ -636,7 +636,7 @@ - + @@ -649,14 +649,17 @@ - + - + + + + - + @@ -724,7 +727,7 @@ - + From 9a7d6ee4787396889317629ebbba387325eb9584 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Tue, 9 Sep 2025 12:11:52 -0400 Subject: [PATCH 317/400] Branch Removals Incomplete (removing unnecessary branches) --- include/simplydt/calendar/abstract_calendar.hpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/include/simplydt/calendar/abstract_calendar.hpp b/include/simplydt/calendar/abstract_calendar.hpp index c042a26..8b91f4d 100644 --- a/include/simplydt/calendar/abstract_calendar.hpp +++ b/include/simplydt/calendar/abstract_calendar.hpp @@ -140,7 +140,8 @@ struct CalendricalSystem { */ [[nodiscard]] static constexpr const char* getMonthName(const Date date) noexcept { - return getMonthName(date.month()); + const uint8_t monthIndex = date.month() - 1; + return Calendar_Impl::MONTH_NAMES[monthIndex]; } /*! @@ -212,7 +213,8 @@ struct CalendricalSystem { */ [[nodiscard]] static constexpr std::string_view getMonthAbbrev(const Date date) noexcept { - return getMonthAbbrev(date.month()); + const uint8_t monthIndex = date.month() - 1; + return Calendar_Impl::MONTH_ABBREVS[monthIndex]; } /*! @@ -254,7 +256,8 @@ struct CalendricalSystem { */ [[nodiscard]] static constexpr Month getMonthEnumRepr(const Date date) noexcept { - return getMonthEnumRepr(date.month()); + const uint8_t monthIndex = date.month() - 1; + return static_cast(monthIndex); } /*! @@ -388,9 +391,6 @@ struct CalendricalSystem { */ [[nodiscard]] static constexpr DayOfWeek getDayOfWeekEnumRepr(const Date date) noexcept { - if (!Calendar_Impl::isValidDate(date)) - return static_cast(0); // TODO: Fallback value not acceptable here... - const uint8_t dowIndex = Calendar_Impl::getDayOfWeekIndex(date); return static_cast(dowIndex); } From 064f3032934d401185a8f41a00ffe795a6ccff77 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Tue, 9 Sep 2025 12:12:17 -0400 Subject: [PATCH 318/400] TEMP Temporary project file --- .../gregorian/gregorian_calendar2.hpp | 443 ++++++++++++++++++ 1 file changed, 443 insertions(+) create mode 100644 include/simplydt/calendar/gregorian/gregorian_calendar2.hpp diff --git a/include/simplydt/calendar/gregorian/gregorian_calendar2.hpp b/include/simplydt/calendar/gregorian/gregorian_calendar2.hpp new file mode 100644 index 0000000..13b1fe0 --- /dev/null +++ b/include/simplydt/calendar/gregorian/gregorian_calendar2.hpp @@ -0,0 +1,443 @@ + +// Copyright (C) 2026 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. +// Released under the terms of the GNU Affero General Public License version 3. + +// [ISJTB-CXX-XL20230401-000001] + +/*! + * @file gregorian_calendar.hpp + * + * @brief + * Gregorian calendar declaration. + */ + + +#ifndef SIMPLYDT_LIB_GREGORIAN_CALENDAR_H_ +#define SIMPLYDT_LIB_GREGORIAN_CALENDAR_H_ + +#include "simplydt/calendar/abstract_calendar.hpp" +#include "simplydt/calendar/concepts/calendar_api_contract.hpp" +#include "simplydt/calendar/gregorian/gregorian_date.hpp" + +namespace simplydt::gregorian +{ + +/*! + * @brief + * Gregorian calendar system. + * + * @details + * TODO: INCOMPLETE COMMENT!!! + */ +struct GregorianCalendar : + public CalendricalSystem { + /*! @brief Array of dates in one calendar week. */ + using WeekDates = std::array; + + /*! + * @brief + * Identifies calendar system represented by + * this implementation. + */ + static constexpr CalendarSystem calendar = CalendarSystem::GREGORIAN; + + /*! + * @brief + * Indicates whether calendar system is + * solar-based. + * + * @details + * This constant specifies that the Gregorian + * calendar system follows a solar model, where + * date progression is based on the Earth's + * orbit around the Sun. + */ + static constexpr bool isSolarCalendar = true; + + /*! + * @brief + * Indicates whether calendar system is + * lunar-based. + * + * @details + * This constant specifies that the Gregorian + * calendar system does not follow a lunar + * model, which bases months on the phases of + * the Moon. + */ + static constexpr bool isLunarCalendar = false; + + /*! + * @brief + * Indicates whether calendar system is + * lunisolar-based. + * + * @details + * This constant specifies that the Gregorian + * calendar system does not follow a lunisolar + * model, which combines solar and lunar cycles + * to structure months and years. + */ + static constexpr bool isLunisolarCalendar = false; + + /*! + * @brief + * Full names of Gregorian calendar months. + */ + static constexpr inline const std::array& MONTH_NAMES = + Months; + + /*! + * @brief + * Abbreviated names of Gregorian calendar + * months. + */ + static constexpr inline const std::array& MONTH_ABBREVS = + MonthAbbrevs; + + /*! + * @brief + * Full names of Gregorian calendar + * days-of-week. + */ + static constexpr inline const std::array& DAY_OF_WEEK_NAMES = + DaysOfWeek; + + /*! + * @brief + * Abbreviated names of Gregorian calendar + * days-of-week. + */ + static constexpr inline const std::array& + DAY_OF_WEEK_ABBREVS = DayOfWeekAbbrevs; + + /*! + * @brief + * Evaluate support of year value. + * + * @details + * This function returns true if the given year + * falls within the inclusive bounds defined by + * `YEAR_MINIMUM` and `YEAR_MAXIMUM` for the + * Gregorian calendar system. + * + * @return + * True if supported year value + */ + [[nodiscard]] static constexpr bool isValidYear(const YearInt_t year) noexcept + { + return DatePolicy::isValidYear(year); + } + + /*! + * @brief + * Determines whether a given year is a leap year. + * + * @details + * This function checks if the specified year + * qualifies as a leap year under Gregorian + * calendar rules. A year is considered a leap + * year if it is divisible by 4, except for + * years divisible by 100 unless it is also + * divisible by 400. + * + * @return + * True if leap year + */ + [[nodiscard]] static constexpr bool isLeapYear(const YearInt_t year) noexcept + { + return DatePolicy::isLeapYear(year); + } + + /*! + * @brief + * Determines whether a date is within a leap + * year. + * + * @return + * True if leap year + */ + [[nodiscard]] static constexpr bool isLeapYear(const Date date) noexcept + { + return DatePolicy::isLeapYear(date.year()); + } + + /*! + * @brief + * Returns total number of days in a given + * calendar year. + * + * @details + * Determines whether the specified year is a + * leap year and returns `DAYS_IN_LEAP_YEAR` or + * `DAYS_IN_YEAR` accordingly. If the year is + * unsupported the function returns 0. + * + * @return + * Total days in year + */ + [[nodiscard]] static constexpr uint16_t getDaysInYear(const YearInt_t year) noexcept + { + if (!DatePolicy::isValidYear(year)) + return 0; // Unsupported year + + return DatePolicy::isLeapYear(year) ? DAYS_IN_LEAP_YEAR : DAYS_IN_YEAR; + } + + /*! + * @brief + * Returns total number of days in a given + * calendar year. + * + * @details + * Extracts the year from the provided `Date` + * to determine the total number of days in + * the year. + * + * @return + * Total days in year + */ + [[nodiscard]] static constexpr uint16_t getDaysInYear(const Date date) noexcept + { + return DatePolicy::isLeapYear(date.year()) ? DAYS_IN_LEAP_YEAR : DAYS_IN_YEAR; + } + + /*! + * @brief + * Checks if numerical month value is within + * valid range. + * + * @details + * This function returns true if the given + * month falls within the inclusive bounds + * defined by `MIN_MONTH_OF_YEAR` and + * `MAX_MONTH_OF_YEAR` for the Gregorian + * calendar system. + * + * @return + * True if valid numerical month + */ + [[nodiscard]] static constexpr bool isValidMonth(const uint8_t month) noexcept + { + return DatePolicy::isValidMonth(month); + } + + /*! + * @brief + * Returns total number of days in a given + * month of a specified year. + * + * @details + * This function handles the varying lengths of + * months in the Gregorian calendar, including + * the special case of February during a leap + * year. The function first validates the year + * and month; if either is invalid, it returns 0 + * to indicate an unsupported or invalid date + * component. + * + * @return + * Total days in month + */ + [[nodiscard]] static constexpr uint8_t getDaysInMonth( + const YearInt_t year, const uint8_t month + ) noexcept + { + return DatePolicy::getDaysInMonth(year, month); + } + + /*! + * @brief + * Returns total number of days within month of + * a given date. + * + * @details + * Extracts the year and month from the provided + * `Date` to determine the total number of days + * in the dates month. + * + * @return + * Total days in month + */ + [[nodiscard]] static constexpr uint8_t getDaysInMonth(const Date date) noexcept + { + return DatePolicy::getDaysInMonth(date.year(), date.month()); + } + + /*! + * @brief + * Checks if day value is within valid range. + * + * @details + * This function returns true if the given day + * falls within the inclusive bounds defined by + * `MIN_DAY_OF_MONTH` and `MAX_DAY_OF_MONTH` for + * the Gregorian calendar system. + * + * @return + * True if valid day value + */ + [[nodiscard]] static constexpr bool isValidDay(const uint8_t day) noexcept + { + return day >= MIN_DAY_OF_MONTH && day <= MAX_DAY_OF_MONTH; + } + + /*! + * @brief + * Checks if day-of-week index is within valid + * range. + * + * @details + * Accepts a zero-based day-of-week index + * (0 = Sunday ... 6 = Saturday). Returns true + * only if the index is less than `DAYS_IN_WEEK`. + * + * @return + * True if valid day-of-week index + */ + [[nodiscard]] static constexpr bool isValidDOWIndex(const uint8_t dow_index) noexcept + { + return dow_index < DAYS_IN_WEEK; + } + + /*! + * @brief + * Checks if given year, month, and day + * combination form a valid calendar date. + * + * @details + * This function returns true when the provided + * date parameters describe a real date on the + * Gregorian calendar. This is achieved by + * comparing the dates day to the total number + * of days in the month. If the provided year + * is not supported, the function returns false. + * + * @return + * True if date exists on calendar + */ + [[nodiscard]] static constexpr bool isValidDate( + const YearInt_t year, const uint8_t month, const uint8_t day + ) noexcept + { + if (!isValidYear(year)) + return false; + + const uint8_t monthTotalDays = getDaysInMonth(year, month); + return day <= monthTotalDays; + } + + /*! + * @brief + * Calculates day-of-week index of provided + * calendar date. + * + * @details + * Implements Tomohiko Sakamoto's algorithm to + * determine the day of the week for the + * specified year, month, and day combination. + * Returns a zero-based day-of-week index + * (0 = Sunday ... 6 = Saturday), or + * `INVALID_DOW_INDEX` if the provided date + * does not exist on the calendar. + * + * @return + * Day-of-week index + */ + [[nodiscard]] static constexpr uint8_t getDayOfWeekIndex( + YearInt_t year, uint8_t month, uint8_t day + ) noexcept + { + if (!isValidDate(year, month, day)) + return INVALID_DOW_INDEX; + + // CREDITS: Tomohiko Sakamoto + // Day-of-week index algorithm + year -= (month < March); // Extra days from leap year + // only affect March and later + const uint8_t monthIndex = month - 1; + const int index = + ((year + year / 4 - year / 100 + year / YEARS_IN_ERA + + sakamoto::MONTH_KEY[monthIndex] + day) % + DAYS_IN_WEEK); + + return static_cast(index); + } + + /*! + * @brief + * Calculates day-of-week index for a given + * calendar date. + * + * @details + * Extracts the year, month, and day from the + * given `Date` instance to compute the + * zero-based day-of-week index. + * + * @return + * Day-of-week index + */ + [[nodiscard]] static constexpr uint8_t getDayOfWeekIndex(const Date date) noexcept + { + return getDayOfWeekIndex(date.year(), date.month(), date.day()); + } + + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + * + * @details + * TODO: INCOMPLETE COMMENT!!! + * + * @return + * Number of weeks in month + */ + [[nodiscard]] static constexpr uint8_t getWeeksInMonth( + const YearInt_t year, const uint8_t month + ) noexcept + { + // TODO: INCOMPLETE!!! + return 0; + } + + /*! + * @brief + * Determines number of weeks a specified month + * spans over the calendar. + * + * @details + * Calculates how many full or partial weeks are + * needed to contain all days of the specified + * month in a standard calendar grid. The result + * depends on the day of the week the month starts + * on and the total number of days in the monthh. + * Returns 0 if the month is invalid or if the + * provided year is unsupported. + * + * @return + * Number of weeks month spans + */ + [[nodiscard]] static constexpr uint8_t getWeeksMonthSpans( + const YearInt_t year, const uint8_t month + ) noexcept + { + const uint8_t monthTotalDays = getDaysInMonth(year, month); + + if (monthTotalDays == 0) + return 0; // Unsupported or invalid + + const uint8_t firstOfMonthDowIndex = getDayOfWeekIndex(year, month, 1); + const uint8_t monthCells = firstOfMonthDowIndex + monthTotalDays; + return (monthCells + 6) / DAYS_IN_WEEK; + } + + // Continue... + + private: + GregorianCalendar() = delete; + ~GregorianCalendar() = delete; +}; + +} // namespace simplydt::gregorian + +#endif // SIMPLYDT_LIB_GREGORIAN_CALENDAR_H_ From da8befe0b7193f39bb2d29151d261b6d3f119b92 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Tue, 9 Sep 2025 12:12:24 -0400 Subject: [PATCH 319/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index c48fb3e..bcae397 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -21,6 +21,7 @@ // Includes... #include "simplydt/calendar/gregorian/gregorian_date.hpp" +#include "simplydt/calendar/gregorian/gregorian_calendar2.hpp" #include "simplydt/time/utc/utc_time.hpp" int main(int argc, char* argv[]) @@ -28,13 +29,14 @@ int main(int argc, char* argv[]) ProjectInfoOut(); //\\// - using Date = simplydt::gregorian::GregorianDate; - using Time = simplydt::utc::UTCTime; - using Days = simplydt::Days; - using Seconds = simplydt::Seconds; + using Calendar = simplydt::gregorian::GregorianCalendar; + using Date = simplydt::gregorian::GregorianDate; + using Time = simplydt::utc::UTCTime; + using Days = simplydt::Days; + using Seconds = simplydt::Seconds; - constexpr Date todayDate{2'025, 9, 3}; - constexpr Date pastDate{2'025, 8, 1}; + constexpr Date todayDate{2'025, 9, 7}; + constexpr Date pastDate{2'025, 8, 23}; constexpr Time rightNow{1, 54, 19}; constexpr Time secondsAgo{1, 53, 48}; @@ -128,7 +130,9 @@ int main(int argc, char* argv[]) // Gregorian calendar tests: { - //... + constexpr const char* mnm = Calendar::getMonthName(todayDate); + constexpr std::string_view mabbr = Calendar::getMonthAbbrev(todayDate); + constexpr Calendar::Month mrepr = Calendar::getMonthEnumRepr(todayDate); } //_SUSPEND_// const GregorianDate blizz = From 36ade2f727c3a982c2f37865f9b450f34c33810f Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sun, 21 Sep 2025 14:39:57 -0400 Subject: [PATCH 320/400] Update diagrams.drawio --- docs/prj/diagrams.drawio | 297 ++++++++++++++++++++------------------- 1 file changed, 150 insertions(+), 147 deletions(-) diff --git a/docs/prj/diagrams.drawio b/docs/prj/diagrams.drawio index c92a5a1..ddb268c 100644 --- a/docs/prj/diagrams.drawio +++ b/docs/prj/diagrams.drawio @@ -281,7 +281,7 @@ - + @@ -304,10 +304,10 @@ - + - + @@ -329,7 +329,7 @@ - + @@ -377,22 +377,22 @@ - + - + - + - + - + - + @@ -406,7 +406,7 @@ - + @@ -420,12 +420,12 @@ - + - + @@ -433,7 +433,7 @@ - + @@ -465,7 +465,7 @@ - + @@ -474,16 +474,16 @@ - + - + - + @@ -516,102 +516,105 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + - + @@ -627,324 +630,324 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + From 9170fed5cb62b563201ffb215b67059a77a3aa20 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sun, 21 Sep 2025 14:40:32 -0400 Subject: [PATCH 321/400] Update gregorian_calendar2.hpp --- .../gregorian/gregorian_calendar2.hpp | 229 +++++++++++++++++- 1 file changed, 223 insertions(+), 6 deletions(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_calendar2.hpp b/include/simplydt/calendar/gregorian/gregorian_calendar2.hpp index 13b1fe0..69fc772 100644 --- a/include/simplydt/calendar/gregorian/gregorian_calendar2.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_calendar2.hpp @@ -29,7 +29,7 @@ namespace simplydt::gregorian * @details * TODO: INCOMPLETE COMMENT!!! */ -struct GregorianCalendar : +struct GregorianCalendar : // TODO: INCOMPLETE!!! (methods missing) public CalendricalSystem { /*! @brief Array of dates in one calendar week. */ using WeekDates = std::array; @@ -384,10 +384,16 @@ struct GregorianCalendar : /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Number of full 7-day weeks contained in + * specified month. * * @details - * TODO: INCOMPLETE COMMENT!!! + * Calculates how many full seven-day calendar + * weeks are in the provided month. Fractional + * week information is truncated (*floor*) and + * results are not dependent on current day of + * the week. Returns 0 if the month is invalid + * or if the provided year is unsupported. * * @return * Number of weeks in month @@ -396,8 +402,12 @@ struct GregorianCalendar : const YearInt_t year, const uint8_t month ) noexcept { - // TODO: INCOMPLETE!!! - return 0; + const uint8_t monthTotalDays = getDaysInMonth(year, month); + + if (monthTotalDays == 0) + return 0; // Unsupported or invalid + + return static_cast(monthTotalDays / DAYS_IN_WEEK); } /*! @@ -431,7 +441,214 @@ struct GregorianCalendar : return (monthCells + 6) / DAYS_IN_WEEK; } - // Continue... + /*! + * @brief + * Converts a calendar date to serial number of + * days since Unix epoch. + * + * @details + * Uses Howard Hinnant’s civil date algorithm to + * convert a year, month, day combination into a + * signed day count relative to the Unix epoch + * (1970-01-01 = day 0). The result can be + * negative for dates before the epoch. + * + * @return + * Days since January 1, 1970 + */ + [[nodiscard]] static constexpr Days toDaysSinceEpoch( + YearInt_t year, uint8_t month, uint8_t day + ) noexcept + { + // CREDITS: Howard Hinnant [Mr. Chrono] - (Ripple Labs) + // Convert {year, month, day} triple into a serial count of days. + year -= month <= February; + const int era = year / YEARS_IN_ERA; + const unsigned yoe = static_cast(year - era * YEARS_IN_ERA); + const unsigned doy = (153 * (month + (month > February ? -3 : 9)) + 2) / 5 + day - 1; + const unsigned doe = yoe * DAYS_IN_YEAR + yoe / 4 - yoe / 100 + doy; + return Days{static_cast(era * 146'097 + static_cast(doe) - 719'468)}; + } + + /*! + * @brief + * Converts a serial count of days since Unix + * epoch to a calendar date. + * + * @details + * Uses Howard Hinnant’s civil date algorithm + * to convert a signed day count relative to + * the Unix epoch (1970-01-01 = day 0) into a + * year, month, day combination. Returns a + * `GregorianDate` representing the calculated + * civil date. + * + * @return + * Gregorian calendar date + */ + [[nodiscard]] static constexpr Date fromDaysSinceEpoch(Days serial_days) noexcept + { + // CREDITS: Howard Hinnant [Mr. Chrono] - (Ripple Labs) + // Convert a serial count of days into a {year, month, day} triple. + unsigned long serialCount = serial_days.count(); + serialCount += 719'468; + const int era = (serialCount >= 0 ? serialCount : serialCount - 146'096) / 146'097; + const unsigned doe = static_cast(serialCount - era * 146'097); + const unsigned yoe = (doe - doe / 1'460 + doe / 36'524 - doe / 146'096) / DAYS_IN_YEAR; + const YearInt_t y = static_cast(yoe) + era * YEARS_IN_ERA; + const unsigned doy = doe - (DAYS_IN_YEAR * yoe + yoe / 4 - yoe / 100); + const unsigned mp = (5 * doy + 2) / 153; + const uint8_t d = static_cast(doy - (153 * mp + 2) / 5 + 1); + const uint8_t m = static_cast(mp + (mp < 10 ? 3 : -9)); + return Date{static_cast(y + (m <= 2)), m, d}; + } + + /*! + * @brief + * Converts a calendar date to a Unix timestamp + * (seconds since epoch). + * + * @details + * Uses `toDaysSinceEpoch()` to calculate the + * number of days since the Unix epoch + * (1970-01-01) and multiplies by the number + * of seconds in a day to obtain the equivalent + * timestamp in seconds. The returned value is + * stored in `stl::UnixTimestamp` and may be + * negative for dates before the epoch. + * + * @return + * Unix timestamp + */ + [[nodiscard]] static constexpr stl::UnixTimestamp toUnixTimestamp( + const YearInt_t year, const uint8_t month, const uint8_t day + ) noexcept + { + return static_cast( + Seconds{toDaysSinceEpoch(year, month, day)}.count() + ); + } + + /*! + * @brief + * Converts a Unix timestamp (seconds since + * epoch) to a calendar date. + * + * @details + * Divides the given `stl::UnixTimestamp` by the + * number of seconds in a day to convert seconds + * to whole days since the Unix epoch (1970-01-01), + * then calls `fromDaysSinceEpoch()` to obtain the + * corresponding calendar date. + * + * @return + * Gregorian calendar date + */ + [[nodiscard]] static constexpr Date fromUnixTimestamp(const stl::UnixTimestamp& timestamp + ) noexcept + { + return fromDaysSinceEpoch( + Days{static_cast(timestamp / SECONDS_IN_DAY)} + ); + } + + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + * + * @details + * TODO: INCOMPLETE COMMENT!!! + * + * @return + * Next date between Mon and Fri + */ + [[nodiscard]] static constexpr Date getNextWeekday(const Date from_date) noexcept + { + // TODO: INCOMPLETE!!! + return Date{}; + } + + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + * + * @details + * TODO: INCOMPLETE COMMENT!!! + * + * @return + * Last date between Mon and Fri + */ + [[nodiscard]] static constexpr Date getLastWeekday(const Date from_date) noexcept + { + // TODO: INCOMPLETE!!! + return Date{}; + } + + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + * + * @details + * TODO: INCOMPLETE COMMENT!!! + * + * @return + * Next Saturday date + */ + [[nodiscard]] static constexpr Date getNextWeekend(const Date from_date) noexcept + { + // TODO: INCOMPLETE!!! + return Date{}; + } + + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + * + * @details + * TODO: INCOMPLETE COMMENT!!! + * + * @return + * Last Saturday date + */ + [[nodiscard]] static constexpr Date getLastWeekend(const Date from_date) noexcept + { + // TODO: INCOMPLETE!!! + return Date{}; + } + + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + * + * @details + * TODO: INCOMPLETE COMMENT!!! + * + * @return + * Array of calendar week dates + */ + [[nodiscard]] static constexpr WeekDates getWeek( + const YearInt_t year, const uint8_t week_index + ) noexcept + { + // TODO: INCOMPLETE!!! + return WeekDates{}; + } + + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + * + * @details + * TODO: INCOMPLETE COMMENT!!! + * + * @return + * Array of calendar week dates + */ + [[nodiscard]] static constexpr WeekDates getWeek(const Date date) noexcept + { + // TODO: INCOMPLETE!!! + return WeekDates{}; + } private: GregorianCalendar() = delete; From b29a02949dc3cf5eb5ff7a2d43b74b44ed171b3e Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sun, 21 Sep 2025 14:40:38 -0400 Subject: [PATCH 322/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index bcae397..a9a7602 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -29,11 +29,12 @@ int main(int argc, char* argv[]) ProjectInfoOut(); //\\// - using Calendar = simplydt::gregorian::GregorianCalendar; - using Date = simplydt::gregorian::GregorianDate; - using Time = simplydt::utc::UTCTime; - using Days = simplydt::Days; - using Seconds = simplydt::Seconds; + using Calendar = simplydt::gregorian::GregorianCalendar; + using Date = simplydt::gregorian::GregorianDate; + using Time = simplydt::utc::UTCTime; + using Days = simplydt::Days; + using Seconds = simplydt::Seconds; + using UnixTimestamp = simplydt::stl::UnixTimestamp; constexpr Date todayDate{2'025, 9, 7}; constexpr Date pastDate{2'025, 8, 23}; @@ -133,6 +134,10 @@ int main(int argc, char* argv[]) constexpr const char* mnm = Calendar::getMonthName(todayDate); constexpr std::string_view mabbr = Calendar::getMonthAbbrev(todayDate); constexpr Calendar::Month mrepr = Calendar::getMonthEnumRepr(todayDate); + constexpr Days jtb = Calendar::toDaysSinceEpoch(2001, 2, 23); + constexpr Date rtc = Calendar::fromDaysSinceEpoch(jtb); + constexpr UnixTimestamp ts = Calendar::toUnixTimestamp(2001, 2, 23); + constexpr Date rtc2 = Calendar::fromUnixTimestamp(ts); } //_SUSPEND_// const GregorianDate blizz = From 4b253c3157addd44e06ca610ceb67eaa321a6f35 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sun, 21 Sep 2025 14:42:40 -0400 Subject: [PATCH 323/400] Create old_gregorian_calendar.hpp --- .../gregorian/old_gregorian_calendar.hpp | 664 ++++++++++++++++++ 1 file changed, 664 insertions(+) create mode 100644 include/simplydt/calendar/gregorian/old_gregorian_calendar.hpp diff --git a/include/simplydt/calendar/gregorian/old_gregorian_calendar.hpp b/include/simplydt/calendar/gregorian/old_gregorian_calendar.hpp new file mode 100644 index 0000000..38935a1 --- /dev/null +++ b/include/simplydt/calendar/gregorian/old_gregorian_calendar.hpp @@ -0,0 +1,664 @@ + +// Copyright (C) 2026 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. +// Released under the terms of the GNU Affero General Public License version 3. + +// [ISJTB-CXX-XL20230401-000001] + +/*! + * @file gregorian_calendar.hpp + * + * @brief + * Gregorian calendar system declaration. + */ + + +#ifndef SIMPLYDT_LIB_GREGORIAN_CALENDAR_STRUCT_H_ +#define SIMPLYDT_LIB_GREGORIAN_CALENDAR_STRUCT_H_ + +#include "simplydt/calendar/abstract_calendar.hpp" +#include "simplydt/calendar/concepts/calendar_contract.hpp" +#include "simplydt/calendar/gregorian/gregorian_date.hpp" +#include "simplydt/common/stl_chrono_utils.hpp" + +//_-_// namespace simplydt::gregorian +//_-_// { +//_-_// +//_-_// /*! +//_-_// * @brief +//_-_// * Gregorian calendar system. +//_-_// */ +//_-_// struct GregorianCalendar final : +//_-_// public CalendricalSystem { +//_-_// /*! +//_-_// * @brief +//_-_// * Identifies the calendar system represented by this +//_-_// * implementation. +//_-_// */ +//_-_// static constexpr CalendarSystem calendar = CalendarSystem::GREGORIAN; +//_-_// +//_-_// /*! +//_-_// * @brief +//_-_// * Indicates whether the calendar system is solar-based. +//_-_// * +//_-_// * @details +//_-_// * This constant specifies that the Gregorian calendar system +//_-_// * follows a solar model, where date progression is based on +//_-_// * the Earth's orbit around the Sun. +//_-_// */ +//_-_// static constexpr bool isSolarCalendar = true; +//_-_// +//_-_// /*! +//_-_// * @brief +//_-_// * Indicates whether the calendar system is lunar-based. +//_-_// * +//_-_// * @details +//_-_// * This constant specifies that the Gregorian calendar system +//_-_// * does not follow a lunar model, which bases months on the +//_-_// * phases of the Moon. +//_-_// */ +//_-_// static constexpr bool isLunarCalendar = false; +//_-_// +//_-_// /*! +//_-_// * @brief +//_-_// * Indicates whether the calendar system is lunisolar-based. +//_-_// * +//_-_// * @details +//_-_// * This constant specifies that the Gregorian calendar system +//_-_// * does not follow a lunisolar model, which combines solar +//_-_// * and lunar cycles to structure months and years. +//_-_// */ +//_-_// static constexpr bool isLunisolarCalendar = false; +//_-_// +//_-_// /*! +//_-_// * @brief +//_-_// * Full names of Gregorian calendar months. +//_-_// */ +//_-_// static constexpr inline const std::array& MONTH_NAMES +//= +//_-_// Months; +//_-_// +//_-_// /*! +//_-_// * @brief +//_-_// * Abbreviated names of Gregorian calendar months. +//_-_// */ +//_-_// static constexpr inline const std::array& +// MONTH_ABBREVS = +//_-_// MonthAbbrevs; +//_-_// +//_-_// /*! +//_-_// * @brief +//_-_// * Full names of Gregorian calendar days-of-week. +//_-_// */ +//_-_// static constexpr inline const std::array& +// DAY_OF_WEEK_NAMES = +//_-_// DaysOfWeek; +//_-_// +//_-_// /*! +//_-_// * @brief +//_-_// * Abbreviated names of Gregorian calendar days-of-week. +//_-_// */ +//_-_// static constexpr inline const std::array& +//_-_// DAY_OF_WEEK_ABBREVS = DayOfWeekAbbrevs; +//_-_// +//_-_// /*! +//_-_// * @brief +//_-_// * Evaluate support of year value. +//_-_// * +//_-_// * @details +//_-_// * This function returns true if the given year falls within +//_-_// * the inclusive bounds defined by `YEAR_MINIMUM` and +//_-_// * `YEAR_MAXIMUM` for the Gregorian calendar system. +//_-_// * +//_-_// * @return +//_-_// * True if supported year value +//_-_// */ +//_-_// [[nodiscard]] static constexpr bool isValidYear(const YearInt_t year) noexcept +//_-_// { +//_-_// return year >= YEAR_MINIMUM && year <= YEAR_MAXIMUM; +//_-_// } +//_-_// +//_-_// /*! +//_-_// * @brief +//_-_// * Determines whether a given year is a leap year. +//_-_// * +//_-_// * @details +//_-_// * This function checks if the specified year qualifies as a +//_-_// * leap year under Gregorian calendar rules. A year is +//_-_// * considered a leap year if it is divisible by 4, except for +//_-_// * years divisible by 100 unless it is also divisible by 400. +//_-_// * +//_-_// * @return +//_-_// * True if provided year is a leap year +//_-_// */ +//_-_// [[nodiscard]] static constexpr bool isLeapYear(const YearInt_t year) noexcept +//_-_// { +//_-_// return (year % 4) == 0 && (year % 100 != 0 || year % YEARS_IN_ERA == 0); +//_-_// } +//_-_// +//_-_// /*! +//_-_// * @brief +//_-_// * Determines whether a given date is within a leap year. +//_-_// * +//_-_// * @return +//_-_// * True if provided date is within a leap year +//_-_// */ +//_-_// [[nodiscard]] static constexpr bool isLeapYear(const Date& date) noexcept +//_-_// { +//_-_// return isLeapYear(date.year()); +//_-_// } +//_-_// +//_-_// /*! +//_-_// * @brief +//_-_// * Returns total number of days in a given calendar year. +//_-_// * +//_-_// * @details +//_-_// * Determines whether the specified year is a leap year and +//_-_// * returns `DAYS_IN_LEAP_YEAR` or `DAYS_IN_YEAR` accordingly. +//_-_// * If the year is unsupported the function returns 0. +//_-_// * +//_-_// * @return +//_-_// * Total days in year +//_-_// */ +//_-_// [[nodiscard]] static constexpr uint16_t getDaysInYear(const YearInt_t year) +// noexcept +//_-_// { +//_-_// if (!isValidYear(year)) +//_-_// return 0; // Unsupported year +//_-_// +//_-_// return isLeapYear(year) ? DAYS_IN_LEAP_YEAR : DAYS_IN_YEAR; +//_-_// } +//_-_// +//_-_// /*! +//_-_// * @brief +//_-_// * Returns total number of days in the year of a given date. +//_-_// * +//_-_// * @details +//_-_// * Extracts the year from the provided `Date` to determine +//_-_// * the total number of days in the year. +//_-_// * +//_-_// * @return +//_-_// * Total days in year +//_-_// */ +//_-_// [[nodiscard]] static constexpr uint16_t getDaysInYear(const Date date) noexcept +//_-_// { +//_-_// return getDaysInYear(date.year()); +//_-_// } +//_-_// +//_-_// /*! +//_-_// * @brief +//_-_// * Checks if a month value is within valid range. +//_-_// * +//_-_// * @details +//_-_// * This function returns true if the given month falls within +//_-_// * the inclusive bounds defined by `MIN_MONTH_OF_YEAR` and +//_-_// * `MAX_MONTH_OF_YEAR` for the Gregorian calendar system. +//_-_// * +//_-_// * @return +//_-_// * True if valid numerical month value +//_-_// */ +//_-_// [[nodiscard]] static constexpr bool isValidMonth(const uint8_t month) noexcept +//_-_// { +//_-_// return month >= MIN_MONTH_OF_YEAR && month <= MAX_MONTH_OF_YEAR; +//_-_// } +//_-_// +//_-_// /*! +//_-_// * @brief +//_-_// * Returns total number of days in a given month of a +//_-_// * specified year. +//_-_// * +//_-_// * @details +//_-_// * This function handles the varying lengths of months in +//_-_// * the Gregorian calendar, including the special case of +//_-_// * February during a leap year. The function first validates +//_-_// * the year and month; if either is invalid, it returns 0 to +//_-_// * indicate an unsupported or invalid date component. +//_-_// * +//_-_// * @return +//_-_// * Total days in month +//_-_// */ +//_-_// [[nodiscard]] static constexpr uint8_t getDaysInMonth( +//_-_// const YearInt_t year, const uint8_t month +//_-_// ) noexcept +//_-_// { +//_-_// if (!isValidYear(year) || !isValidMonth(month)) +//_-_// return 0; // Unsupported or invalid +//_-_// +//_-_// switch (month) { +//_-_// case February: +//_-_// switch (isLeapYear(year)) { +//_-_// case true: +//_-_// return 29; +//_-_// default: +//_-_// return 28; +//_-_// } +//_-_// +//_-_// case April: +//_-_// case June: +//_-_// case September: +//_-_// case November: +//_-_// return 30; +//_-_// +//_-_// // January, March, May, July, August, October, December +//_-_// default: +//_-_// return 31; +//_-_// } +//_-_// } +//_-_// +//_-_// /*! +//_-_// * @brief +//_-_// * Returns total number of days in the month of a specified +//_-_// * date. +//_-_// * +//_-_// * @details +//_-_// * Extracts the year and month from the provided `Date` to +//_-_// * determine the total number of days in the dates month. +//_-_// * +//_-_// * @return +//_-_// * Total days in month +//_-_// */ +//_-_// [[nodiscard]] static constexpr uint8_t getDaysInMonth(const Date date) noexcept +//_-_// { +//_-_// return getDaysInMonth(date.year(), date.month()); +//_-_// } +//_-_// +//_-_// /*! +//_-_// * @brief +//_-_// * Checks if a day value is within valid range. +//_-_// * +//_-_// * @details +//_-_// * This function returns true if the given day falls within +//_-_// * the inclusive bounds defined by `MIN_DAY_OF_MONTH` and +//_-_// * `MAX_DAY_OF_MONTH` for the Gregorian calendar system. +//_-_// * +//_-_// * @return +//_-_// * True if valid day value +//_-_// */ +//_-_// [[nodiscard]] static constexpr bool isValidDay(const uint8_t day) noexcept +//_-_// { +//_-_// return day >= MIN_DAY_OF_MONTH && day <= MAX_DAY_OF_MONTH; +//_-_// } +//_-_// +//_-_// /*! +//_-_// * @brief +//_-_// * Checks if a given year, month, and day combination form +//_-_// * a valid calendar date. +//_-_// * +//_-_// * @details +//_-_// * This function returns true when the provided date parameters +//_-_// * describe a real date on the Gregorian calendar. This is +//_-_// * achieved by comparing the dates day to the total number +//_-_// * of days in the month. If the provided year is not supported, +//_-_// * the function returns false. +//_-_// * +//_-_// * @return +//_-_// * True if date exists on calendar +//_-_// */ +//_-_// [[nodiscard]] static constexpr bool isValidDate( +//_-_// const YearInt_t year, const uint8_t month, const uint8_t day +//_-_// ) noexcept +//_-_// { +//_-_// if (!isValidYear(year)) +//_-_// return false; +//_-_// +//_-_// const uint8_t monthTotalDays = getDaysInMonth(year, month); +//_-_// return day <= monthTotalDays; +//_-_// } +//_-_// +//_-_// /*! +//_-_// * @brief +//_-_// * Checks if a given date is a valid calendar date. +//_-_// * +//_-_// * @details +//_-_// * Extracts components from the provided `Date` to determine +//_-_// * validity of the date. +//_-_// * +//_-_// * @return +//_-_// * True if date exists on calendar +//_-_// */ +//_-_// [[nodiscard]] static constexpr bool isValidDate(const Date date) noexcept +//_-_// { +//_-_// return isValidDate(date.year(), date.month(), date.day()); +//_-_// } +//_-_// +//_-_// /*! +//_-_// * @brief +//_-_// * Checks if a day-of-week index is within valid range. +//_-_// * +//_-_// * @details +//_-_// * Accepts a zero-based day-of-week index +//_-_// * (0 = Sunday ... 6 = Saturday). Returns true only if the +//_-_// * index is less than `DAYS_IN_WEEK`. +//_-_// * +//_-_// * @return +//_-_// * True if valid day-of-week index +//_-_// */ +//_-_// [[nodiscard]] static constexpr bool isValidDOWIndex(const uint8_t dow) noexcept +//_-_// { +//_-_// return dow < DAYS_IN_WEEK; +//_-_// } +//_-_// +//_-_// /*! +//_-_// * @brief +//_-_// * Calculates day-of-week index for a given calendar date. +//_-_// * +//_-_// * @details +//_-_// * Implements Tomohiko Sakamoto's algorithm to determine +//_-_// * the day of the week for the specified year, month, and +//_-_// * day combination. Returns a zero-based day-of-week index +//_-_// * (0 = Sunday ... 6 = Saturday), or `INVALID_DOW_INDEX` +//_-_// * if the provided date does not exist on the calendar. +//_-_// * +//_-_// * @return +//_-_// * Day-of-week index +//_-_// */ +//_-_// [[nodiscard]] static constexpr uint8_t getDayOfWeekIndex( +//_-_// YearInt_t year, uint8_t month, uint8_t day +//_-_// ) noexcept +//_-_// { +//_-_// if (!isValidDate(year, month, day)) +//_-_// return INVALID_DOW_INDEX; +//_-_// +//_-_// // CREDITS: Tomohiko Sakamoto +//_-_// // Day-of-week index algorithm +//_-_// year -= (month < March); // Extra days from leap year +//_-_// // only affect March and later +//_-_// const uint8_t monthIndex = month - 1; +//_-_// const int index = +//_-_// ((year + year / 4 - year / 100 + year / YEARS_IN_ERA + +//_-_// sakamoto::MONTH_KEY[monthIndex] + day) % +//_-_// DAYS_IN_WEEK); +//_-_// +//_-_// if (index >= DAYS_IN_WEEK) +//_-_// return INVALID_DOW_INDEX; +//_-_// +//_-_// return static_cast(index); +//_-_// } +//_-_// +//_-_// /*! +//_-_// * @brief +//_-_// * Calculates day-of-week index for a given calendar date. +//_-_// * +//_-_// * @details +//_-_// * Extracts the year, month, and day from the given `Date` +//_-_// * instance to compute the zero-based day-of-week index. +//_-_// * +//_-_// * @return +//_-_// * Day-of-week index +//_-_// */ +//_-_// [[nodiscard]] static constexpr uint8_t getDayOfWeekIndex(const Date date) noexcept +//_-_// { +//_-_// return getDayOfWeekIndex(date.year(), date.month(), date.day()); +//_-_// } +//_-_// +//_-_// /*! +//_-_// * @brief +//_-_// * Determines number of weeks a specified month spans +//_-_// * over the calendar. +//_-_// * +//_-_// * @details +//_-_// * Calculates how many full or partial weeks are needed to +//_-_// * contain all days of the specified month in a standard +//_-_// * calendar grid. The result depends on the day of the week +//_-_// * the month starts on and the total number of days in the +//_-_// * month. Returns 0 if the month is invalid or if the +//_-_// * provided year is unsupported. +//_-_// * +//_-_// * @return +//_-_// * Number of weeks month spans +//_-_// */ +//_-_// [[nodiscard]] static constexpr uint8_t getWeeksInMonth( +//_-_// const YearInt_t year, const uint8_t month +//_-_// ) noexcept +//_-_// { +//_-_// const uint8_t monthTotalDays = getDaysInMonth(year, month); +//_-_// +//_-_// if (monthTotalDays == 0) +//_-_// return 0; // Unsupported or invalid +//_-_// +//_-_// const uint8_t firstOfMonthDowIndex = getDayOfWeekIndex(year, month, 1); +//_-_// const uint8_t monthCells = firstOfMonthDowIndex + monthTotalDays; +//_-_// return (monthCells + 6) / DAYS_IN_WEEK; +//_-_// } +//_-_// +//_-_// /*! +//_-_// * @brief +//_-_// * Determines number of weeks a calendar dates month +//_-_// * spans over the calendar. +//_-_// * +//_-_// * @details +//_-_// * Extracts the year and month from the provided `Date` +//_-_// * instance to calculate the number of weeks a month +//_-_// * spans over the calendar. +//_-_// * +//_-_// * @return +//_-_// * Number of weeks month spans +//_-_// */ +//_-_// [[nodiscard]] static constexpr uint8_t getWeeksInMonth(const Date date) noexcept +//_-_// { +//_-_// return getWeeksInMonth(date.year(), date.month()); +//_-_// } +//_-_// +//_-_// /*! +//_-_// * @brief +//_-_// * Converts a calendar date to serial number of days since +//_-_// * Unix epoch. +//_-_// * +//_-_// * @details +//_-_// * Uses Howard Hinnant’s civil date algorithm to convert +//_-_// * a year, month, day combination into a signed day count +//_-_// * relative to the Unix epoch (1970-01-01 = day 0). The +//_-_// * result can be negative for dates before the epoch. +//_-_// * +//_-_// * @return +//_-_// * Days since January 1, 1970 +//_-_// */ +//_-_// [[nodiscard]] static constexpr int32_t toDaysSinceEpoch( +//_-_// YearInt_t year, uint8_t month, uint8_t day +//_-_// ) noexcept +//_-_// { +//_-_// // CREDITS: Howard Hinnant [Mr. Chrono] - (Ripple Labs) +//_-_// // Convert {year, month, day} triple into a serial count of days. +//_-_// year -= month <= February; +//_-_// const int era = year / YEARS_IN_ERA; +//_-_// const unsigned yoe = static_cast(year - era * YEARS_IN_ERA); +//_-_// const unsigned doy = (153 * (month + (month > February ? -3 : 9)) + 2) / 5 + +// day - 1; +//_-_// const unsigned doe = yoe * DAYS_IN_YEAR + yoe / 4 - yoe / 100 + doy; +//_-_// return static_cast(era * 146'097 + static_cast(doe) - 719'468); +//_-_// } +//_-_// +//_-_// /*! +//_-_// * @brief +//_-_// * Converts a calendar date to serial number of days since +//_-_// * Unix epoch. +//_-_// * +//_-_// * @details +//_-_// * Extracts the date components from the provided `Date` +//_-_// * instance to calculate a signed day count relative to +//_-_// * the Unix epoch (1970-01-01 = day 0). The result can be +//_-_// * negative for dates before the epoch. +//_-_// * +//_-_// * @return +//_-_// * Days since January 1, 1970 +//_-_// */ +//_-_// [[nodiscard]] static constexpr int32_t toDaysSinceEpoch(const Date date) noexcept +//_-_// { +//_-_// return toDaysSinceEpoch(date.year(), date.month(), date.day()); +//_-_// } +//_-_// +//_-_// /*! +//_-_// * @brief +//_-_// * Converts a serial count of days since Unix epoch to +//_-_// * a calendar date. +//_-_// * +//_-_// * @details +//_-_// * Uses Howard Hinnant’s civil date algorithm to convert +//_-_// * a signed day count relative to the Unix epoch +//_-_// * (1970-01-01 = day 0) into a year, month, day combination. +//_-_// * Returns a `GregorianDate` representing the calculated +//_-_// * civil date. +//_-_// * +//_-_// * @return +//_-_// * Gregorian calendar date +//_-_// */ +//_-_// [[nodiscard]] static constexpr Date fromDaysSinceEpoch(int32_t serial_days) +// noexcept +//_-_// { +//_-_// // CREDITS: Howard Hinnant [Mr. Chrono] - (Ripple Labs) +//_-_// // Convert a serial count of days into a {year, month, day} triple. +//_-_// serial_days += 719'468; +//_-_// const int era = (serial_days >= 0 ? serial_days : serial_days - 146'096) / +// 146'097; +//_-_// const unsigned doe = static_cast(serial_days - era * 146'097); +//_-_// const unsigned yoe = (doe - doe / 1'460 + doe / 36'524 - doe / 146'096) / +// DAYS_IN_YEAR; +//_-_// const YearInt_t y = static_cast(yoe) + era * YEARS_IN_ERA; +//_-_// const unsigned doy = doe - (DAYS_IN_YEAR * yoe + yoe / 4 - yoe / 100); +//_-_// const unsigned mp = (5 * doy + 2) / 153; +//_-_// const uint8_t d = static_cast(doy - (153 * mp + 2) / 5 + 1); +//_-_// const uint8_t m = static_cast(mp + (mp < 10 ? 3 : -9)); +//_-_// return Date{static_cast(y + (m <= 2)), m, d}; +//_-_// } +//_-_// +//_-_// /*! +//_-_// * @brief +//_-_// * Converts a calendar date to a Unix timestamp (seconds +//_-_// * since epoch). +//_-_// * +//_-_// * @details +//_-_// * Uses `toDaysSinceEpoch()` to calculate the number of +//_-_// * days since the Unix epoch (1970-01-01) and multiplies +//_-_// * by the number of seconds in a day to obtain the +//_-_// * equivalent timestamp in seconds. The returned value +//_-_// * is stored in `stl::UnixTimestamp` and may be negative +//_-_// * for dates before the epoch. +//_-_// * +//_-_// * @return +//_-_// * Unix timestamp +//_-_// */ +//_-_// [[nodiscard]] static constexpr stl::UnixTimestamp toUnixTimestamp( +//_-_// const YearInt_t year, const uint8_t month, const uint8_t day +//_-_// ) noexcept +//_-_// { +//_-_// return static_cast(toDaysSinceEpoch(year, month, day) * +// 86'400); +//_-_// } +//_-_// +//_-_// /*! +//_-_// * @brief +//_-_// * Converts a calendar date to a Unix timestamp (seconds +//_-_// * since epoch). +//_-_// * +//_-_// * @details +//_-_// * Extracts the date components from the provided `Date` +//_-_// * instance to calculate the corresponding Unix timestamp. +//_-_// * The returned value is stored in `stl::UnixTimestamp` +//_-_// * and may be negative for dates before the epoch. +//_-_// * +//_-_// * @return +//_-_// * Unix timestamp +//_-_// */ +//_-_// [[nodiscard]] static constexpr stl::UnixTimestamp toUnixTimestamp(const Date date) +// noexcept +//_-_// { +//_-_// return toUnixTimestamp(date.year(), date.month(), date.day()); +//_-_// } +//_-_// +//_-_// /*! +//_-_// * @brief +//_-_// * Converts a Unix timestamp (seconds since epoch) to a +//_-_// * calendar date. +//_-_// * +//_-_// * @details +//_-_// * Divides the given `stl::UnixTimestamp` by the number +//_-_// * of seconds in a day to convert seconds to whole days +//_-_// * since the Unix epoch (1970-01-01), then calls +//_-_// * `fromDaysSinceEpoch()` to obtain the corresponding +//_-_// * calendar date. +//_-_// * +//_-_// * @return +//_-_// * Gregorian calendar date +//_-_// */ +//_-_// [[nodiscard]] static constexpr Date fromUnixTimestamp(const stl::UnixTimestamp& +// timestamp +//_-_// ) noexcept +//_-_// { +//_-_// return fromDaysSinceEpoch(static_cast(timestamp / 86'400)); +//_-_// } +//_-_// +//_-_// /*! +//_-_// * @brief +//_-_// * Converts a system clock time point to a local calendar +//_-_// * date. +//_-_// * +//_-_// * @details +//_-_// * Interprets the given `stl::SystemTimePoint` as local +//_-_// * time by converting it to a Unix timestamp and then +//_-_// * populating a `std::tm` structure via +//_-_// * `stl::deriveLocalDateTimeFromTimestamp()`. The +//_-_// * resulting year, month, and day fields are used to +//_-_// * construct and return a `GregorianDate`. If the local +//_-_// * date conversion fails a default constructed Gregorian +//_-_// * date is returned. +//_-_// * +//_-_// * @return +//_-_// * Gregorian calendar date +//_-_// */ +//_-_// [[nodiscard]] static Date fromTimePoint(const stl::SystemTimePoint& time_point) +// noexcept +//_-_// { +//_-_// const stl::UnixTimestamp secsSinceEpoch = +// stl::SystemClock::to_time_t(time_point); +//_-_// stl::CalendarDateTime dateBuffer{}; +//_-_// +//_-_// if (!stl::deriveLocalDateTimeFromTimestamp(&secsSinceEpoch, &dateBuffer)) +//_-_// return Date{}; // Failed to interpret local date +//_-_// +//_-_// return Date{ +//_-_// static_cast( +//_-_// dateBuffer.tm_year + 1'900 +//_-_// ), // tm_year measures years since 1900 +//_-_// static_cast( +//_-_// dateBuffer.tm_mon + 1 +//_-_// ), // tm_mon measures months since January +//_-_// static_cast(dateBuffer.tm_mday) +//_-_// }; +//_-_// } +//_-_// +//_-_// /*! +//_-_// * @brief +//_-_// * Converts a system clock time point to a local calendar +//_-_// * date. +//_-_// * +//_-_// * @details +//_-_// * If `local` is true (time-zone), interprets the given +//_-_// * `stl::SystemTimePoint` as local time. If `local` is false +//_-_// * (no time-zone), interprets the time point as UTC. If the +//_-_// * local date conversion fails a default constructed Gregorian +//_-_// * date is returned. +//_-_// * +//_-_// * @return +//_-_// * Gregorian calendar date +//_-_// */ +//_-_// [[nodiscard]] static Date fromTimePoint( +//_-_// const stl::SystemTimePoint& time_point, const bool local +//_-_// ) noexcept +//_-_// { +//_-_// if (local) +//_-_// return fromTimePoint(time_point); +//_-_// +//_-_// const stl::UnixTimestamp secsSinceEpoch = +// stl::SystemClock::to_time_t(time_point); +//_-_// return fromUnixTimestamp(secsSinceEpoch); +//_-_// } +//_-_// +//_-_// private: +//_-_// GregorianCalendar() = delete; +//_-_// ~GregorianCalendar() = delete; +//_-_// }; +//_-_// +//_-_// SIMPLYDT_ENFORCE_CALENDAR_CONTRACT(GregorianCalendar); +//_-_// +//_-_// } // namespace simplydt::gregorian + +#endif // SIMPLYDT_LIB_GREGORIAN_CALENDAR_STRUCT_H_ From 95152e5e36ebe2a2a10c1b2e4ca67a04c9afb00c Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sun, 21 Sep 2025 14:42:45 -0400 Subject: [PATCH 324/400] Delete gregorian_calendar2.hpp --- .../gregorian/gregorian_calendar2.hpp | 660 ------------------ 1 file changed, 660 deletions(-) delete mode 100644 include/simplydt/calendar/gregorian/gregorian_calendar2.hpp diff --git a/include/simplydt/calendar/gregorian/gregorian_calendar2.hpp b/include/simplydt/calendar/gregorian/gregorian_calendar2.hpp deleted file mode 100644 index 69fc772..0000000 --- a/include/simplydt/calendar/gregorian/gregorian_calendar2.hpp +++ /dev/null @@ -1,660 +0,0 @@ - -// Copyright (C) 2026 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. -// Released under the terms of the GNU Affero General Public License version 3. - -// [ISJTB-CXX-XL20230401-000001] - -/*! - * @file gregorian_calendar.hpp - * - * @brief - * Gregorian calendar declaration. - */ - - -#ifndef SIMPLYDT_LIB_GREGORIAN_CALENDAR_H_ -#define SIMPLYDT_LIB_GREGORIAN_CALENDAR_H_ - -#include "simplydt/calendar/abstract_calendar.hpp" -#include "simplydt/calendar/concepts/calendar_api_contract.hpp" -#include "simplydt/calendar/gregorian/gregorian_date.hpp" - -namespace simplydt::gregorian -{ - -/*! - * @brief - * Gregorian calendar system. - * - * @details - * TODO: INCOMPLETE COMMENT!!! - */ -struct GregorianCalendar : // TODO: INCOMPLETE!!! (methods missing) - public CalendricalSystem { - /*! @brief Array of dates in one calendar week. */ - using WeekDates = std::array; - - /*! - * @brief - * Identifies calendar system represented by - * this implementation. - */ - static constexpr CalendarSystem calendar = CalendarSystem::GREGORIAN; - - /*! - * @brief - * Indicates whether calendar system is - * solar-based. - * - * @details - * This constant specifies that the Gregorian - * calendar system follows a solar model, where - * date progression is based on the Earth's - * orbit around the Sun. - */ - static constexpr bool isSolarCalendar = true; - - /*! - * @brief - * Indicates whether calendar system is - * lunar-based. - * - * @details - * This constant specifies that the Gregorian - * calendar system does not follow a lunar - * model, which bases months on the phases of - * the Moon. - */ - static constexpr bool isLunarCalendar = false; - - /*! - * @brief - * Indicates whether calendar system is - * lunisolar-based. - * - * @details - * This constant specifies that the Gregorian - * calendar system does not follow a lunisolar - * model, which combines solar and lunar cycles - * to structure months and years. - */ - static constexpr bool isLunisolarCalendar = false; - - /*! - * @brief - * Full names of Gregorian calendar months. - */ - static constexpr inline const std::array& MONTH_NAMES = - Months; - - /*! - * @brief - * Abbreviated names of Gregorian calendar - * months. - */ - static constexpr inline const std::array& MONTH_ABBREVS = - MonthAbbrevs; - - /*! - * @brief - * Full names of Gregorian calendar - * days-of-week. - */ - static constexpr inline const std::array& DAY_OF_WEEK_NAMES = - DaysOfWeek; - - /*! - * @brief - * Abbreviated names of Gregorian calendar - * days-of-week. - */ - static constexpr inline const std::array& - DAY_OF_WEEK_ABBREVS = DayOfWeekAbbrevs; - - /*! - * @brief - * Evaluate support of year value. - * - * @details - * This function returns true if the given year - * falls within the inclusive bounds defined by - * `YEAR_MINIMUM` and `YEAR_MAXIMUM` for the - * Gregorian calendar system. - * - * @return - * True if supported year value - */ - [[nodiscard]] static constexpr bool isValidYear(const YearInt_t year) noexcept - { - return DatePolicy::isValidYear(year); - } - - /*! - * @brief - * Determines whether a given year is a leap year. - * - * @details - * This function checks if the specified year - * qualifies as a leap year under Gregorian - * calendar rules. A year is considered a leap - * year if it is divisible by 4, except for - * years divisible by 100 unless it is also - * divisible by 400. - * - * @return - * True if leap year - */ - [[nodiscard]] static constexpr bool isLeapYear(const YearInt_t year) noexcept - { - return DatePolicy::isLeapYear(year); - } - - /*! - * @brief - * Determines whether a date is within a leap - * year. - * - * @return - * True if leap year - */ - [[nodiscard]] static constexpr bool isLeapYear(const Date date) noexcept - { - return DatePolicy::isLeapYear(date.year()); - } - - /*! - * @brief - * Returns total number of days in a given - * calendar year. - * - * @details - * Determines whether the specified year is a - * leap year and returns `DAYS_IN_LEAP_YEAR` or - * `DAYS_IN_YEAR` accordingly. If the year is - * unsupported the function returns 0. - * - * @return - * Total days in year - */ - [[nodiscard]] static constexpr uint16_t getDaysInYear(const YearInt_t year) noexcept - { - if (!DatePolicy::isValidYear(year)) - return 0; // Unsupported year - - return DatePolicy::isLeapYear(year) ? DAYS_IN_LEAP_YEAR : DAYS_IN_YEAR; - } - - /*! - * @brief - * Returns total number of days in a given - * calendar year. - * - * @details - * Extracts the year from the provided `Date` - * to determine the total number of days in - * the year. - * - * @return - * Total days in year - */ - [[nodiscard]] static constexpr uint16_t getDaysInYear(const Date date) noexcept - { - return DatePolicy::isLeapYear(date.year()) ? DAYS_IN_LEAP_YEAR : DAYS_IN_YEAR; - } - - /*! - * @brief - * Checks if numerical month value is within - * valid range. - * - * @details - * This function returns true if the given - * month falls within the inclusive bounds - * defined by `MIN_MONTH_OF_YEAR` and - * `MAX_MONTH_OF_YEAR` for the Gregorian - * calendar system. - * - * @return - * True if valid numerical month - */ - [[nodiscard]] static constexpr bool isValidMonth(const uint8_t month) noexcept - { - return DatePolicy::isValidMonth(month); - } - - /*! - * @brief - * Returns total number of days in a given - * month of a specified year. - * - * @details - * This function handles the varying lengths of - * months in the Gregorian calendar, including - * the special case of February during a leap - * year. The function first validates the year - * and month; if either is invalid, it returns 0 - * to indicate an unsupported or invalid date - * component. - * - * @return - * Total days in month - */ - [[nodiscard]] static constexpr uint8_t getDaysInMonth( - const YearInt_t year, const uint8_t month - ) noexcept - { - return DatePolicy::getDaysInMonth(year, month); - } - - /*! - * @brief - * Returns total number of days within month of - * a given date. - * - * @details - * Extracts the year and month from the provided - * `Date` to determine the total number of days - * in the dates month. - * - * @return - * Total days in month - */ - [[nodiscard]] static constexpr uint8_t getDaysInMonth(const Date date) noexcept - { - return DatePolicy::getDaysInMonth(date.year(), date.month()); - } - - /*! - * @brief - * Checks if day value is within valid range. - * - * @details - * This function returns true if the given day - * falls within the inclusive bounds defined by - * `MIN_DAY_OF_MONTH` and `MAX_DAY_OF_MONTH` for - * the Gregorian calendar system. - * - * @return - * True if valid day value - */ - [[nodiscard]] static constexpr bool isValidDay(const uint8_t day) noexcept - { - return day >= MIN_DAY_OF_MONTH && day <= MAX_DAY_OF_MONTH; - } - - /*! - * @brief - * Checks if day-of-week index is within valid - * range. - * - * @details - * Accepts a zero-based day-of-week index - * (0 = Sunday ... 6 = Saturday). Returns true - * only if the index is less than `DAYS_IN_WEEK`. - * - * @return - * True if valid day-of-week index - */ - [[nodiscard]] static constexpr bool isValidDOWIndex(const uint8_t dow_index) noexcept - { - return dow_index < DAYS_IN_WEEK; - } - - /*! - * @brief - * Checks if given year, month, and day - * combination form a valid calendar date. - * - * @details - * This function returns true when the provided - * date parameters describe a real date on the - * Gregorian calendar. This is achieved by - * comparing the dates day to the total number - * of days in the month. If the provided year - * is not supported, the function returns false. - * - * @return - * True if date exists on calendar - */ - [[nodiscard]] static constexpr bool isValidDate( - const YearInt_t year, const uint8_t month, const uint8_t day - ) noexcept - { - if (!isValidYear(year)) - return false; - - const uint8_t monthTotalDays = getDaysInMonth(year, month); - return day <= monthTotalDays; - } - - /*! - * @brief - * Calculates day-of-week index of provided - * calendar date. - * - * @details - * Implements Tomohiko Sakamoto's algorithm to - * determine the day of the week for the - * specified year, month, and day combination. - * Returns a zero-based day-of-week index - * (0 = Sunday ... 6 = Saturday), or - * `INVALID_DOW_INDEX` if the provided date - * does not exist on the calendar. - * - * @return - * Day-of-week index - */ - [[nodiscard]] static constexpr uint8_t getDayOfWeekIndex( - YearInt_t year, uint8_t month, uint8_t day - ) noexcept - { - if (!isValidDate(year, month, day)) - return INVALID_DOW_INDEX; - - // CREDITS: Tomohiko Sakamoto - // Day-of-week index algorithm - year -= (month < March); // Extra days from leap year - // only affect March and later - const uint8_t monthIndex = month - 1; - const int index = - ((year + year / 4 - year / 100 + year / YEARS_IN_ERA + - sakamoto::MONTH_KEY[monthIndex] + day) % - DAYS_IN_WEEK); - - return static_cast(index); - } - - /*! - * @brief - * Calculates day-of-week index for a given - * calendar date. - * - * @details - * Extracts the year, month, and day from the - * given `Date` instance to compute the - * zero-based day-of-week index. - * - * @return - * Day-of-week index - */ - [[nodiscard]] static constexpr uint8_t getDayOfWeekIndex(const Date date) noexcept - { - return getDayOfWeekIndex(date.year(), date.month(), date.day()); - } - - /*! - * @brief - * Number of full 7-day weeks contained in - * specified month. - * - * @details - * Calculates how many full seven-day calendar - * weeks are in the provided month. Fractional - * week information is truncated (*floor*) and - * results are not dependent on current day of - * the week. Returns 0 if the month is invalid - * or if the provided year is unsupported. - * - * @return - * Number of weeks in month - */ - [[nodiscard]] static constexpr uint8_t getWeeksInMonth( - const YearInt_t year, const uint8_t month - ) noexcept - { - const uint8_t monthTotalDays = getDaysInMonth(year, month); - - if (monthTotalDays == 0) - return 0; // Unsupported or invalid - - return static_cast(monthTotalDays / DAYS_IN_WEEK); - } - - /*! - * @brief - * Determines number of weeks a specified month - * spans over the calendar. - * - * @details - * Calculates how many full or partial weeks are - * needed to contain all days of the specified - * month in a standard calendar grid. The result - * depends on the day of the week the month starts - * on and the total number of days in the monthh. - * Returns 0 if the month is invalid or if the - * provided year is unsupported. - * - * @return - * Number of weeks month spans - */ - [[nodiscard]] static constexpr uint8_t getWeeksMonthSpans( - const YearInt_t year, const uint8_t month - ) noexcept - { - const uint8_t monthTotalDays = getDaysInMonth(year, month); - - if (monthTotalDays == 0) - return 0; // Unsupported or invalid - - const uint8_t firstOfMonthDowIndex = getDayOfWeekIndex(year, month, 1); - const uint8_t monthCells = firstOfMonthDowIndex + monthTotalDays; - return (monthCells + 6) / DAYS_IN_WEEK; - } - - /*! - * @brief - * Converts a calendar date to serial number of - * days since Unix epoch. - * - * @details - * Uses Howard Hinnant’s civil date algorithm to - * convert a year, month, day combination into a - * signed day count relative to the Unix epoch - * (1970-01-01 = day 0). The result can be - * negative for dates before the epoch. - * - * @return - * Days since January 1, 1970 - */ - [[nodiscard]] static constexpr Days toDaysSinceEpoch( - YearInt_t year, uint8_t month, uint8_t day - ) noexcept - { - // CREDITS: Howard Hinnant [Mr. Chrono] - (Ripple Labs) - // Convert {year, month, day} triple into a serial count of days. - year -= month <= February; - const int era = year / YEARS_IN_ERA; - const unsigned yoe = static_cast(year - era * YEARS_IN_ERA); - const unsigned doy = (153 * (month + (month > February ? -3 : 9)) + 2) / 5 + day - 1; - const unsigned doe = yoe * DAYS_IN_YEAR + yoe / 4 - yoe / 100 + doy; - return Days{static_cast(era * 146'097 + static_cast(doe) - 719'468)}; - } - - /*! - * @brief - * Converts a serial count of days since Unix - * epoch to a calendar date. - * - * @details - * Uses Howard Hinnant’s civil date algorithm - * to convert a signed day count relative to - * the Unix epoch (1970-01-01 = day 0) into a - * year, month, day combination. Returns a - * `GregorianDate` representing the calculated - * civil date. - * - * @return - * Gregorian calendar date - */ - [[nodiscard]] static constexpr Date fromDaysSinceEpoch(Days serial_days) noexcept - { - // CREDITS: Howard Hinnant [Mr. Chrono] - (Ripple Labs) - // Convert a serial count of days into a {year, month, day} triple. - unsigned long serialCount = serial_days.count(); - serialCount += 719'468; - const int era = (serialCount >= 0 ? serialCount : serialCount - 146'096) / 146'097; - const unsigned doe = static_cast(serialCount - era * 146'097); - const unsigned yoe = (doe - doe / 1'460 + doe / 36'524 - doe / 146'096) / DAYS_IN_YEAR; - const YearInt_t y = static_cast(yoe) + era * YEARS_IN_ERA; - const unsigned doy = doe - (DAYS_IN_YEAR * yoe + yoe / 4 - yoe / 100); - const unsigned mp = (5 * doy + 2) / 153; - const uint8_t d = static_cast(doy - (153 * mp + 2) / 5 + 1); - const uint8_t m = static_cast(mp + (mp < 10 ? 3 : -9)); - return Date{static_cast(y + (m <= 2)), m, d}; - } - - /*! - * @brief - * Converts a calendar date to a Unix timestamp - * (seconds since epoch). - * - * @details - * Uses `toDaysSinceEpoch()` to calculate the - * number of days since the Unix epoch - * (1970-01-01) and multiplies by the number - * of seconds in a day to obtain the equivalent - * timestamp in seconds. The returned value is - * stored in `stl::UnixTimestamp` and may be - * negative for dates before the epoch. - * - * @return - * Unix timestamp - */ - [[nodiscard]] static constexpr stl::UnixTimestamp toUnixTimestamp( - const YearInt_t year, const uint8_t month, const uint8_t day - ) noexcept - { - return static_cast( - Seconds{toDaysSinceEpoch(year, month, day)}.count() - ); - } - - /*! - * @brief - * Converts a Unix timestamp (seconds since - * epoch) to a calendar date. - * - * @details - * Divides the given `stl::UnixTimestamp` by the - * number of seconds in a day to convert seconds - * to whole days since the Unix epoch (1970-01-01), - * then calls `fromDaysSinceEpoch()` to obtain the - * corresponding calendar date. - * - * @return - * Gregorian calendar date - */ - [[nodiscard]] static constexpr Date fromUnixTimestamp(const stl::UnixTimestamp& timestamp - ) noexcept - { - return fromDaysSinceEpoch( - Days{static_cast(timestamp / SECONDS_IN_DAY)} - ); - } - - /*! - * @brief - * TODO: INCOMPLETE COMMENT!!! - * - * @details - * TODO: INCOMPLETE COMMENT!!! - * - * @return - * Next date between Mon and Fri - */ - [[nodiscard]] static constexpr Date getNextWeekday(const Date from_date) noexcept - { - // TODO: INCOMPLETE!!! - return Date{}; - } - - /*! - * @brief - * TODO: INCOMPLETE COMMENT!!! - * - * @details - * TODO: INCOMPLETE COMMENT!!! - * - * @return - * Last date between Mon and Fri - */ - [[nodiscard]] static constexpr Date getLastWeekday(const Date from_date) noexcept - { - // TODO: INCOMPLETE!!! - return Date{}; - } - - /*! - * @brief - * TODO: INCOMPLETE COMMENT!!! - * - * @details - * TODO: INCOMPLETE COMMENT!!! - * - * @return - * Next Saturday date - */ - [[nodiscard]] static constexpr Date getNextWeekend(const Date from_date) noexcept - { - // TODO: INCOMPLETE!!! - return Date{}; - } - - /*! - * @brief - * TODO: INCOMPLETE COMMENT!!! - * - * @details - * TODO: INCOMPLETE COMMENT!!! - * - * @return - * Last Saturday date - */ - [[nodiscard]] static constexpr Date getLastWeekend(const Date from_date) noexcept - { - // TODO: INCOMPLETE!!! - return Date{}; - } - - /*! - * @brief - * TODO: INCOMPLETE COMMENT!!! - * - * @details - * TODO: INCOMPLETE COMMENT!!! - * - * @return - * Array of calendar week dates - */ - [[nodiscard]] static constexpr WeekDates getWeek( - const YearInt_t year, const uint8_t week_index - ) noexcept - { - // TODO: INCOMPLETE!!! - return WeekDates{}; - } - - /*! - * @brief - * TODO: INCOMPLETE COMMENT!!! - * - * @details - * TODO: INCOMPLETE COMMENT!!! - * - * @return - * Array of calendar week dates - */ - [[nodiscard]] static constexpr WeekDates getWeek(const Date date) noexcept - { - // TODO: INCOMPLETE!!! - return WeekDates{}; - } - - private: - GregorianCalendar() = delete; - ~GregorianCalendar() = delete; -}; - -} // namespace simplydt::gregorian - -#endif // SIMPLYDT_LIB_GREGORIAN_CALENDAR_H_ From 481a8e4728545942cb066aab2eabb72e8a026375 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sun, 21 Sep 2025 14:43:03 -0400 Subject: [PATCH 325/400] Update gregorian_calendar.hpp --- .../calendar/gregorian/gregorian_calendar.hpp | 566 +++++++++--------- 1 file changed, 288 insertions(+), 278 deletions(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp index cb2bec7..69fc772 100644 --- a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp @@ -8,17 +8,16 @@ * @file gregorian_calendar.hpp * * @brief - * Gregorian calendar system declaration. + * Gregorian calendar declaration. */ -#ifndef SIMPLYDT_LIB_GREGORIAN_CALENDAR_STRUCT_H_ -#define SIMPLYDT_LIB_GREGORIAN_CALENDAR_STRUCT_H_ +#ifndef SIMPLYDT_LIB_GREGORIAN_CALENDAR_H_ +#define SIMPLYDT_LIB_GREGORIAN_CALENDAR_H_ #include "simplydt/calendar/abstract_calendar.hpp" -#include "simplydt/calendar/concepts/calendar_contract.hpp" +#include "simplydt/calendar/concepts/calendar_api_contract.hpp" #include "simplydt/calendar/gregorian/gregorian_date.hpp" -#include "simplydt/common/stl_chrono_utils.hpp" namespace simplydt::gregorian { @@ -26,46 +25,58 @@ namespace simplydt::gregorian /*! * @brief * Gregorian calendar system. + * + * @details + * TODO: INCOMPLETE COMMENT!!! */ -struct GregorianCalendar final : +struct GregorianCalendar : // TODO: INCOMPLETE!!! (methods missing) public CalendricalSystem { + /*! @brief Array of dates in one calendar week. */ + using WeekDates = std::array; + /*! * @brief - * Identifies the calendar system represented by this - * implementation. + * Identifies calendar system represented by + * this implementation. */ static constexpr CalendarSystem calendar = CalendarSystem::GREGORIAN; /*! * @brief - * Indicates whether the calendar system is solar-based. + * Indicates whether calendar system is + * solar-based. * * @details - * This constant specifies that the Gregorian calendar system - * follows a solar model, where date progression is based on - * the Earth's orbit around the Sun. + * This constant specifies that the Gregorian + * calendar system follows a solar model, where + * date progression is based on the Earth's + * orbit around the Sun. */ static constexpr bool isSolarCalendar = true; /*! * @brief - * Indicates whether the calendar system is lunar-based. + * Indicates whether calendar system is + * lunar-based. * * @details - * This constant specifies that the Gregorian calendar system - * does not follow a lunar model, which bases months on the - * phases of the Moon. + * This constant specifies that the Gregorian + * calendar system does not follow a lunar + * model, which bases months on the phases of + * the Moon. */ static constexpr bool isLunarCalendar = false; /*! * @brief - * Indicates whether the calendar system is lunisolar-based. + * Indicates whether calendar system is + * lunisolar-based. * * @details - * This constant specifies that the Gregorian calendar system - * does not follow a lunisolar model, which combines solar - * and lunar cycles to structure months and years. + * This constant specifies that the Gregorian + * calendar system does not follow a lunisolar + * model, which combines solar and lunar cycles + * to structure months and years. */ static constexpr bool isLunisolarCalendar = false; @@ -78,21 +89,24 @@ struct GregorianCalendar final : /*! * @brief - * Abbreviated names of Gregorian calendar months. + * Abbreviated names of Gregorian calendar + * months. */ static constexpr inline const std::array& MONTH_ABBREVS = MonthAbbrevs; /*! * @brief - * Full names of Gregorian calendar days-of-week. + * Full names of Gregorian calendar + * days-of-week. */ static constexpr inline const std::array& DAY_OF_WEEK_NAMES = DaysOfWeek; /*! * @brief - * Abbreviated names of Gregorian calendar days-of-week. + * Abbreviated names of Gregorian calendar + * days-of-week. */ static constexpr inline const std::array& DAY_OF_WEEK_ABBREVS = DayOfWeekAbbrevs; @@ -102,16 +116,17 @@ struct GregorianCalendar final : * Evaluate support of year value. * * @details - * This function returns true if the given year falls within - * the inclusive bounds defined by `YEAR_MINIMUM` and - * `YEAR_MAXIMUM` for the Gregorian calendar system. + * This function returns true if the given year + * falls within the inclusive bounds defined by + * `YEAR_MINIMUM` and `YEAR_MAXIMUM` for the + * Gregorian calendar system. * * @return * True if supported year value */ [[nodiscard]] static constexpr bool isValidYear(const YearInt_t year) noexcept { - return year >= YEAR_MINIMUM && year <= YEAR_MAXIMUM; + return DatePolicy::isValidYear(year); } /*! @@ -119,95 +134,107 @@ struct GregorianCalendar final : * Determines whether a given year is a leap year. * * @details - * This function checks if the specified year qualifies as a - * leap year under Gregorian calendar rules. A year is - * considered a leap year if it is divisible by 4, except for - * years divisible by 100 unless it is also divisible by 400. + * This function checks if the specified year + * qualifies as a leap year under Gregorian + * calendar rules. A year is considered a leap + * year if it is divisible by 4, except for + * years divisible by 100 unless it is also + * divisible by 400. * * @return - * True if provided year is a leap year + * True if leap year */ [[nodiscard]] static constexpr bool isLeapYear(const YearInt_t year) noexcept { - return (year % 4) == 0 && (year % 100 != 0 || year % YEARS_IN_ERA == 0); + return DatePolicy::isLeapYear(year); } /*! * @brief - * Determines whether a given date is within a leap year. + * Determines whether a date is within a leap + * year. * * @return - * True if provided date is within a leap year + * True if leap year */ - [[nodiscard]] static constexpr bool isLeapYear(const Date& date) noexcept + [[nodiscard]] static constexpr bool isLeapYear(const Date date) noexcept { - return isLeapYear(date.year()); + return DatePolicy::isLeapYear(date.year()); } /*! * @brief - * Returns total number of days in a given calendar year. + * Returns total number of days in a given + * calendar year. * * @details - * Determines whether the specified year is a leap year and - * returns `DAYS_IN_LEAP_YEAR` or `DAYS_IN_YEAR` accordingly. - * If the year is unsupported the function returns 0. + * Determines whether the specified year is a + * leap year and returns `DAYS_IN_LEAP_YEAR` or + * `DAYS_IN_YEAR` accordingly. If the year is + * unsupported the function returns 0. * * @return * Total days in year */ [[nodiscard]] static constexpr uint16_t getDaysInYear(const YearInt_t year) noexcept { - if (!isValidYear(year)) + if (!DatePolicy::isValidYear(year)) return 0; // Unsupported year - - return isLeapYear(year) ? DAYS_IN_LEAP_YEAR : DAYS_IN_YEAR; + + return DatePolicy::isLeapYear(year) ? DAYS_IN_LEAP_YEAR : DAYS_IN_YEAR; } /*! * @brief - * Returns total number of days in the year of a given date. + * Returns total number of days in a given + * calendar year. * * @details - * Extracts the year from the provided `Date` to determine - * the total number of days in the year. + * Extracts the year from the provided `Date` + * to determine the total number of days in + * the year. * * @return * Total days in year */ [[nodiscard]] static constexpr uint16_t getDaysInYear(const Date date) noexcept { - return getDaysInYear(date.year()); + return DatePolicy::isLeapYear(date.year()) ? DAYS_IN_LEAP_YEAR : DAYS_IN_YEAR; } /*! * @brief - * Checks if a month value is within valid range. + * Checks if numerical month value is within + * valid range. * * @details - * This function returns true if the given month falls within - * the inclusive bounds defined by `MIN_MONTH_OF_YEAR` and - * `MAX_MONTH_OF_YEAR` for the Gregorian calendar system. + * This function returns true if the given + * month falls within the inclusive bounds + * defined by `MIN_MONTH_OF_YEAR` and + * `MAX_MONTH_OF_YEAR` for the Gregorian + * calendar system. * * @return - * True if valid numerical month value + * True if valid numerical month */ [[nodiscard]] static constexpr bool isValidMonth(const uint8_t month) noexcept { - return month >= MIN_MONTH_OF_YEAR && month <= MAX_MONTH_OF_YEAR; + return DatePolicy::isValidMonth(month); } /*! * @brief - * Returns total number of days in a given month of a - * specified year. + * Returns total number of days in a given + * month of a specified year. * * @details - * This function handles the varying lengths of months in - * the Gregorian calendar, including the special case of - * February during a leap year. The function first validates - * the year and month; if either is invalid, it returns 0 to - * indicate an unsupported or invalid date component. + * This function handles the varying lengths of + * months in the Gregorian calendar, including + * the special case of February during a leap + * year. The function first validates the year + * and month; if either is invalid, it returns 0 + * to indicate an unsupported or invalid date + * component. * * @return * Total days in month @@ -216,55 +243,36 @@ struct GregorianCalendar final : const YearInt_t year, const uint8_t month ) noexcept { - if (!isValidYear(year) || !isValidMonth(month)) - return 0; // Unsupported or invalid - - switch (month) { - case February: - switch (isLeapYear(year)) { - case true: - return 29; - default: - return 28; - } - - case April: - case June: - case September: - case November: - return 30; - - // January, March, May, July, August, October, December - default: - return 31; - } + return DatePolicy::getDaysInMonth(year, month); } /*! * @brief - * Returns total number of days in the month of a specified - * date. + * Returns total number of days within month of + * a given date. * * @details - * Extracts the year and month from the provided `Date` to - * determine the total number of days in the dates month. + * Extracts the year and month from the provided + * `Date` to determine the total number of days + * in the dates month. * * @return * Total days in month */ [[nodiscard]] static constexpr uint8_t getDaysInMonth(const Date date) noexcept { - return getDaysInMonth(date.year(), date.month()); + return DatePolicy::getDaysInMonth(date.year(), date.month()); } /*! * @brief - * Checks if a day value is within valid range. + * Checks if day value is within valid range. * * @details - * This function returns true if the given day falls within - * the inclusive bounds defined by `MIN_DAY_OF_MONTH` and - * `MAX_DAY_OF_MONTH` for the Gregorian calendar system. + * This function returns true if the given day + * falls within the inclusive bounds defined by + * `MIN_DAY_OF_MONTH` and `MAX_DAY_OF_MONTH` for + * the Gregorian calendar system. * * @return * True if valid day value @@ -276,73 +284,62 @@ struct GregorianCalendar final : /*! * @brief - * Checks if a given year, month, and day combination form - * a valid calendar date. + * Checks if day-of-week index is within valid + * range. * * @details - * This function returns true when the provided date parameters - * describe a real date on the Gregorian calendar. This is - * achieved by comparing the dates day to the total number - * of days in the month. If the provided year is not supported, - * the function returns false. + * Accepts a zero-based day-of-week index + * (0 = Sunday ... 6 = Saturday). Returns true + * only if the index is less than `DAYS_IN_WEEK`. * * @return - * True if date exists on calendar + * True if valid day-of-week index */ - [[nodiscard]] static constexpr bool isValidDate( - const YearInt_t year, const uint8_t month, const uint8_t day - ) noexcept + [[nodiscard]] static constexpr bool isValidDOWIndex(const uint8_t dow_index) noexcept { - if (!isValidYear(year)) - return false; - - const uint8_t monthTotalDays = getDaysInMonth(year, month); - return day <= monthTotalDays; + return dow_index < DAYS_IN_WEEK; } /*! * @brief - * Checks if a given date is a valid calendar date. + * Checks if given year, month, and day + * combination form a valid calendar date. * * @details - * Extracts components from the provided `Date` to determine - * validity of the date. + * This function returns true when the provided + * date parameters describe a real date on the + * Gregorian calendar. This is achieved by + * comparing the dates day to the total number + * of days in the month. If the provided year + * is not supported, the function returns false. * * @return * True if date exists on calendar */ - [[nodiscard]] static constexpr bool isValidDate(const Date date) noexcept - { - return isValidDate(date.year(), date.month(), date.day()); - } - - /*! - * @brief - * Checks if a day-of-week index is within valid range. - * - * @details - * Accepts a zero-based day-of-week index - * (0 = Sunday ... 6 = Saturday). Returns true only if the - * index is less than `DAYS_IN_WEEK`. - * - * @return - * True if valid day-of-week index - */ - [[nodiscard]] static constexpr bool isValidDOWIndex(const uint8_t dow) noexcept + [[nodiscard]] static constexpr bool isValidDate( + const YearInt_t year, const uint8_t month, const uint8_t day + ) noexcept { - return dow < DAYS_IN_WEEK; + if (!isValidYear(year)) + return false; + + const uint8_t monthTotalDays = getDaysInMonth(year, month); + return day <= monthTotalDays; } /*! * @brief - * Calculates day-of-week index for a given calendar date. + * Calculates day-of-week index of provided + * calendar date. * * @details - * Implements Tomohiko Sakamoto's algorithm to determine - * the day of the week for the specified year, month, and - * day combination. Returns a zero-based day-of-week index - * (0 = Sunday ... 6 = Saturday), or `INVALID_DOW_INDEX` - * if the provided date does not exist on the calendar. + * Implements Tomohiko Sakamoto's algorithm to + * determine the day of the week for the + * specified year, month, and day combination. + * Returns a zero-based day-of-week index + * (0 = Sunday ... 6 = Saturday), or + * `INVALID_DOW_INDEX` if the provided date + * does not exist on the calendar. * * @return * Day-of-week index @@ -353,7 +350,7 @@ struct GregorianCalendar final : { if (!isValidDate(year, month, day)) return INVALID_DOW_INDEX; - + // CREDITS: Tomohiko Sakamoto // Day-of-week index algorithm year -= (month < March); // Extra days from leap year @@ -363,20 +360,19 @@ struct GregorianCalendar final : ((year + year / 4 - year / 100 + year / YEARS_IN_ERA + sakamoto::MONTH_KEY[monthIndex] + day) % DAYS_IN_WEEK); - - if (index >= DAYS_IN_WEEK) - return INVALID_DOW_INDEX; - + return static_cast(index); } /*! * @brief - * Calculates day-of-week index for a given calendar date. + * Calculates day-of-week index for a given + * calendar date. * * @details - * Extracts the year, month, and day from the given `Date` - * instance to compute the zero-based day-of-week index. + * Extracts the year, month, and day from the + * given `Date` instance to compute the + * zero-based day-of-week index. * * @return * Day-of-week index @@ -388,19 +384,19 @@ struct GregorianCalendar final : /*! * @brief - * Determines number of weeks a specified month spans - * over the calendar. + * Number of full 7-day weeks contained in + * specified month. * * @details - * Calculates how many full or partial weeks are needed to - * contain all days of the specified month in a standard - * calendar grid. The result depends on the day of the week - * the month starts on and the total number of days in the - * month. Returns 0 if the month is invalid or if the - * provided year is unsupported. + * Calculates how many full seven-day calendar + * weeks are in the provided month. Fractional + * week information is truncated (*floor*) and + * results are not dependent on current day of + * the week. Returns 0 if the month is invalid + * or if the provided year is unsupported. * * @return - * Number of weeks month spans + * Number of weeks in month */ [[nodiscard]] static constexpr uint8_t getWeeksInMonth( const YearInt_t year, const uint8_t month @@ -411,44 +407,56 @@ struct GregorianCalendar final : if (monthTotalDays == 0) return 0; // Unsupported or invalid - const uint8_t firstOfMonthDowIndex = getDayOfWeekIndex(year, month, 1); - const uint8_t monthCells = firstOfMonthDowIndex + monthTotalDays; - return (monthCells + 6) / DAYS_IN_WEEK; + return static_cast(monthTotalDays / DAYS_IN_WEEK); } /*! * @brief - * Determines number of weeks a calendar dates month + * Determines number of weeks a specified month * spans over the calendar. * * @details - * Extracts the year and month from the provided `Date` - * instance to calculate the number of weeks a month - * spans over the calendar. + * Calculates how many full or partial weeks are + * needed to contain all days of the specified + * month in a standard calendar grid. The result + * depends on the day of the week the month starts + * on and the total number of days in the monthh. + * Returns 0 if the month is invalid or if the + * provided year is unsupported. * * @return * Number of weeks month spans */ - [[nodiscard]] static constexpr uint8_t getWeeksInMonth(const Date date) noexcept + [[nodiscard]] static constexpr uint8_t getWeeksMonthSpans( + const YearInt_t year, const uint8_t month + ) noexcept { - return getWeeksInMonth(date.year(), date.month()); + const uint8_t monthTotalDays = getDaysInMonth(year, month); + + if (monthTotalDays == 0) + return 0; // Unsupported or invalid + + const uint8_t firstOfMonthDowIndex = getDayOfWeekIndex(year, month, 1); + const uint8_t monthCells = firstOfMonthDowIndex + monthTotalDays; + return (monthCells + 6) / DAYS_IN_WEEK; } /*! * @brief - * Converts a calendar date to serial number of days since - * Unix epoch. + * Converts a calendar date to serial number of + * days since Unix epoch. * * @details - * Uses Howard Hinnant’s civil date algorithm to convert - * a year, month, day combination into a signed day count - * relative to the Unix epoch (1970-01-01 = day 0). The - * result can be negative for dates before the epoch. + * Uses Howard Hinnant’s civil date algorithm to + * convert a year, month, day combination into a + * signed day count relative to the Unix epoch + * (1970-01-01 = day 0). The result can be + * negative for dates before the epoch. * * @return * Days since January 1, 1970 */ - [[nodiscard]] static constexpr int32_t toDaysSinceEpoch( + [[nodiscard]] static constexpr Days toDaysSinceEpoch( YearInt_t year, uint8_t month, uint8_t day ) noexcept { @@ -459,50 +467,33 @@ struct GregorianCalendar final : const unsigned yoe = static_cast(year - era * YEARS_IN_ERA); const unsigned doy = (153 * (month + (month > February ? -3 : 9)) + 2) / 5 + day - 1; const unsigned doe = yoe * DAYS_IN_YEAR + yoe / 4 - yoe / 100 + doy; - return static_cast(era * 146'097 + static_cast(doe) - 719'468); - } - - /*! - * @brief - * Converts a calendar date to serial number of days since - * Unix epoch. - * - * @details - * Extracts the date components from the provided `Date` - * instance to calculate a signed day count relative to - * the Unix epoch (1970-01-01 = day 0). The result can be - * negative for dates before the epoch. - * - * @return - * Days since January 1, 1970 - */ - [[nodiscard]] static constexpr int32_t toDaysSinceEpoch(const Date date) noexcept - { - return toDaysSinceEpoch(date.year(), date.month(), date.day()); + return Days{static_cast(era * 146'097 + static_cast(doe) - 719'468)}; } /*! * @brief - * Converts a serial count of days since Unix epoch to - * a calendar date. + * Converts a serial count of days since Unix + * epoch to a calendar date. * * @details - * Uses Howard Hinnant’s civil date algorithm to convert - * a signed day count relative to the Unix epoch - * (1970-01-01 = day 0) into a year, month, day combination. - * Returns a `GregorianDate` representing the calculated + * Uses Howard Hinnant’s civil date algorithm + * to convert a signed day count relative to + * the Unix epoch (1970-01-01 = day 0) into a + * year, month, day combination. Returns a + * `GregorianDate` representing the calculated * civil date. * * @return * Gregorian calendar date */ - [[nodiscard]] static constexpr Date fromDaysSinceEpoch(int32_t serial_days) noexcept + [[nodiscard]] static constexpr Date fromDaysSinceEpoch(Days serial_days) noexcept { // CREDITS: Howard Hinnant [Mr. Chrono] - (Ripple Labs) // Convert a serial count of days into a {year, month, day} triple. - serial_days += 719'468; - const int era = (serial_days >= 0 ? serial_days : serial_days - 146'096) / 146'097; - const unsigned doe = static_cast(serial_days - era * 146'097); + unsigned long serialCount = serial_days.count(); + serialCount += 719'468; + const int era = (serialCount >= 0 ? serialCount : serialCount - 146'096) / 146'097; + const unsigned doe = static_cast(serialCount - era * 146'097); const unsigned yoe = (doe - doe / 1'460 + doe / 36'524 - doe / 146'096) / DAYS_IN_YEAR; const YearInt_t y = static_cast(yoe) + era * YEARS_IN_ERA; const unsigned doy = doe - (DAYS_IN_YEAR * yoe + yoe / 4 - yoe / 100); @@ -514,16 +505,17 @@ struct GregorianCalendar final : /*! * @brief - * Converts a calendar date to a Unix timestamp (seconds - * since epoch). + * Converts a calendar date to a Unix timestamp + * (seconds since epoch). * * @details - * Uses `toDaysSinceEpoch()` to calculate the number of - * days since the Unix epoch (1970-01-01) and multiplies - * by the number of seconds in a day to obtain the - * equivalent timestamp in seconds. The returned value - * is stored in `stl::UnixTimestamp` and may be negative - * for dates before the epoch. + * Uses `toDaysSinceEpoch()` to calculate the + * number of days since the Unix epoch + * (1970-01-01) and multiplies by the number + * of seconds in a day to obtain the equivalent + * timestamp in seconds. The returned value is + * stored in `stl::UnixTimestamp` and may be + * negative for dates before the epoch. * * @return * Unix timestamp @@ -532,110 +524,130 @@ struct GregorianCalendar final : const YearInt_t year, const uint8_t month, const uint8_t day ) noexcept { - return static_cast(toDaysSinceEpoch(year, month, day) * 86'400); + return static_cast( + Seconds{toDaysSinceEpoch(year, month, day)}.count() + ); } /*! * @brief - * Converts a calendar date to a Unix timestamp (seconds - * since epoch). + * Converts a Unix timestamp (seconds since + * epoch) to a calendar date. * * @details - * Extracts the date components from the provided `Date` - * instance to calculate the corresponding Unix timestamp. - * The returned value is stored in `stl::UnixTimestamp` - * and may be negative for dates before the epoch. + * Divides the given `stl::UnixTimestamp` by the + * number of seconds in a day to convert seconds + * to whole days since the Unix epoch (1970-01-01), + * then calls `fromDaysSinceEpoch()` to obtain the + * corresponding calendar date. * * @return - * Unix timestamp + * Gregorian calendar date */ - [[nodiscard]] static constexpr stl::UnixTimestamp toUnixTimestamp(const Date date) noexcept + [[nodiscard]] static constexpr Date fromUnixTimestamp(const stl::UnixTimestamp& timestamp + ) noexcept { - return toUnixTimestamp(date.year(), date.month(), date.day()); + return fromDaysSinceEpoch( + Days{static_cast(timestamp / SECONDS_IN_DAY)} + ); } /*! * @brief - * Converts a Unix timestamp (seconds since epoch) to a - * calendar date. - * + * TODO: INCOMPLETE COMMENT!!! + * * @details - * Divides the given `stl::UnixTimestamp` by the number - * of seconds in a day to convert seconds to whole days - * since the Unix epoch (1970-01-01), then calls - * `fromDaysSinceEpoch()` to obtain the corresponding - * calendar date. - * + * TODO: INCOMPLETE COMMENT!!! + * * @return - * Gregorian calendar date + * Next date between Mon and Fri */ - [[nodiscard]] static constexpr Date fromUnixTimestamp(const stl::UnixTimestamp& timestamp - ) noexcept + [[nodiscard]] static constexpr Date getNextWeekday(const Date from_date) noexcept { - return fromDaysSinceEpoch(static_cast(timestamp / 86'400)); + // TODO: INCOMPLETE!!! + return Date{}; } /*! * @brief - * Converts a system clock time point to a local calendar - * date. - * + * TODO: INCOMPLETE COMMENT!!! + * * @details - * Interprets the given `stl::SystemTimePoint` as local - * time by converting it to a Unix timestamp and then - * populating a `std::tm` structure via - * `stl::deriveLocalDateTimeFromTimestamp()`. The - * resulting year, month, and day fields are used to - * construct and return a `GregorianDate`. If the local - * date conversion fails a default constructed Gregorian - * date is returned. - * + * TODO: INCOMPLETE COMMENT!!! + * * @return - * Gregorian calendar date + * Last date between Mon and Fri */ - [[nodiscard]] static Date fromTimePoint(const stl::SystemTimePoint& time_point) noexcept + [[nodiscard]] static constexpr Date getLastWeekday(const Date from_date) noexcept { - const stl::UnixTimestamp secsSinceEpoch = stl::SystemClock::to_time_t(time_point); - stl::CalendarDateTime dateBuffer{}; - - if (!stl::deriveLocalDateTimeFromTimestamp(&secsSinceEpoch, &dateBuffer)) - return Date{}; // Failed to interpret local date - - return Date{ - static_cast( - dateBuffer.tm_year + 1'900 - ), // tm_year measures years since 1900 - static_cast( - dateBuffer.tm_mon + 1 - ), // tm_mon measures months since January - static_cast(dateBuffer.tm_mday) - }; + // TODO: INCOMPLETE!!! + return Date{}; } /*! * @brief - * Converts a system clock time point to a local calendar - * date. - * + * TODO: INCOMPLETE COMMENT!!! + * * @details - * If `local` is true (time-zone), interprets the given - * `stl::SystemTimePoint` as local time. If `local` is false - * (no time-zone), interprets the time point as UTC. If the - * local date conversion fails a default constructed Gregorian - * date is returned. - * + * TODO: INCOMPLETE COMMENT!!! + * * @return - * Gregorian calendar date + * Next Saturday date + */ + [[nodiscard]] static constexpr Date getNextWeekend(const Date from_date) noexcept + { + // TODO: INCOMPLETE!!! + return Date{}; + } + + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + * + * @details + * TODO: INCOMPLETE COMMENT!!! + * + * @return + * Last Saturday date + */ + [[nodiscard]] static constexpr Date getLastWeekend(const Date from_date) noexcept + { + // TODO: INCOMPLETE!!! + return Date{}; + } + + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + * + * @details + * TODO: INCOMPLETE COMMENT!!! + * + * @return + * Array of calendar week dates */ - [[nodiscard]] static Date fromTimePoint( - const stl::SystemTimePoint& time_point, const bool local + [[nodiscard]] static constexpr WeekDates getWeek( + const YearInt_t year, const uint8_t week_index ) noexcept { - if (local) - return fromTimePoint(time_point); + // TODO: INCOMPLETE!!! + return WeekDates{}; + } - const stl::UnixTimestamp secsSinceEpoch = stl::SystemClock::to_time_t(time_point); - return fromUnixTimestamp(secsSinceEpoch); + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + * + * @details + * TODO: INCOMPLETE COMMENT!!! + * + * @return + * Array of calendar week dates + */ + [[nodiscard]] static constexpr WeekDates getWeek(const Date date) noexcept + { + // TODO: INCOMPLETE!!! + return WeekDates{}; } private: @@ -643,8 +655,6 @@ struct GregorianCalendar final : ~GregorianCalendar() = delete; }; -SIMPLYDT_ENFORCE_CALENDAR_CONTRACT(GregorianCalendar); - } // namespace simplydt::gregorian -#endif // SIMPLYDT_LIB_GREGORIAN_CALENDAR_STRUCT_H_ +#endif // SIMPLYDT_LIB_GREGORIAN_CALENDAR_H_ From bf6ff719c813e0bc32ff1e70c39f7d13c558a4df Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sun, 21 Sep 2025 14:43:08 -0400 Subject: [PATCH 326/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index a9a7602..3bac9d4 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -21,7 +21,7 @@ // Includes... #include "simplydt/calendar/gregorian/gregorian_date.hpp" -#include "simplydt/calendar/gregorian/gregorian_calendar2.hpp" +#include "simplydt/calendar/gregorian/gregorian_calendar.hpp" #include "simplydt/time/utc/utc_time.hpp" int main(int argc, char* argv[]) From 03d10d1d6410fee1eb7b49205256c2d261d9374b Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sun, 21 Sep 2025 14:56:57 -0400 Subject: [PATCH 327/400] Update diagrams.drawio --- docs/prj/diagrams.drawio | 38 ++++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/docs/prj/diagrams.drawio b/docs/prj/diagrams.drawio index ddb268c..56737de 100644 --- a/docs/prj/diagrams.drawio +++ b/docs/prj/diagrams.drawio @@ -474,7 +474,7 @@ - + @@ -516,7 +516,7 @@ - + @@ -574,47 +574,53 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + - + From 3566f3fb90699e730660c44627936d7865303525 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Sun, 21 Sep 2025 14:57:13 -0400 Subject: [PATCH 328/400] Update gregorian_calendar.hpp --- .../calendar/gregorian/gregorian_calendar.hpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp index 69fc772..45f538d 100644 --- a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp @@ -441,6 +441,24 @@ struct GregorianCalendar : // TODO: INCOMPLETE!!! (methods missing) return (monthCells + 6) / DAYS_IN_WEEK; } + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + * + * @details + * TODO: INCOMPLETE COMMENT!!! + * + * @return + * Index of week in year (0 - 51) + */ + [[nodiscard]] static constexpr uint8_t getWeekIndex( + YearInt_t year, uint8_t month, uint8_t day + ) noexcept + { + // TODO: INCOMPLETE!!! + return 0; + } + /*! * @brief * Converts a calendar date to serial number of From d6cb84b8151f1b86fd59ccd0717cc21831eb1b3e Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 22 Sep 2025 13:30:16 -0400 Subject: [PATCH 329/400] Update gregorian_date.hpp --- include/simplydt/calendar/gregorian/gregorian_date.hpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_date.hpp b/include/simplydt/calendar/gregorian/gregorian_date.hpp index ed7d1f2..323251e 100644 --- a/include/simplydt/calendar/gregorian/gregorian_date.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_date.hpp @@ -101,7 +101,9 @@ struct GregorianDate : const int era = (serial_days >= 0 ? serial_days : serial_days - 146'096) / 146'097; const unsigned doe = static_cast(serial_days - era * 146'097); const unsigned yoe = (doe - doe / 1'460 + doe / 36'524 - doe / 146'096) / DAYS_IN_YEAR; - return static_cast(yoe) + era * YEARS_IN_ERA; + const unsigned doy = doe - (DAYS_IN_YEAR * yoe + yoe / 4 - yoe / 100); + const unsigned mp = (5 * doy + 2) / 153; + return static_cast((yoe + era * YEARS_IN_ERA) + (mp >= 10)); } /*! From 7318e023f445d42be17108d109f212151f832eca Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 22 Sep 2025 13:32:11 -0400 Subject: [PATCH 330/400] Update gregorian_calendar.hpp --- .../calendar/gregorian/gregorian_calendar.hpp | 28 ++++++++++++++++--- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp index 45f538d..73bf8d6 100644 --- a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp @@ -582,8 +582,18 @@ struct GregorianCalendar : // TODO: INCOMPLETE!!! (methods missing) */ [[nodiscard]] static constexpr Date getNextWeekday(const Date from_date) noexcept { - // TODO: INCOMPLETE!!! - return Date{}; + const DayOfWeek fromDow = static_cast(getDayOfWeekIndex(from_date)); + + switch (fromDow) { + case FRIDAY: + return from_date + Days{3}; + + case SATURDAY: + return from_date + Days{2}; + + default: // SUNDAY - THURSDAY + return from_date + Days{1}; + } } /*! @@ -598,8 +608,18 @@ struct GregorianCalendar : // TODO: INCOMPLETE!!! (methods missing) */ [[nodiscard]] static constexpr Date getLastWeekday(const Date from_date) noexcept { - // TODO: INCOMPLETE!!! - return Date{}; + const DayOfWeek fromDow = static_cast(getDayOfWeekIndex(from_date)); + + switch (fromDow) { + case SUNDAY: + return from_date - Days{2}; + + case MONDAY: + return from_date - Days{3}; + + default: // TUESDAY - SATURDAY + return from_date - Days{1}; + } } /*! From 4f1d89cc7b3cfba31b13984b565b35d778257897 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 22 Sep 2025 13:38:26 -0400 Subject: [PATCH 331/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index 3bac9d4..84cbf5e 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -24,10 +24,17 @@ #include "simplydt/calendar/gregorian/gregorian_calendar.hpp" #include "simplydt/time/utc/utc_time.hpp" +struct ICanWat { + bool testing = true; +}; + int main(int argc, char* argv[]) { ProjectInfoOut(); + bool ICanWat::* frtho = nullptr; + bool* known = nullptr; + //\\// using Calendar = simplydt::gregorian::GregorianCalendar; using Date = simplydt::gregorian::GregorianDate; @@ -134,10 +141,14 @@ int main(int argc, char* argv[]) constexpr const char* mnm = Calendar::getMonthName(todayDate); constexpr std::string_view mabbr = Calendar::getMonthAbbrev(todayDate); constexpr Calendar::Month mrepr = Calendar::getMonthEnumRepr(todayDate); - constexpr Days jtb = Calendar::toDaysSinceEpoch(2001, 2, 23); - constexpr Date rtc = Calendar::fromDaysSinceEpoch(jtb); + constexpr Days serial = Calendar::toDaysSinceEpoch(2001, 2, 23); + constexpr Date jtb = Calendar::fromDaysSinceEpoch(serial); constexpr UnixTimestamp ts = Calendar::toUnixTimestamp(2001, 2, 23); constexpr Date rtc2 = Calendar::fromUnixTimestamp(ts); + constexpr Date next = Calendar::getNextWeekday(jtb); + constexpr simplydt::gregorian::DayOfWeek g = + Calendar::getDayOfWeekEnumRepr(next); + constexpr Date last = Calendar::getLastWeekday(next); } //_SUSPEND_// const GregorianDate blizz = From 32c9e788f3eb103bb9ac8ec1b81839e258b9e55a Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 22 Sep 2025 15:03:58 -0400 Subject: [PATCH 332/400] Update gregorian_calendar.hpp Incomplete --- .../calendar/gregorian/gregorian_calendar.hpp | 61 ++++++++++++++++--- 1 file changed, 53 insertions(+), 8 deletions(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp index 73bf8d6..1254ca5 100644 --- a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp @@ -488,6 +488,22 @@ struct GregorianCalendar : // TODO: INCOMPLETE!!! (methods missing) return Days{static_cast(era * 146'097 + static_cast(doe) - 719'468)}; } + /*! + * @brief + * Converts a calendar date to serial number of + * days since Unix epoch. + * + * @details + * TODO: INCOMPLETE COMMENT!!! + * + * @return + * Days since January 1, 1970 + */ + [[nodiscard]] static constexpr Days toDaysSinceEpoch(const Date date) noexcept + { + return toDaysSinceEpoch(date.year(), date.month(), date.day()); + } + /*! * @brief * Converts a serial count of days since Unix @@ -634,8 +650,12 @@ struct GregorianCalendar : // TODO: INCOMPLETE!!! (methods missing) */ [[nodiscard]] static constexpr Date getNextWeekend(const Date from_date) noexcept { - // TODO: INCOMPLETE!!! - return Date{}; + const uint8_t dowDiff = SATURDAY - getDayOfWeekIndex(from_date); + + if (dowDiff == 0) + return from_date + Days{DAYS_IN_WEEK}; + + return from_date + Days{dowDiff}; } /*! @@ -650,8 +670,12 @@ struct GregorianCalendar : // TODO: INCOMPLETE!!! (methods missing) */ [[nodiscard]] static constexpr Date getLastWeekend(const Date from_date) noexcept { - // TODO: INCOMPLETE!!! - return Date{}; + const uint8_t dowDiff = SATURDAY - getDayOfWeekIndex(from_date); + + if (dowDiff == 0) + return from_date - Days{DAYS_IN_WEEK}; + + return from_date - Days{DAYS_IN_WEEK - dowDiff}; } /*! @@ -668,8 +692,21 @@ struct GregorianCalendar : // TODO: INCOMPLETE!!! (methods missing) const YearInt_t year, const uint8_t week_index ) noexcept { - // TODO: INCOMPLETE!!! - return WeekDates{}; + if (week_index > 51) + return WeekDates{}; + + const Days serialStart{ + toDaysSinceEpoch(year, January, 1) + Days{week_index * DAYS_IN_WEEK} + }; + const DayOfWeek fromDow = static_cast(getDayOfWeekIndex(year, January, 1)); + WeekDates week{}; + + for (uint8_t dowIndex = SUNDAY; dowIndex < DAYS_IN_WEEK; dowIndex++) { + const int8_t dowDiff = dowIndex - fromDow; + week[dowIndex] = fromDaysSinceEpoch(Days{serialStart + Days{dowDiff}}); + } + + return week; } /*! @@ -684,8 +721,16 @@ struct GregorianCalendar : // TODO: INCOMPLETE!!! (methods missing) */ [[nodiscard]] static constexpr WeekDates getWeek(const Date date) noexcept { - // TODO: INCOMPLETE!!! - return WeekDates{}; + const Days serialStart{toDaysSinceEpoch(date)}; + const DayOfWeek fromDow = static_cast(getDayOfWeekIndex(date)); + WeekDates week{}; + + for (uint8_t dowIndex = SUNDAY; dowIndex < DAYS_IN_WEEK; dowIndex++) { + const int8_t dowDiff = dowIndex - fromDow; + week[dowIndex] = fromDaysSinceEpoch(Days{serialStart + Days{dowDiff}}); + } + + return week; } private: From a92f83786bf0ab427fca7173c68c1139cee65d41 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 22 Sep 2025 15:04:08 -0400 Subject: [PATCH 333/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index 84cbf5e..998858e 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -138,17 +138,17 @@ int main(int argc, char* argv[]) // Gregorian calendar tests: { - constexpr const char* mnm = Calendar::getMonthName(todayDate); - constexpr std::string_view mabbr = Calendar::getMonthAbbrev(todayDate); - constexpr Calendar::Month mrepr = Calendar::getMonthEnumRepr(todayDate); - constexpr Days serial = Calendar::toDaysSinceEpoch(2001, 2, 23); - constexpr Date jtb = Calendar::fromDaysSinceEpoch(serial); - constexpr UnixTimestamp ts = Calendar::toUnixTimestamp(2001, 2, 23); - constexpr Date rtc2 = Calendar::fromUnixTimestamp(ts); - constexpr Date next = Calendar::getNextWeekday(jtb); - constexpr simplydt::gregorian::DayOfWeek g = - Calendar::getDayOfWeekEnumRepr(next); - constexpr Date last = Calendar::getLastWeekday(next); + constexpr const char* mnm = Calendar::getMonthName(todayDate); + constexpr std::string_view mabbr = Calendar::getMonthAbbrev(todayDate); + constexpr Calendar::Month mrepr = Calendar::getMonthEnumRepr(todayDate); + constexpr Days serial = Calendar::toDaysSinceEpoch(2001, 2, 23); + constexpr Date jtb = Calendar::fromDaysSinceEpoch(serial); + constexpr UnixTimestamp ts = Calendar::toUnixTimestamp(2001, 2, 23); + constexpr Date rtc2 = Calendar::fromUnixTimestamp(ts); + constexpr Date next = Calendar::getNextWeekday(jtb); + constexpr Date last = Calendar::getLastWeekday(next); + constexpr Date weekend = Calendar::getLastWeekend(jtb); + constexpr Calendar::WeekDates week = Calendar::getWeek(2025, 0); } //_SUSPEND_// const GregorianDate blizz = From 205aa6b63915414ffb231469362519286d9d2f04 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Mon, 22 Sep 2025 16:40:43 -0400 Subject: [PATCH 334/400] Update gregorian_defs.hpp --- include/simplydt/calendar/gregorian/gregorian_defs.hpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/include/simplydt/calendar/gregorian/gregorian_defs.hpp b/include/simplydt/calendar/gregorian/gregorian_defs.hpp index 9fc24c5..62f8ae3 100644 --- a/include/simplydt/calendar/gregorian/gregorian_defs.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_defs.hpp @@ -177,6 +177,13 @@ constexpr uint16_t DAYS_IN_LEAP_YEAR = 366; */ constexpr inline float AVG_DAYS_IN_YEAR = 365.25; +/*! + * @brief + * Whole number of seven-day periods in a + * calendar year. + */ +constexpr uint8_t WEEKS_IN_YEAR = 52; + /*! * @brief * Total number of months in one calendar year. From 0622b201e3394ccc22b2aa47998eeda001d5abf7 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Tue, 23 Sep 2025 15:37:26 -0400 Subject: [PATCH 335/400] Renamed Linux Build Script Renamed scripts/build.sh to scripts/build --- scripts/{build.sh => build} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename scripts/{build.sh => build} (100%) diff --git a/scripts/build.sh b/scripts/build similarity index 100% rename from scripts/build.sh rename to scripts/build From c8def807bc7edc84377c8eefceca1ea134eb5ab9 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Tue, 23 Sep 2025 15:38:14 -0400 Subject: [PATCH 336/400] Renamed Linux Configuration Script Renamed scripts/configure.sh to scripts/configure --- scripts/{configure.sh => configure} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename scripts/{configure.sh => configure} (100%) diff --git a/scripts/configure.sh b/scripts/configure similarity index 100% rename from scripts/configure.sh rename to scripts/configure From 2f98d32b18d7c52de10ab1d91b564cd883266d86 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Tue, 23 Sep 2025 15:38:34 -0400 Subject: [PATCH 337/400] Update helper_algorithms.hpp Bug fix --- include/simplydt/calendar/gregorian/helper_algorithms.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/simplydt/calendar/gregorian/helper_algorithms.hpp b/include/simplydt/calendar/gregorian/helper_algorithms.hpp index 3630ebe..4dcd214 100644 --- a/include/simplydt/calendar/gregorian/helper_algorithms.hpp +++ b/include/simplydt/calendar/gregorian/helper_algorithms.hpp @@ -79,7 +79,7 @@ namespace simplydt::gregorian const unsigned mp = (5 * doy + 2) / 153; const uint8_t d = static_cast(doy - (153 * mp + 2) / 5 + 1); const uint8_t m = static_cast(mp + (mp < 10 ? 3 : -9)); - return DateTuple{y, m, d}; + return DateTuple{y + (m <= February), m, d}; } } // namespace simplydt::gregorian From f08fb81904fe04d7ffa3cd9038b7d1db5407f6c8 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Tue, 23 Sep 2025 15:38:57 -0400 Subject: [PATCH 338/400] Update gregorian_calendar.hpp Documentation incomplete; missing contract assertion --- .../calendar/gregorian/gregorian_calendar.hpp | 117 +++++++++++++++--- 1 file changed, 102 insertions(+), 15 deletions(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp index 1254ca5..ae90efa 100644 --- a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp @@ -29,7 +29,7 @@ namespace simplydt::gregorian * @details * TODO: INCOMPLETE COMMENT!!! */ -struct GregorianCalendar : // TODO: INCOMPLETE!!! (methods missing) +struct GregorianCalendar : public CalendricalSystem { /*! @brief Array of dates in one calendar week. */ using WeekDates = std::array; @@ -320,11 +320,7 @@ struct GregorianCalendar : // TODO: INCOMPLETE!!! (methods missing) const YearInt_t year, const uint8_t month, const uint8_t day ) noexcept { - if (!isValidYear(year)) - return false; - - const uint8_t monthTotalDays = getDaysInMonth(year, month); - return day <= monthTotalDays; + return DatePolicy::isValidDate(year, month, day); } /*! @@ -348,8 +344,8 @@ struct GregorianCalendar : // TODO: INCOMPLETE!!! (methods missing) YearInt_t year, uint8_t month, uint8_t day ) noexcept { - if (!isValidDate(year, month, day)) - return INVALID_DOW_INDEX; + if (!DatePolicy::isValidDate(year, month, day)) + return INVALID_DOW_INDEX; // NOTE: This has to go... // CREDITS: Tomohiko Sakamoto // Day-of-week index algorithm @@ -410,6 +406,22 @@ struct GregorianCalendar : // TODO: INCOMPLETE!!! (methods missing) return static_cast(monthTotalDays / DAYS_IN_WEEK); } + /*! + * @brief + * Number of full 7-day weeks contained in + * specified month. + * + * @details + * TODO: INCOMPLETE COMMENT!!! + * + * @return + * Number of weeks in month + */ + [[nodiscard]] static constexpr uint8_t getWeeksInMonth(const Date date) noexcept + { + return getWeeksInMonth(date.year(), date.month()); + } + /*! * @brief * Determines number of weeks a specified month @@ -441,6 +453,22 @@ struct GregorianCalendar : // TODO: INCOMPLETE!!! (methods missing) return (monthCells + 6) / DAYS_IN_WEEK; } + /*! + * @brief + * Determines number of weeks a specified month + * spans over the calendar. + * + * @details + * TODO: INCOMPLETE COMMENT!!! + * + * @return + * Number of weeks month spans + */ + [[nodiscard]] static constexpr uint8_t getWeeksMonthSpans(const Date date) noexcept + { + return getWeeksMonthSpans(date.year(), date.month()); + } + /*! * @brief * TODO: INCOMPLETE COMMENT!!! @@ -449,14 +477,34 @@ struct GregorianCalendar : // TODO: INCOMPLETE!!! (methods missing) * TODO: INCOMPLETE COMMENT!!! * * @return - * Index of week in year (0 - 51) + * Index of week in year (0 - 52) */ [[nodiscard]] static constexpr uint8_t getWeekIndex( YearInt_t year, uint8_t month, uint8_t day ) noexcept { - // TODO: INCOMPLETE!!! - return 0; + if (!DatePolicy::isValidDate(year, month, day)) + return 0; // NOTE: Unexpected behavior? + + const int8_t sundayDiff = SUNDAY - getDayOfWeekIndex(year, January, 1); + const Days firstSunday{toDaysSinceEpoch(year, January, 1) + Days{sundayDiff}}; + const Days serialDate{toDaysSinceEpoch(year, month, day)}; + return static_cast((serialDate - firstSunday).count() / DAYS_IN_WEEK); + } + + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + * + * @details + * TODO: INCOMPLETE COMMENT!!! + * + * @return + * Index of week in year (0 - 51) + */ + [[nodiscard]] static constexpr uint8_t getWeekIndex(const Date date) noexcept + { + return getWeekIndex(date.year(), date.month(), date.day()); } /*! @@ -478,6 +526,9 @@ struct GregorianCalendar : // TODO: INCOMPLETE!!! (methods missing) YearInt_t year, uint8_t month, uint8_t day ) noexcept { + if (!DatePolicy::isValidDate(year, month, day)) + return Days{0}; // Epoch date + // CREDITS: Howard Hinnant [Mr. Chrono] - (Ripple Labs) // Convert {year, month, day} triple into a serial count of days. year -= month <= February; @@ -520,8 +571,10 @@ struct GregorianCalendar : // TODO: INCOMPLETE!!! (methods missing) * @return * Gregorian calendar date */ - [[nodiscard]] static constexpr Date fromDaysSinceEpoch(Days serial_days) noexcept + [[nodiscard]] static constexpr Date fromDaysSinceEpoch(const Days serial_days) noexcept { + // NOTE: Need to validate bounds of serial count beforehand... + // CREDITS: Howard Hinnant [Mr. Chrono] - (Ripple Labs) // Convert a serial count of days into a {year, month, day} triple. unsigned long serialCount = serial_days.count(); @@ -563,6 +616,22 @@ struct GregorianCalendar : // TODO: INCOMPLETE!!! (methods missing) ); } + /*! + * @brief + * Converts a calendar date to a Unix timestamp + * (seconds since epoch). + * + * @details + * TODO: INCOMPLETE COMMENT!!! + * + * @return + * Unix timestamp + */ + [[nodiscard]] static constexpr stl::UnixTimestamp toUnixTimestamp(const Date date) noexcept + { + return toUnixTimestamp(date.year(), date.month(), date.day()); + } + /*! * @brief * Converts a Unix timestamp (seconds since @@ -586,6 +655,23 @@ struct GregorianCalendar : // TODO: INCOMPLETE!!! (methods missing) ); } + /*! + * @brief + * Converts a serial count of seconds to + * a calendar date. + * + * @details + * TODO: INCOMPLETE COMMENT!!! + * + * @return + * Gregorian calendar date + */ + [[nodiscard]] static constexpr Date fromUnixTimestamp(const Seconds serial_secs + ) noexcept + { + return fromDaysSinceEpoch(duration_cast(serial_secs)); + } + /*! * @brief * TODO: INCOMPLETE COMMENT!!! @@ -692,14 +778,15 @@ struct GregorianCalendar : // TODO: INCOMPLETE!!! (methods missing) const YearInt_t year, const uint8_t week_index ) noexcept { - if (week_index > 51) - return WeekDates{}; + WeekDates week{}; + + if (week_index > WEEKS_IN_YEAR) + return week; // Invalid week index const Days serialStart{ toDaysSinceEpoch(year, January, 1) + Days{week_index * DAYS_IN_WEEK} }; const DayOfWeek fromDow = static_cast(getDayOfWeekIndex(year, January, 1)); - WeekDates week{}; for (uint8_t dowIndex = SUNDAY; dowIndex < DAYS_IN_WEEK; dowIndex++) { const int8_t dowDiff = dowIndex - fromDow; From 599d9c150a120d5a9e730cf3933c5a11b03ec0a2 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Tue, 23 Sep 2025 15:39:28 -0400 Subject: [PATCH 339/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 46 +------------------------------------------ 1 file changed, 1 insertion(+), 45 deletions(-) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index 998858e..c61a4c8 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -149,53 +149,9 @@ int main(int argc, char* argv[]) constexpr Date last = Calendar::getLastWeekday(next); constexpr Date weekend = Calendar::getLastWeekend(jtb); constexpr Calendar::WeekDates week = Calendar::getWeek(2025, 0); + constexpr uint8_t wkIndex = Calendar::getWeekIndex(2025, 9, 22); } - //_SUSPEND_// const GregorianDate blizz = - // GregorianCalendar::getDate(simplydt::stl::SystemClock::now()); - //_SUSPEND_// constexpr GregorianDate demo = - //_SUSPEND_// GregorianCalendar::getDate(2'025, simplydt::gregorian::AUGUST, 29); - //_SUSPEND_// std::cout << "\nDemo date: " << demo << '\n'; - - //_SUSPEND_// constexpr bool isValid = - // GregorianCalendar::isValidDate(demo); - //_SUSPEND_// constexpr uint8_t noWeeks = - // GregorianCalendar::getWeeksInMonth(demo); - //_SUSPEND_// constexpr const char* month = - // GregorianCalendar::getMonthName(demo); - //_SUSPEND_// constexpr simplydt::gregorian::Month monthRepr = - // GregorianCalendar::getMonthEnumRepr(demo); - //_SUSPEND_// constexpr const char* dowName = - // GregorianCalendar::getDayOfWeekName(demo); - //_SUSPEND_// constexpr std::string_view dowShort = - // GregorianCalendar::getDayOfWeekAbbrev(demo); _SUSPEND_// constexpr bool isLeap = - // GregorianCalendar::isLeapYear(demo); _SUSPEND_// constexpr uint16_t daysInYr = - // GregorianCalendar::getDaysInYear(demo); _SUSPEND_// constexpr - // simplydt::gregorian::DayOfWeek dowRepr = _SUSPEND_// - // GregorianCalendar::getDayOfWeekEnumRepr(demo); _SUSPEND_// constexpr UnixTimestamp - // serialDays = GregorianCalendar::toDaysSinceEpoch(demo); _SUSPEND_// constexpr - // GregorianDate fromSerial = GregorianCalendar::fromDaysSinceEpoch(0); _SUSPEND_// - // constexpr UnixTimestamp tzz = _SUSPEND_// - // GregorianCalendar::toUnixTimestamp(GregorianDate{2'004, 9, 17}); _SUSPEND_// constexpr - // GregorianDate zzt = _SUSPEND_// GregorianCalendar::fromUnixTimestamp(1'095'379'200); - //// 2004-09-17T00:00:00.00 _SUSPEND_// const GregorianDate bzr = _SUSPEND_// - // GregorianCalendar::fromTimePoint(std::chrono::system_clock::now(), false); _SUSPEND_// - // std::cout << bzr << '\n'; - - //_SUSPEND_// constexpr UTCTime dvq = UTCTime{14, 37, 48}; - //_SUSPEND_// constexpr UTCTime gbx = UTCTime{simplydt::Hours{23} + simplydt::Minutes{15}}; - //_SUSPEND_// // constexpr bool eqlTst = dvq == dvq; - //_SUSPEND_// constexpr uint8_t hr = dvq.hour12(); - //_SUSPEND_// constexpr uint8_t min = dvq.minute(); - //_SUSPEND_// constexpr uint8_t sec = dvq.second(); - //_SUSPEND_// constexpr simplydt::MeridiemPhase mdx = dvq.hourPhaseEnumRepr(); - //_SUSPEND_// constexpr const char* mmq = dvq.hourPhaseStr(); - //_SUSPEND_// std::cout << "UTC Time: " << dvq << '\n'; - //_SUSPEND_// constexpr simplydt::Seconds evv = dvq.toSerialSeconds(); - // constexpr GregorianDate next = GregorianCalendar::getNextDate(demo, - // simplydt::gregorian::FRIDAY); - // - std::cout << "\n\n\t[ Complete ]" << std::endl; return 0; } From 89f641d172ac38332b4804e635a6cdc1d966795e Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Tue, 23 Sep 2025 16:01:38 -0400 Subject: [PATCH 340/400] Update abstract_calendar.hpp --- include/simplydt/calendar/abstract_calendar.hpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/include/simplydt/calendar/abstract_calendar.hpp b/include/simplydt/calendar/abstract_calendar.hpp index 8b91f4d..825c2de 100644 --- a/include/simplydt/calendar/abstract_calendar.hpp +++ b/include/simplydt/calendar/abstract_calendar.hpp @@ -73,6 +73,9 @@ struct CalendricalSystem { /*! @brief Enumeration of calendar days of week. */ using DayOfWeek = DOW_Enum; + /*! @brief No system local time tag struct. */ + struct NonLocal {}; + /*! * @brief * Returns name of calendar month by its numeric value. @@ -500,12 +503,9 @@ struct CalendricalSystem { * Calendar date */ [[nodiscard]] static Date getDate( - const stl::SystemTimePoint time_point, const bool local + const stl::SystemTimePoint time_point, const NonLocal ) noexcept { - if (local) - return getDate(time_point); - const stl::UnixTimestamp secsSinceEpoch = stl::SystemClock::to_time_t(time_point); return Calendar_Impl::fromUnixTimestamp(secsSinceEpoch); } From 5861e17dc0b622ae03f15c1ef95bb8676e7c4fb6 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Tue, 23 Sep 2025 16:36:40 -0400 Subject: [PATCH 341/400] Update abstract_calendar.hpp Bug fix --- include/simplydt/calendar/abstract_calendar.hpp | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/include/simplydt/calendar/abstract_calendar.hpp b/include/simplydt/calendar/abstract_calendar.hpp index 825c2de..d74a905 100644 --- a/include/simplydt/calendar/abstract_calendar.hpp +++ b/include/simplydt/calendar/abstract_calendar.hpp @@ -524,10 +524,6 @@ struct CalendricalSystem { const Date from_date, const DayOfWeek dow_repr ) noexcept { - if (!Calendar_Impl::isValidDate(from_date)) - return from_date; // No next date - // NOTE: Return default constructed date above instead? - constexpr uint8_t daysInWeek = static_cast(Calendar_Impl::DAY_OF_WEEK_NAMES.size()); const int8_t fromDate_dow = @@ -557,7 +553,7 @@ struct CalendricalSystem { if (fromNumericMonth != toNumericMonth) { if (fromNumericMonth > toNumericMonth) - return Date{from_date.year() + 1, toNumericMonth, 1}; + return Date{static_cast(from_date.year() + 1), toNumericMonth, 1}; else if (fromNumericMonth < toNumericMonth) return Date{from_date.year(), toNumericMonth, 1}; } @@ -568,7 +564,7 @@ struct CalendricalSystem { if (from_date.day() != daysInMonth) return from_date + Days{1}; - return Date{from_date.year() + 1, fromNumericMonth, 1}; + return Date{static_cast(from_date.year() + 1), fromNumericMonth, 1}; // NOTE: Check validity of above date values first before return? // (wrap around to valid?) } @@ -587,10 +583,6 @@ struct CalendricalSystem { const Date from_date, const DayOfWeek dow_repr ) noexcept { - if (!Calendar_Impl::isValidDate(from_date)) - return from_date; // No last date - // NOTE: Return default constructed date above instead? - constexpr uint8_t daysInWeek = static_cast(Calendar_Impl::DAY_OF_WEEK_NAMES.size()); const int8_t fromDate_dow = @@ -624,7 +616,7 @@ struct CalendricalSystem { if (fromNumericMonth > toNumericMonth) return Date{from_date.year(), toNumericMonth, daysInMonth}; else if (fromNumericMonth < toNumericMonth) - return Date{from_date.year() - 1, toNumericMonth, daysInMonth}; + return Date{static_cast(from_date.year() - 1), toNumericMonth, daysInMonth}; } if (from_date.day() != 1) From 6b13307be85a3b13310c88c55678c8795dfb16a9 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Tue, 23 Sep 2025 16:36:45 -0400 Subject: [PATCH 342/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index c61a4c8..8ba54f3 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -41,6 +41,7 @@ int main(int argc, char* argv[]) using Time = simplydt::utc::UTCTime; using Days = simplydt::Days; using Seconds = simplydt::Seconds; + using SystemClock = simplydt::stl::SystemClock; using UnixTimestamp = simplydt::stl::UnixTimestamp; constexpr Date todayDate{2'025, 9, 7}; @@ -150,6 +151,12 @@ int main(int argc, char* argv[]) constexpr Date weekend = Calendar::getLastWeekend(jtb); constexpr Calendar::WeekDates week = Calendar::getWeek(2025, 0); constexpr uint8_t wkIndex = Calendar::getWeekIndex(2025, 9, 22); + constexpr Date today = Calendar::getDate(2025, 9, 23); + const Date rightNow = Calendar::getDate(SystemClock::now()); + constexpr Date nxt = Calendar::getNextDate(jtb, simplydt::gregorian::MONDAY); + constexpr Date nxtMonth = Calendar::getNextDate(nxt, simplydt::gregorian::OCTOBER); + constexpr Date lstMonth = Calendar::getLastDate(jtb, simplydt::gregorian::JANUARY); + constexpr Date lst = Calendar::getLastDate(nxt, simplydt::gregorian::SUNDAY); } std::cout << "\n\n\t[ Complete ]" << std::endl; From 37275b85bd57771f1aaa07ece42a7aa7a01ed444 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Tue, 23 Sep 2025 17:40:01 -0400 Subject: [PATCH 343/400] Removed Deprecated Code Removed files added from commit merger (following the solution of a merge conflict for v0.x-refactor and v0.x) --- include/simplydt/dap/concepts/method_call.hpp | 71 -------- include/simplydt/dap/concepts/repr_types.hpp | 61 ------- include/simplydt/dap/driver/abstract_tag.hpp | 35 ---- include/simplydt/dap/driver/concrete_tag.hpp | 29 ---- .../dap/driver/duration/abstract_driver.hpp | 164 ------------------ include/simplydt/dap/overload/arguments.hpp | 34 ---- include/simplydt/dap/overload/method.hpp | 46 ----- .../simplydt/dap/type_traits/method_args.hpp | 46 ----- .../simplydt/dap/type_traits/method_call.hpp | 109 ------------ 9 files changed, 595 deletions(-) delete mode 100644 include/simplydt/dap/concepts/method_call.hpp delete mode 100644 include/simplydt/dap/concepts/repr_types.hpp delete mode 100644 include/simplydt/dap/driver/abstract_tag.hpp delete mode 100644 include/simplydt/dap/driver/concrete_tag.hpp delete mode 100644 include/simplydt/dap/driver/duration/abstract_driver.hpp delete mode 100644 include/simplydt/dap/overload/arguments.hpp delete mode 100644 include/simplydt/dap/overload/method.hpp delete mode 100644 include/simplydt/dap/type_traits/method_args.hpp delete mode 100644 include/simplydt/dap/type_traits/method_call.hpp diff --git a/include/simplydt/dap/concepts/method_call.hpp b/include/simplydt/dap/concepts/method_call.hpp deleted file mode 100644 index ddc3f11..0000000 --- a/include/simplydt/dap/concepts/method_call.hpp +++ /dev/null @@ -1,71 +0,0 @@ - -// Copyright (C) 2023-2025 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. -// Released under the terms of the GNU Affero General Public License version 3. - -// [ISJTB-CXX-XL20230401-000001] - -/*! - * @file method_call.hpp - * - * @brief - * Method overload entity concepts. - */ - -#ifndef SIMPLYDT_LIB_DAP_METHOD_CALL_STRUCT_CONCEPTS_H_ -#define SIMPLYDT_LIB_DAP_METHOD_CALL_STRUCT_CONCEPTS_H_ - -#include "simplydt/dap/type_traits/method_args.hpp" -#include "simplydt/dap/type_traits/method_call.hpp" -#include - -// TODO: Implement custom setup for the macro below -// in this file. If you included this file it -// means you'll have access to both the macro -// and the struct used to evaluate the return -// types. - -/*! @brief Macro for asserting equality of two types. */ -#define ASSERT_RETURN_TYPES_EQ(TypeA, TypeB) \ - static_assert(std::is_same_v, \ - "Overload return type does not match base!") - -namespace simplydt::concepts -{ - - /*! - * @brief - * Concept of a properly structured method overload - * struct. - * - * @details - * This concepts details a contract-abiding overload - * struct that can be invoked by DAP template methods. - * To be "contract-abiding" in this context means that - * type T Inherits from `dap::Overload`, defines a - * static method `T::call(...)`, defines the nested - * types `ReturnType` and `MethodArgs`, and have the - * mentioned `MethodArgs` type be an instantiation of - * the `dap::Arguments<...>` template. This concept - * imposes no constraints on the overload return and - * argument types. - */ - template - concept valid_template_overload = requires { - // Require 'T::MethodArgs' alias be defined - // AND Require 'T::MethodArgs' be of type dap::Arguments - requires type_traits::is_method_args_struct_v; - - // Require T inherit from dap::Overload - requires type_traits::is_overload_derived_v; - - // Require 'T::ReturnType' alias be defined - // AND Require static 'T::call(...)' method be defined - requires type_traits::has_static_call_signature_v< - T, - typename T::ReturnType, - typename T::MethodArgs::Types>; - }; - -} // namespace simplydt::concepts - -#endif // SIMPLYDT_LIB_DAP_METHOD_CALL_STRUCT_CONCEPTS_H_ diff --git a/include/simplydt/dap/concepts/repr_types.hpp b/include/simplydt/dap/concepts/repr_types.hpp deleted file mode 100644 index 2c4aae3..0000000 --- a/include/simplydt/dap/concepts/repr_types.hpp +++ /dev/null @@ -1,61 +0,0 @@ - -// Copyright (C) 2023-2025 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. -// Released under the terms of the GNU Affero General Public License version 3. - -// [ISJTB-CXX-XL20230401-000001] - -/*! - * @file repr_types.hpp - * - * @brief - * Datetime Abstraction Protocol underlying - * representation type concepts. - */ - -#ifndef SIMPLYDT_LIB_DAP_UNDERLYING_TYPES_CONCEPTS_H_ -#define SIMPLYDT_LIB_DAP_UNDERLYING_TYPES_CONCEPTS_H_ - -#include -#include - -namespace simplydt::concepts -{ - - /*! - * @brief - * Concept of a type that can be relatively - * compared to other objects of same type. - */ - template - concept comparable_type = requires (T instance) { - { instance == instance } -> std::same_as; - { instance < instance } -> std::same_as; - { instance <= instance } -> std::same_as; - { instance > instance } -> std::same_as; - { instance >= instance } -> std::same_as; - }; - - /*! - * @brief - * Concept of a useable underlying type for - * a DAP driver. - */ - template - concept useable_underlying_type = requires { - // T must not be a pointer - requires !std::is_pointer_v; - - // T must not have const qualification - requires !std::is_const_v; - - requires std::is_copy_constructible_v; - requires std::is_move_constructible_v; - requires std::is_assignable_v; - - // Require T have relative comparison operators - requires comparable_type; - }; - -} - -#endif // SIMPLYDT_LIB_DAP_UNDERLYING_TYPES_CONCEPTS_H_ diff --git a/include/simplydt/dap/driver/abstract_tag.hpp b/include/simplydt/dap/driver/abstract_tag.hpp deleted file mode 100644 index 76c2a37..0000000 --- a/include/simplydt/dap/driver/abstract_tag.hpp +++ /dev/null @@ -1,35 +0,0 @@ - -// Copyright (C) 2023-2025 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. -// Released under the terms of the GNU Affero General Public License version 3. - -// [ISJTB-CXX-XL20230401-000001] - -/*! - * @file abstract_tag.hpp - * - * @brief - * Abstract Datetime Abstraction Protocol driver - * tag declaration. - */ - -#ifndef SIMPLYDT_LIB_ABSTRACT_DAP_DRIVER_TAG_H_ -#define SIMPLYDT_LIB_ABSTRACT_DAP_DRIVER_TAG_H_ - -/*! - * @namespace simplydt::dap - * - * @brief - * Datetime Abstraction Protocol. - */ -namespace simplydt::dap -{ - - /*! - * @brief - * Abstract DAP driver tag. - */ - struct AbstractDAPDriver { }; - -} // namespace simplydt::dap - -#endif // SIMPLYDT_LIB_ABSTRACT_DAP_DRIVER_TAG_H_ diff --git a/include/simplydt/dap/driver/concrete_tag.hpp b/include/simplydt/dap/driver/concrete_tag.hpp deleted file mode 100644 index 3a53f89..0000000 --- a/include/simplydt/dap/driver/concrete_tag.hpp +++ /dev/null @@ -1,29 +0,0 @@ - -// Copyright (C) 2023-2025 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. -// Released under the terms of the GNU Affero General Public License version 3. - -// [ISJTB-CXX-XL20230401-000001] - -/*! - * @file concrete_tag.hpp - * - * @brief - * Concrete Datetime Abstraction Protocol driver - * tag declaration. - */ - -#ifndef SIMPLYDT_LIB_CONCRETE_DAP_DRIVER_TAG_H_ -#define SIMPLYDT_LIB_CONCRETE_DAP_DRIVER_TAG_H_ - -namespace simplydt::dap -{ - - /*! - * @brief - * Concrete DAP driver tag. - */ - struct DAPDriver { }; - -} // namespace simplydt::dap - -#endif // SIMPLYDT_LIB_CONCRETE_DAP_DRIVER_TAG_H_ diff --git a/include/simplydt/dap/driver/duration/abstract_driver.hpp b/include/simplydt/dap/driver/duration/abstract_driver.hpp deleted file mode 100644 index 02b9b4a..0000000 --- a/include/simplydt/dap/driver/duration/abstract_driver.hpp +++ /dev/null @@ -1,164 +0,0 @@ - -// Copyright (C) 2023-2025 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. -// Released under the terms of the GNU Affero General Public License version 3. - -// [ISJTB-CXX-XL20230401-000001] - -/*! - * @file abstract_driver.hpp - * - * @brief - * Abstract duration driver interface. - */ - -#ifndef SIMPLYDT_LIB_ABSTRACT_DURATION_DRIVER_H_ -#define SIMPLYDT_LIB_ABSTRACT_DURATION_DRIVER_H_ - -#include "simplydt/dap/concepts/method_call.hpp" -#include "simplydt/dap/driver/abstract_tag.hpp" -#include "simplydt/dap/concepts/repr_types.hpp" -#include - -namespace simplydt::dap -{ - - /*! - * @brief - * Duration driver interface abstraction. - * - * @details - * This type cannot be instantiated on its own since - * the interface it presents is abstract. It is meant - * to be inherited by another class which will then - * present concrete implementations of the functionality - * outlined here. The presence of a method definition - * in this base class alone does not automatically - * enforce a requirement on the derivatives; that is - * achieved using concepts. The API extended by this - * class is protected and only accessible by derived - * entities. The protected API uses static methods that - * follow the "pointer-to-self" convention. On the - * contrary, the API extended by a derivative is expected - * to be public and typically with use of member methods. - */ - template - class AbstractDurationDriver : public AbstractDAPDriver { - - public: - /*! - * @brief - * Underlying duration representation type. - */ - using Underlying_T = Duration_T; - - /*! - * @brief - * Type alias of base duration abstraction. - */ - using Driver = AbstractDurationDriver; - - protected: - AbstractDurationDriver() noexcept { } - - ~AbstractDurationDriver() noexcept = default; - - /*! @brief Overload base functionality using provided implementation. */ - template - static bool isDefaultValue(const Duration_T& selfImpl) - { - ASSERT_RETURN_TYPES_EQ(bool, typename Overload_Impl::ReturnType); - return Overload_Impl::call(selfImpl); - } - - /*! @brief Overload base functionality using provided implementation. */ - template - static bool isNegativeValue(const Duration_T& selfImpl) - { - ASSERT_RETURN_TYPES_EQ(bool, typename Overload_Impl::ReturnType); - return Overload_Impl::call(selfImpl); - } - - /*! @brief Overload base functionality using provided implementation. */ - template - static int32_t getElapsedDays(const Duration_T& selfImpl) - { - ASSERT_RETURN_TYPES_EQ(int32_t, typename Overload_Impl::ReturnType); - return Overload_Impl::call(selfImpl); - } - - /*! @brief Overload base functionality using provided implementation. */ - template - static uint32_t getAbsoluteElapsedDays(const Duration_T& selfImpl) - { - ASSERT_RETURN_TYPES_EQ(uint32_t, typename Overload_Impl::ReturnType); - return Overload_Impl::call(selfImpl); - } - - /*! @brief Overload base functionality using provided implementation. */ - template - static int8_t getHoursComponent(const Duration_T& selfImpl) - { - ASSERT_RETURN_TYPES_EQ(int8_t, typename Overload_Impl::ReturnType); - return Overload_Impl::call(selfImpl); - } - - /*! @brief Overload base functionality using provided implementation. */ - template - static uint8_t getAbsoluteHours(const Duration_T& selfImpl) - { - ASSERT_RETURN_TYPES_EQ(uint8_t, typename Overload_Impl::ReturnType); - return Overload_Impl::call(selfImpl); - } - - /*! @brief Overload base functionality using provided implementation. */ - template - static int8_t getMinutesComponent(const Duration_T& selfImpl) - { - ASSERT_RETURN_TYPES_EQ(int8_t, typename Overload_Impl::ReturnType); - return Overload_Impl::call(selfImpl); - } - - /*! @brief Overload base functionality using provided implementation. */ - template - static uint8_t getAbsoluteMinutes(const Duration_T& selfImpl) - { - ASSERT_RETURN_TYPES_EQ(uint8_t, typename Overload_Impl::ReturnType); - return Overload_Impl::call(selfImpl); - } - - /*! @brief Overload base functionality using provided implementation. */ - template - static int8_t getSecondsComponent(const Duration_T& selfImpl) - { - ASSERT_RETURN_TYPES_EQ(int8_t, typename Overload_Impl::ReturnType); - return Overload_Impl::call(selfImpl); - } - - /*! @brief Overload base functionality using provided implementation. */ - template - static uint8_t getAbsoluteSeconds(const Duration_T& selfImpl) - { - ASSERT_RETURN_TYPES_EQ(uint8_t, typename Overload_Impl::ReturnType); - return Overload_Impl::call(selfImpl); - } - - /*! @brief Overload base functionality using provided implementation. */ - template - static Duration_T calculateDisplace(const Duration_T& selfImpl, const Duration_T& durationImpl) - { - ASSERT_RETURN_TYPES_EQ(Duration_T, typename Overload_Impl::ReturnType); - return Overload_Impl::call(selfImpl, durationImpl); - } - - /*! @brief Overload base functionality using provided implementation. */ - template - static void displace(Duration_T& selfImpl, const Duration_T& durationImpl) - { - ASSERT_RETURN_TYPES_EQ(void, typename Overload_Impl::ReturnType); - return Overload_Impl::call(selfImpl, durationImpl); - } - }; - -} // namespace simplydt::dap - -#endif // SIMPLYDT_LIB_ABSTRACT_DURATION_DRIVER_H_ diff --git a/include/simplydt/dap/overload/arguments.hpp b/include/simplydt/dap/overload/arguments.hpp deleted file mode 100644 index db7551e..0000000 --- a/include/simplydt/dap/overload/arguments.hpp +++ /dev/null @@ -1,34 +0,0 @@ - -// Copyright (C) 2023-2025 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. -// Released under the terms of the GNU Affero General Public License version 3. - -// [ISJTB-CXX-XL20230401-000001] - -/*! - * @file arguments.hpp - * - * @brief - * Method arguments entity declaration. - */ - -#ifndef SIMPLYDT_LIB_METHOD_ARGUMENTS_STRUCT_H_ -#define SIMPLYDT_LIB_METHOD_ARGUMENTS_STRUCT_H_ - -#include - -namespace simplydt::dap -{ - - /*! - * @brief - * Method call arguments. - */ - template - struct Arguments { - /*! @brief Method argument types tuple. */ - using Types = std::tuple; - }; - -} // namespace simplydt::dap - -#endif // SIMPLYDT_LIB_METHOD_ARGUMENTS_STRUCT_H_ diff --git a/include/simplydt/dap/overload/method.hpp b/include/simplydt/dap/overload/method.hpp deleted file mode 100644 index 103474f..0000000 --- a/include/simplydt/dap/overload/method.hpp +++ /dev/null @@ -1,46 +0,0 @@ - -// Copyright (C) 2023-2025 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. -// Released under the terms of the GNU Affero General Public License version 3. - -// [ISJTB-CXX-XL20230401-000001] - -/*! - * @file method.hpp - * - * @brief - * Method overload entity declaration. - */ - -#ifndef SIMPLYDT_LIB_METHOD_OVERLOAD_STRUCT_H_ -#define SIMPLYDT_LIB_METHOD_OVERLOAD_STRUCT_H_ - -#include "simplydt/dap/overload/arguments.hpp" - -namespace simplydt::dap -{ - - /*! - * @brief - * Method overload implementation struct. - * - * @details - * This type is meant to be inherited by other - * structs which will represent the overloaded - * implementation of some template method. The - * template methods invoke the implementation - * detailed by a derivative of this type through - * an implicit contract between the two. - * Typically the methods implemented by this - * type are static, but in most cases there is - * no performance difference if they are member - * methods. - */ - template - struct Overload { - /*! @brief Overload method argument types. */ - using MethodArgs = Arguments; - }; - -} // namespace simplydt::dap - -#endif // SIMPLYDT_LIB_METHOD_OVERLOAD_STRUCT_H_ diff --git a/include/simplydt/dap/type_traits/method_args.hpp b/include/simplydt/dap/type_traits/method_args.hpp deleted file mode 100644 index 3f3455d..0000000 --- a/include/simplydt/dap/type_traits/method_args.hpp +++ /dev/null @@ -1,46 +0,0 @@ - -// Copyright (C) 2023-2025 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. -// Released under the terms of the GNU Affero General Public License version 3. - -// [ISJTB-CXX-XL20230401-000001] - -/*! - * @file method_args.hpp - * - * @brief - * Method arguments entity type traits. - */ - -#ifndef SIMPLYDT_LIB_METHOD_ARGUMENT_TRAITS_H_ -#define SIMPLYDT_LIB_METHOD_ARGUMENT_TRAITS_H_ - -#include "simplydt/dap/overload/arguments.hpp" -#include - -namespace simplydt::type_traits -{ - // TYPE TRAIT : is_method_args_struct - - /*! - * @brief - * Determine if type T is a method arguments struct. - */ - template - struct is_method_args_struct; - - template - struct is_method_args_struct : std::false_type {}; - - template - struct is_method_args_struct> : std::true_type {}; - - /*! - * @brief - * Determine if type T is a method arguments struct. - */ - template - inline constexpr bool is_method_args_struct_v = is_method_args_struct::value; - -} // namespace simplydt::type_traits - -#endif // SIMPLYDT_LIB_METHOD_ARGUMENT_TRAITS_H_ diff --git a/include/simplydt/dap/type_traits/method_call.hpp b/include/simplydt/dap/type_traits/method_call.hpp deleted file mode 100644 index fa82db8..0000000 --- a/include/simplydt/dap/type_traits/method_call.hpp +++ /dev/null @@ -1,109 +0,0 @@ - -// Copyright (C) 2023-2025 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. -// Released under the terms of the GNU Affero General Public License version 3. - -// [ISJTB-CXX-XL20230401-000001] - -/*! - * @file method_call.hpp - * - * @brief - * Method overload entity type traits. - */ - -#ifndef SIMPLYDT_LIB_DAP_METHOD_CALL_STRUCT_TRAITS_H_ -#define SIMPLYDT_LIB_DAP_METHOD_CALL_STRUCT_TRAITS_H_ - -#include "simplydt/dap/overload/method.hpp" -#include -#include -#include - -namespace simplydt::type_traits -{ - // TYPE TRAIT : has_static_call_signature - - /*! - * @brief - * Determine if type T has an appropriate static - * 'call()' method defined. - */ - template - struct has_static_call_signature; - - /*! - * @brief - * Check that type T has a static method named 'call' - * that respects return and argument types specified. - * - * @details - * This helper trait does not invoke the `T::call()` - * method for verification. Instead it uses - * `std::declval` which simulates the call with the - * provided parameter types in an unevaluated context - * to determine the legality of the expression. - */ - template - struct has_static_call_signature_impl : std::bool_constant < requires { - { - T::call(std::declval()...) - } -> std::convertible_to; - } > { }; - - template - struct has_static_call_signature> { - static constexpr bool - value = has_static_call_signature_impl::value; - }; - - template - struct has_static_call_signature { - static constexpr bool value = false; - }; - - /*! - * @brief - * Determine if type T has an appropriate static - * 'call()' method defined. - */ - template - inline constexpr bool - has_static_call_signature_v = has_static_call_signature:: - value; - -} // namespace simplydt::type_traits - -namespace simplydt::type_traits -{ - // TYPE TRAIT : is_overload_derived - - /*! - * @brief - * Determine if type T inherits from method overload - * struct. - */ - template - struct is_overload_derived; - - template - struct is_overload_derived> { - static constexpr bool value = std::is_base_of_v, T>; - }; - - template - struct is_overload_derived { - static constexpr bool value = false; - }; - - /*! - * @brief - * Determine if type T inherits from method overload - * struct. - */ - template - inline constexpr bool - is_overload_derived_v = is_overload_derived::value; - -} // namespace simplydt::type_traits - -#endif // SIMPLYDT_LIB_DAP_METHOD_CALL_STRUCT_TRAITS_H_ From e178acf482b01b20f92a76204c37d43898805dce Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 24 Sep 2025 04:22:00 -0400 Subject: [PATCH 344/400] Update helper_algorithms.hpp --- .../calendar/gregorian/helper_algorithms.hpp | 73 ++++++++++++++++++- 1 file changed, 71 insertions(+), 2 deletions(-) diff --git a/include/simplydt/calendar/gregorian/helper_algorithms.hpp b/include/simplydt/calendar/gregorian/helper_algorithms.hpp index 4dcd214..9363104 100644 --- a/include/simplydt/calendar/gregorian/helper_algorithms.hpp +++ b/include/simplydt/calendar/gregorian/helper_algorithms.hpp @@ -18,7 +18,11 @@ #include "simplydt/calendar/gregorian/gregorian_defs.hpp" #include "simplydt/common/stl_chrono_defs.hpp" -namespace simplydt::gregorian +/*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + */ +namespace simplydt::gregorian::hinnant { /*! @@ -50,6 +54,71 @@ namespace simplydt::gregorian return static_cast(era * 146'097 + static_cast(doe) - 719'468); } +/*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + * + * @details + * TODO: INCOMPLETE COMMENT!!! + * + * @return + * Year era index + */ +[[nodiscard]] constexpr int eraFromSerialDays(int32_t serial_days) noexcept +{ + serial_days += 719'468; + return (serial_days >= 0 ? serial_days : serial_days - 146'096) / 146'097; +} + +/*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + * + * @details + * TODO: INCOMPLETE COMMENT!!! + * + * @return + * Day offset from start of era + */ +[[nodiscard]] constexpr unsigned dayOfEraFromSerialDays(int32_t serial_days) noexcept +{ + const int era = eraFromSerialDays(serial_days); + serial_days += 719'468; + return static_cast(serial_days - era * 146'097); +} + +/*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + * + * @details + * TODO: INCOMPLETE COMMENT!!! + * + * @return + * Year offset in current era + */ +[[nodiscard]] constexpr unsigned yearOfEraFromSerialDays(int32_t serial_days) noexcept +{ + const unsigned doe = dayOfEraFromSerialDays(serial_days); + return (doe - doe / 1'460 + doe / 36'524 - doe / 146'096) / DAYS_IN_YEAR; +} + +/*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + * + * @details + * TODO: INCOMPLETE COMMENT!!! + * + * @return + * Day offset in current year + */ +[[nodiscard]] constexpr unsigned dayOfYearFromSerialDays(int32_t serial_days) noexcept +{ + const unsigned yoe = yearOfEraFromSerialDays(serial_days); + return dayOfEraFromSerialDays(serial_days) - (DAYS_IN_YEAR * yoe + yoe / 4 - yoe / 100); +} + /*! * @brief * Converts a serial count of days since Unix @@ -82,6 +151,6 @@ namespace simplydt::gregorian return DateTuple{y + (m <= February), m, d}; } -} // namespace simplydt::gregorian +} #endif // SIMPLYDT_LIB_GREGORIAN_HELPER_ALGORITHMS_H_ From 5d96f78a0bf34c8f97ba44be5cbbd9681ec13c07 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 24 Sep 2025 04:22:21 -0400 Subject: [PATCH 345/400] Update gregorian_date.hpp --- .../calendar/gregorian/gregorian_date.hpp | 29 +++++-------------- 1 file changed, 7 insertions(+), 22 deletions(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_date.hpp b/include/simplydt/calendar/gregorian/gregorian_date.hpp index 323251e..335c606 100644 --- a/include/simplydt/calendar/gregorian/gregorian_date.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_date.hpp @@ -55,7 +55,7 @@ struct GregorianDate : if (!ValidationPolicy::isValidDate(year, month, day)) return SERIAL_EPOCH; - return toDaysSinceEpoch(year, month, day); + return hinnant::toDaysSinceEpoch(year, month, day); } /*! @@ -96,14 +96,9 @@ struct GregorianDate : */ [[nodiscard]] constexpr YearInt_t year() const noexcept { - // CREDITS: Howard Hinnant [Mr. Chrono] - (Ripple Labs) - Repr_Type serial_days = this->serialDays + 719'468; - const int era = (serial_days >= 0 ? serial_days : serial_days - 146'096) / 146'097; - const unsigned doe = static_cast(serial_days - era * 146'097); - const unsigned yoe = (doe - doe / 1'460 + doe / 36'524 - doe / 146'096) / DAYS_IN_YEAR; - const unsigned doy = doe - (DAYS_IN_YEAR * yoe + yoe / 4 - yoe / 100); - const unsigned mp = (5 * doy + 2) / 153; - return static_cast((yoe + era * YEARS_IN_ERA) + (mp >= 10)); + const int era = hinnant::eraFromSerialDays(this->serialDays); + const unsigned yearOfEra = hinnant::yearOfEraFromSerialDays(this->serialDays); + return (era * YEARS_IN_ERA) + yearOfEra; } /*! @@ -118,12 +113,7 @@ struct GregorianDate : */ [[nodiscard]] constexpr uint8_t month() const noexcept { - // CREDITS: Howard Hinnant [Mr. Chrono] - (Ripple Labs) - Repr_Type serial_days = this->serialDays + 719'468; - const int era = (serial_days >= 0 ? serial_days : serial_days - 146'096) / 146'097; - const unsigned doe = static_cast(serial_days - era * 146'097); - const unsigned yoe = (doe - doe / 1'460 + doe / 36'524 - doe / 146'096) / DAYS_IN_YEAR; - const unsigned doy = doe - (DAYS_IN_YEAR * yoe + yoe / 4 - yoe / 100); + const unsigned doy = hinnant::dayOfYearFromSerialDays(this->serialDays); const unsigned mp = (5 * doy + 2) / 153; return static_cast(mp + (mp < 10 ? 3 : -9)); } @@ -140,12 +130,7 @@ struct GregorianDate : */ [[nodiscard]] constexpr uint8_t day() const noexcept { - // CREDITS: Howard Hinnant [Mr. Chrono] - (Ripple Labs) - Repr_Type serial_days = this->serialDays + 719'468; - const int era = (serial_days >= 0 ? serial_days : serial_days - 146'096) / 146'097; - const unsigned doe = static_cast(serial_days - era * 146'097); - const unsigned yoe = (doe - doe / 1'460 + doe / 36'524 - doe / 146'096) / DAYS_IN_YEAR; - const unsigned doy = doe - (DAYS_IN_YEAR * yoe + yoe / 4 - yoe / 100); + const unsigned doy = hinnant::dayOfYearFromSerialDays(this->serialDays); const unsigned mp = (5 * doy + 2) / 153; return static_cast(doy - (153 * mp + 2) / 5 + 1); } @@ -163,7 +148,7 @@ struct GregorianDate : const char delimiter = '-'; std::string dateStr; dateStr.reserve(12); - const DateTuple dateValues = fromDaysSinceEpoch(this->serialDays); + const DateTuple dateValues = hinnant::fromDaysSinceEpoch(this->serialDays); dateStr += (std::to_string(std::get<0>(dateValues)) + delimiter); dateStr += (toDoubleDigitStr(std::get<1>(dateValues)) + delimiter); dateStr += toDoubleDigitStr(std::get<2>(dateValues)); From acf5abe5c87bad7d06fd1d557f5c091401bcc516 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 24 Sep 2025 04:24:08 -0400 Subject: [PATCH 346/400] Update gregorian_calendar.hpp --- .../calendar/gregorian/gregorian_calendar.hpp | 37 +++++++------------ 1 file changed, 14 insertions(+), 23 deletions(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp index ae90efa..a60e69f 100644 --- a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp @@ -528,15 +528,8 @@ struct GregorianCalendar : { if (!DatePolicy::isValidDate(year, month, day)) return Days{0}; // Epoch date - - // CREDITS: Howard Hinnant [Mr. Chrono] - (Ripple Labs) - // Convert {year, month, day} triple into a serial count of days. - year -= month <= February; - const int era = year / YEARS_IN_ERA; - const unsigned yoe = static_cast(year - era * YEARS_IN_ERA); - const unsigned doy = (153 * (month + (month > February ? -3 : 9)) + 2) / 5 + day - 1; - const unsigned doe = yoe * DAYS_IN_YEAR + yoe / 4 - yoe / 100 + doy; - return Days{static_cast(era * 146'097 + static_cast(doe) - 719'468)}; + + return Days{static_cast(hinnant::toDaysSinceEpoch(year, month, day))}; } /*! @@ -552,7 +545,11 @@ struct GregorianCalendar : */ [[nodiscard]] static constexpr Days toDaysSinceEpoch(const Date date) noexcept { - return toDaysSinceEpoch(date.year(), date.month(), date.day()); + return Days{ + static_cast( + hinnant::toDaysSinceEpoch(date.year(), date.month(), date.day()) + ) + }; } /*! @@ -575,19 +572,13 @@ struct GregorianCalendar : { // NOTE: Need to validate bounds of serial count beforehand... - // CREDITS: Howard Hinnant [Mr. Chrono] - (Ripple Labs) - // Convert a serial count of days into a {year, month, day} triple. - unsigned long serialCount = serial_days.count(); - serialCount += 719'468; - const int era = (serialCount >= 0 ? serialCount : serialCount - 146'096) / 146'097; - const unsigned doe = static_cast(serialCount - era * 146'097); - const unsigned yoe = (doe - doe / 1'460 + doe / 36'524 - doe / 146'096) / DAYS_IN_YEAR; - const YearInt_t y = static_cast(yoe) + era * YEARS_IN_ERA; - const unsigned doy = doe - (DAYS_IN_YEAR * yoe + yoe / 4 - yoe / 100); - const unsigned mp = (5 * doy + 2) / 153; - const uint8_t d = static_cast(doy - (153 * mp + 2) / 5 + 1); - const uint8_t m = static_cast(mp + (mp < 10 ? 3 : -9)); - return Date{static_cast(y + (m <= 2)), m, d}; + DateTuple dateComponents = hinnant::fromDaysSinceEpoch(serial_days.count()); + + return Date{ + std::get<0>(dateComponents), + std::get<1>(dateComponents), + std::get<2>(dateComponents) + }; } /*! From 9ce351c9eee200723abeaa2876db455d29d3dab5 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 24 Sep 2025 04:39:39 -0400 Subject: [PATCH 347/400] Update gregorian_date.hpp --- include/simplydt/calendar/gregorian/gregorian_date.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_date.hpp b/include/simplydt/calendar/gregorian/gregorian_date.hpp index 335c606..59bd697 100644 --- a/include/simplydt/calendar/gregorian/gregorian_date.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_date.hpp @@ -98,7 +98,7 @@ struct GregorianDate : { const int era = hinnant::eraFromSerialDays(this->serialDays); const unsigned yearOfEra = hinnant::yearOfEraFromSerialDays(this->serialDays); - return (era * YEARS_IN_ERA) + yearOfEra; + return static_cast(era * YEARS_IN_ERA + yearOfEra); } /*! From 8d2649724a9e66bc1f8459679b73d50d5ee1170b Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 24 Sep 2025 14:05:12 -0400 Subject: [PATCH 348/400] Update helper_algorithms.hpp --- .../calendar/gregorian/helper_algorithms.hpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/include/simplydt/calendar/gregorian/helper_algorithms.hpp b/include/simplydt/calendar/gregorian/helper_algorithms.hpp index 9363104..54061ff 100644 --- a/include/simplydt/calendar/gregorian/helper_algorithms.hpp +++ b/include/simplydt/calendar/gregorian/helper_algorithms.hpp @@ -119,6 +119,21 @@ namespace simplydt::gregorian::hinnant return dayOfEraFromSerialDays(serial_days) - (DAYS_IN_YEAR * yoe + yoe / 4 - yoe / 100); } +/*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + * + * @details + * TODO: INCOMPLETE COMMENT!!! + * + * @return + * March-based month index + */ +[[nodiscard]] inline constexpr unsigned monthPrime(const unsigned dayOfYear) noexcept +{ + return (5 * dayOfYear + 2) / 153; +} + /*! * @brief * Converts a serial count of days since Unix From 4c355d181ec6d5826ae5a2a0025c977d7f258e76 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 24 Sep 2025 14:05:32 -0400 Subject: [PATCH 349/400] Update abstract_calendar.hpp Bug fix --- include/simplydt/calendar/abstract_calendar.hpp | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/include/simplydt/calendar/abstract_calendar.hpp b/include/simplydt/calendar/abstract_calendar.hpp index d74a905..7b602f5 100644 --- a/include/simplydt/calendar/abstract_calendar.hpp +++ b/include/simplydt/calendar/abstract_calendar.hpp @@ -528,7 +528,8 @@ struct CalendricalSystem { static_cast(Calendar_Impl::DAY_OF_WEEK_NAMES.size()); const int8_t fromDate_dow = static_cast(Calendar_Impl::getDayOfWeekIndex(from_date)); - const int8_t dowOffset = fromDate_dow - static_cast(dow_repr); + // const int8_t dowOffset = fromDate_dow - static_cast(dow_repr); + const int8_t dowOffset = static_cast(dow_repr) - fromDate_dow; const Date next = from_date + Days{dowOffset + daysInWeek}; return next; @@ -610,13 +611,17 @@ struct CalendricalSystem { const uint8_t fromNumericMonth = from_date.month(); const uint8_t toNumericMonth = static_cast(month_repr) + 1; uint8_t daysInMonth = - Calendar_Impl::getDaysInMonth(from_date.year(), fromNumericMonth); + Calendar_Impl::getDaysInMonth(from_date.year(), toNumericMonth); if (fromNumericMonth != toNumericMonth) { - if (fromNumericMonth > toNumericMonth) + if (fromNumericMonth > toNumericMonth) { return Date{from_date.year(), toNumericMonth, daysInMonth}; - else if (fromNumericMonth < toNumericMonth) - return Date{static_cast(from_date.year() - 1), toNumericMonth, daysInMonth}; + } + else { // fromNumericMonth < toNumericMonth + const YearInt_t previousYear = from_date.year() - 1; + daysInMonth = Calendar_Impl::getDaysInMonth(previousYear, toNumericMonth); + return Date{previousYear, toNumericMonth, daysInMonth}; + } } if (from_date.day() != 1) From 3ce612cbdc571e2ce4ce579a451f21597404c2ad Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 24 Sep 2025 14:05:44 -0400 Subject: [PATCH 350/400] Update gregorian_date.hpp Bug fix --- .../simplydt/calendar/gregorian/gregorian_date.hpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_date.hpp b/include/simplydt/calendar/gregorian/gregorian_date.hpp index 59bd697..ea3a3ab 100644 --- a/include/simplydt/calendar/gregorian/gregorian_date.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_date.hpp @@ -97,8 +97,13 @@ struct GregorianDate : [[nodiscard]] constexpr YearInt_t year() const noexcept { const int era = hinnant::eraFromSerialDays(this->serialDays); - const unsigned yearOfEra = hinnant::yearOfEraFromSerialDays(this->serialDays); - return static_cast(era * YEARS_IN_ERA + yearOfEra); + const unsigned yoe = hinnant::yearOfEraFromSerialDays(this->serialDays); + const unsigned doy = ( + hinnant::dayOfEraFromSerialDays(this->serialDays) + - (DAYS_IN_YEAR * yoe + yoe / 4 - yoe / 100) + ); + const unsigned mp = hinnant::monthPrime(doy); + return static_cast(era * YEARS_IN_ERA + yoe + (mp >= 10)); } /*! @@ -114,7 +119,7 @@ struct GregorianDate : [[nodiscard]] constexpr uint8_t month() const noexcept { const unsigned doy = hinnant::dayOfYearFromSerialDays(this->serialDays); - const unsigned mp = (5 * doy + 2) / 153; + const unsigned mp = hinnant::monthPrime(doy); return static_cast(mp + (mp < 10 ? 3 : -9)); } @@ -131,7 +136,7 @@ struct GregorianDate : [[nodiscard]] constexpr uint8_t day() const noexcept { const unsigned doy = hinnant::dayOfYearFromSerialDays(this->serialDays); - const unsigned mp = (5 * doy + 2) / 153; + const unsigned mp = hinnant::monthPrime(doy); return static_cast(doy - (153 * mp + 2) / 5 + 1); } From 4ae2acadda9c83808b16163c90741adf090fc190 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 24 Sep 2025 14:06:05 -0400 Subject: [PATCH 351/400] Update gregorian_calendar.hpp --- .../simplydt/calendar/gregorian/gregorian_calendar.hpp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp index a60e69f..812b320 100644 --- a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp @@ -570,14 +570,12 @@ struct GregorianCalendar : */ [[nodiscard]] static constexpr Date fromDaysSinceEpoch(const Days serial_days) noexcept { - // NOTE: Need to validate bounds of serial count beforehand... - DateTuple dateComponents = hinnant::fromDaysSinceEpoch(serial_days.count()); return Date{ - std::get<0>(dateComponents), - std::get<1>(dateComponents), - std::get<2>(dateComponents) + std::get<0>(dateComponents), ///< Year + std::get<1>(dateComponents), ///< Month + std::get<2>(dateComponents) ///< Day }; } From 602d9d69120fd4e85a8aeabc4773de0e3d2d0df0 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 24 Sep 2025 14:06:28 -0400 Subject: [PATCH 352/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index 8ba54f3..afb5c1c 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -153,10 +153,10 @@ int main(int argc, char* argv[]) constexpr uint8_t wkIndex = Calendar::getWeekIndex(2025, 9, 22); constexpr Date today = Calendar::getDate(2025, 9, 23); const Date rightNow = Calendar::getDate(SystemClock::now()); - constexpr Date nxt = Calendar::getNextDate(jtb, simplydt::gregorian::MONDAY); - constexpr Date nxtMonth = Calendar::getNextDate(nxt, simplydt::gregorian::OCTOBER); - constexpr Date lstMonth = Calendar::getLastDate(jtb, simplydt::gregorian::JANUARY); - constexpr Date lst = Calendar::getLastDate(nxt, simplydt::gregorian::SUNDAY); + constexpr Date nxt = Calendar::getNextDate(jtb, simplydt::gregorian::MONDAY); + constexpr Date nxtMonth = Calendar::getNextDate(nxt, simplydt::gregorian::MARCH); + constexpr Date lstMonth = Calendar::getLastDate(jtb, simplydt::gregorian::JANUARY); + constexpr Date lst = Calendar::getLastDate(nxt, simplydt::gregorian::SUNDAY); } std::cout << "\n\n\t[ Complete ]" << std::endl; From 52d9a10d057dc2caabe8c98fd9655076e62463a6 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 24 Sep 2025 14:18:16 -0400 Subject: [PATCH 353/400] Clang-format --- .../simplydt/calendar/abstract_calendar.hpp | 10 ++- .../calendar/gregorian/gregorian_calendar.hpp | 67 +++++++++---------- .../calendar/gregorian/gregorian_date.hpp | 9 ++- .../calendar/gregorian/helper_algorithms.hpp | 22 +++--- tests/cli/dev_exe.cpp | 20 +++--- 5 files changed, 60 insertions(+), 68 deletions(-) diff --git a/include/simplydt/calendar/abstract_calendar.hpp b/include/simplydt/calendar/abstract_calendar.hpp index 7b602f5..357d1dc 100644 --- a/include/simplydt/calendar/abstract_calendar.hpp +++ b/include/simplydt/calendar/abstract_calendar.hpp @@ -73,8 +73,8 @@ struct CalendricalSystem { /*! @brief Enumeration of calendar days of week. */ using DayOfWeek = DOW_Enum; - /*! @brief No system local time tag struct. */ - struct NonLocal {}; + /*! @brief TODO: INCOMPLETE COMMENT!!! */ + struct NonLocal { }; /*! * @brief @@ -610,14 +610,12 @@ struct CalendricalSystem { { const uint8_t fromNumericMonth = from_date.month(); const uint8_t toNumericMonth = static_cast(month_repr) + 1; - uint8_t daysInMonth = - Calendar_Impl::getDaysInMonth(from_date.year(), toNumericMonth); + uint8_t daysInMonth = Calendar_Impl::getDaysInMonth(from_date.year(), toNumericMonth); if (fromNumericMonth != toNumericMonth) { if (fromNumericMonth > toNumericMonth) { return Date{from_date.year(), toNumericMonth, daysInMonth}; - } - else { // fromNumericMonth < toNumericMonth + } else { // fromNumericMonth < toNumericMonth const YearInt_t previousYear = from_date.year() - 1; daysInMonth = Calendar_Impl::getDaysInMonth(previousYear, toNumericMonth); return Date{previousYear, toNumericMonth, daysInMonth}; diff --git a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp index 812b320..90c2787 100644 --- a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp @@ -180,7 +180,7 @@ struct GregorianCalendar : { if (!DatePolicy::isValidYear(year)) return 0; // Unsupported year - + return DatePolicy::isLeapYear(year) ? DAYS_IN_LEAP_YEAR : DAYS_IN_YEAR; } @@ -346,7 +346,7 @@ struct GregorianCalendar : { if (!DatePolicy::isValidDate(year, month, day)) return INVALID_DOW_INDEX; // NOTE: This has to go... - + // CREDITS: Tomohiko Sakamoto // Day-of-week index algorithm year -= (month < March); // Extra days from leap year @@ -356,7 +356,7 @@ struct GregorianCalendar : ((year + year / 4 - year / 100 + year / YEARS_IN_ERA + sakamoto::MONTH_KEY[monthIndex] + day) % DAYS_IN_WEEK); - + return static_cast(index); } @@ -447,7 +447,7 @@ struct GregorianCalendar : if (monthTotalDays == 0) return 0; // Unsupported or invalid - + const uint8_t firstOfMonthDowIndex = getDayOfWeekIndex(year, month, 1); const uint8_t monthCells = firstOfMonthDowIndex + monthTotalDays; return (monthCells + 6) / DAYS_IN_WEEK; @@ -472,10 +472,10 @@ struct GregorianCalendar : /*! * @brief * TODO: INCOMPLETE COMMENT!!! - * + * * @details * TODO: INCOMPLETE COMMENT!!! - * + * * @return * Index of week in year (0 - 52) */ @@ -485,7 +485,7 @@ struct GregorianCalendar : { if (!DatePolicy::isValidDate(year, month, day)) return 0; // NOTE: Unexpected behavior? - + const int8_t sundayDiff = SUNDAY - getDayOfWeekIndex(year, January, 1); const Days firstSunday{toDaysSinceEpoch(year, January, 1) + Days{sundayDiff}}; const Days serialDate{toDaysSinceEpoch(year, month, day)}; @@ -495,10 +495,10 @@ struct GregorianCalendar : /*! * @brief * TODO: INCOMPLETE COMMENT!!! - * + * * @details * TODO: INCOMPLETE COMMENT!!! - * + * * @return * Index of week in year (0 - 51) */ @@ -528,7 +528,7 @@ struct GregorianCalendar : { if (!DatePolicy::isValidDate(year, month, day)) return Days{0}; // Epoch date - + return Days{static_cast(hinnant::toDaysSinceEpoch(year, month, day))}; } @@ -545,11 +545,9 @@ struct GregorianCalendar : */ [[nodiscard]] static constexpr Days toDaysSinceEpoch(const Date date) noexcept { - return Days{ - static_cast( - hinnant::toDaysSinceEpoch(date.year(), date.month(), date.day()) - ) - }; + return Days{static_cast( + hinnant::toDaysSinceEpoch(date.year(), date.month(), date.day()) + )}; } /*! @@ -639,9 +637,7 @@ struct GregorianCalendar : [[nodiscard]] static constexpr Date fromUnixTimestamp(const stl::UnixTimestamp& timestamp ) noexcept { - return fromDaysSinceEpoch( - Days{static_cast(timestamp / SECONDS_IN_DAY)} - ); + return fromDaysSinceEpoch(Days{static_cast(timestamp / SECONDS_IN_DAY)}); } /*! @@ -655,8 +651,7 @@ struct GregorianCalendar : * @return * Gregorian calendar date */ - [[nodiscard]] static constexpr Date fromUnixTimestamp(const Seconds serial_secs - ) noexcept + [[nodiscard]] static constexpr Date fromUnixTimestamp(const Seconds serial_secs) noexcept { return fromDaysSinceEpoch(duration_cast(serial_secs)); } @@ -664,10 +659,10 @@ struct GregorianCalendar : /*! * @brief * TODO: INCOMPLETE COMMENT!!! - * + * * @details * TODO: INCOMPLETE COMMENT!!! - * + * * @return * Next date between Mon and Fri */ @@ -690,10 +685,10 @@ struct GregorianCalendar : /*! * @brief * TODO: INCOMPLETE COMMENT!!! - * + * * @details * TODO: INCOMPLETE COMMENT!!! - * + * * @return * Last date between Mon and Fri */ @@ -716,10 +711,10 @@ struct GregorianCalendar : /*! * @brief * TODO: INCOMPLETE COMMENT!!! - * + * * @details * TODO: INCOMPLETE COMMENT!!! - * + * * @return * Next Saturday date */ @@ -729,17 +724,17 @@ struct GregorianCalendar : if (dowDiff == 0) return from_date + Days{DAYS_IN_WEEK}; - + return from_date + Days{dowDiff}; } /*! * @brief * TODO: INCOMPLETE COMMENT!!! - * + * * @details * TODO: INCOMPLETE COMMENT!!! - * + * * @return * Last Saturday date */ @@ -749,17 +744,17 @@ struct GregorianCalendar : if (dowDiff == 0) return from_date - Days{DAYS_IN_WEEK}; - + return from_date - Days{DAYS_IN_WEEK - dowDiff}; } /*! * @brief * TODO: INCOMPLETE COMMENT!!! - * + * * @details * TODO: INCOMPLETE COMMENT!!! - * + * * @return * Array of calendar week dates */ @@ -779,7 +774,7 @@ struct GregorianCalendar : for (uint8_t dowIndex = SUNDAY; dowIndex < DAYS_IN_WEEK; dowIndex++) { const int8_t dowDiff = dowIndex - fromDow; - week[dowIndex] = fromDaysSinceEpoch(Days{serialStart + Days{dowDiff}}); + week[dowIndex] = fromDaysSinceEpoch(Days{serialStart + Days{dowDiff}}); } return week; @@ -788,10 +783,10 @@ struct GregorianCalendar : /*! * @brief * TODO: INCOMPLETE COMMENT!!! - * + * * @details * TODO: INCOMPLETE COMMENT!!! - * + * * @return * Array of calendar week dates */ @@ -803,7 +798,7 @@ struct GregorianCalendar : for (uint8_t dowIndex = SUNDAY; dowIndex < DAYS_IN_WEEK; dowIndex++) { const int8_t dowDiff = dowIndex - fromDow; - week[dowIndex] = fromDaysSinceEpoch(Days{serialStart + Days{dowDiff}}); + week[dowIndex] = fromDaysSinceEpoch(Days{serialStart + Days{dowDiff}}); } return week; diff --git a/include/simplydt/calendar/gregorian/gregorian_date.hpp b/include/simplydt/calendar/gregorian/gregorian_date.hpp index ea3a3ab..244d7bb 100644 --- a/include/simplydt/calendar/gregorian/gregorian_date.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_date.hpp @@ -96,12 +96,11 @@ struct GregorianDate : */ [[nodiscard]] constexpr YearInt_t year() const noexcept { - const int era = hinnant::eraFromSerialDays(this->serialDays); + const int era = hinnant::eraFromSerialDays(this->serialDays); const unsigned yoe = hinnant::yearOfEraFromSerialDays(this->serialDays); - const unsigned doy = ( - hinnant::dayOfEraFromSerialDays(this->serialDays) - - (DAYS_IN_YEAR * yoe + yoe / 4 - yoe / 100) - ); + const unsigned doy = + (hinnant::dayOfEraFromSerialDays(this->serialDays) - + (DAYS_IN_YEAR * yoe + yoe / 4 - yoe / 100)); const unsigned mp = hinnant::monthPrime(doy); return static_cast(era * YEARS_IN_ERA + yoe + (mp >= 10)); } diff --git a/include/simplydt/calendar/gregorian/helper_algorithms.hpp b/include/simplydt/calendar/gregorian/helper_algorithms.hpp index 54061ff..ac61665 100644 --- a/include/simplydt/calendar/gregorian/helper_algorithms.hpp +++ b/include/simplydt/calendar/gregorian/helper_algorithms.hpp @@ -57,10 +57,10 @@ namespace simplydt::gregorian::hinnant /*! * @brief * TODO: INCOMPLETE COMMENT!!! - * + * * @details * TODO: INCOMPLETE COMMENT!!! - * + * * @return * Year era index */ @@ -73,10 +73,10 @@ namespace simplydt::gregorian::hinnant /*! * @brief * TODO: INCOMPLETE COMMENT!!! - * + * * @details * TODO: INCOMPLETE COMMENT!!! - * + * * @return * Day offset from start of era */ @@ -90,10 +90,10 @@ namespace simplydt::gregorian::hinnant /*! * @brief * TODO: INCOMPLETE COMMENT!!! - * + * * @details * TODO: INCOMPLETE COMMENT!!! - * + * * @return * Year offset in current era */ @@ -106,10 +106,10 @@ namespace simplydt::gregorian::hinnant /*! * @brief * TODO: INCOMPLETE COMMENT!!! - * + * * @details * TODO: INCOMPLETE COMMENT!!! - * + * * @return * Day offset in current year */ @@ -122,10 +122,10 @@ namespace simplydt::gregorian::hinnant /*! * @brief * TODO: INCOMPLETE COMMENT!!! - * + * * @details * TODO: INCOMPLETE COMMENT!!! - * + * * @return * March-based month index */ @@ -166,6 +166,6 @@ namespace simplydt::gregorian::hinnant return DateTuple{y + (m <= February), m, d}; } -} +} // namespace simplydt::gregorian::hinnant #endif // SIMPLYDT_LIB_GREGORIAN_HELPER_ALGORITHMS_H_ diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index afb5c1c..6f78d3f 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -33,7 +33,7 @@ int main(int argc, char* argv[]) ProjectInfoOut(); bool ICanWat::* frtho = nullptr; - bool* known = nullptr; + bool* known = nullptr; //\\// using Calendar = simplydt::gregorian::GregorianCalendar; @@ -142,21 +142,21 @@ int main(int argc, char* argv[]) constexpr const char* mnm = Calendar::getMonthName(todayDate); constexpr std::string_view mabbr = Calendar::getMonthAbbrev(todayDate); constexpr Calendar::Month mrepr = Calendar::getMonthEnumRepr(todayDate); - constexpr Days serial = Calendar::toDaysSinceEpoch(2001, 2, 23); + constexpr Days serial = Calendar::toDaysSinceEpoch(2'001, 2, 23); constexpr Date jtb = Calendar::fromDaysSinceEpoch(serial); - constexpr UnixTimestamp ts = Calendar::toUnixTimestamp(2001, 2, 23); + constexpr UnixTimestamp ts = Calendar::toUnixTimestamp(2'001, 2, 23); constexpr Date rtc2 = Calendar::fromUnixTimestamp(ts); constexpr Date next = Calendar::getNextWeekday(jtb); constexpr Date last = Calendar::getLastWeekday(next); constexpr Date weekend = Calendar::getLastWeekend(jtb); - constexpr Calendar::WeekDates week = Calendar::getWeek(2025, 0); - constexpr uint8_t wkIndex = Calendar::getWeekIndex(2025, 9, 22); - constexpr Date today = Calendar::getDate(2025, 9, 23); + constexpr Calendar::WeekDates week = Calendar::getWeek(2'025, 0); + constexpr uint8_t wkIndex = Calendar::getWeekIndex(2'025, 9, 22); + constexpr Date today = Calendar::getDate(2'025, 9, 23); const Date rightNow = Calendar::getDate(SystemClock::now()); - constexpr Date nxt = Calendar::getNextDate(jtb, simplydt::gregorian::MONDAY); - constexpr Date nxtMonth = Calendar::getNextDate(nxt, simplydt::gregorian::MARCH); - constexpr Date lstMonth = Calendar::getLastDate(jtb, simplydt::gregorian::JANUARY); - constexpr Date lst = Calendar::getLastDate(nxt, simplydt::gregorian::SUNDAY); + constexpr Date nxt = Calendar::getNextDate(jtb, simplydt::gregorian::MONDAY); + constexpr Date nxtMonth = Calendar::getNextDate(nxt, simplydt::gregorian::MARCH); + constexpr Date lstMonth = Calendar::getLastDate(jtb, simplydt::gregorian::JANUARY); + constexpr Date lst = Calendar::getLastDate(nxt, simplydt::gregorian::SUNDAY); } std::cout << "\n\n\t[ Complete ]" << std::endl; From 789a35b3155cf2f3281010d504fbafaf51a51e60 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 24 Sep 2025 14:19:28 -0400 Subject: [PATCH 354/400] Renamed Linux Clang-Format Script Renamed scripts/clang-format.sh to scripts/clang-format --- scripts/{clang-format.sh => clang-format} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename scripts/{clang-format.sh => clang-format} (100%) diff --git a/scripts/clang-format.sh b/scripts/clang-format similarity index 100% rename from scripts/clang-format.sh rename to scripts/clang-format From 321af7cc20e3d3bc1674b85ed554c03f4fe320c0 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 24 Sep 2025 14:29:11 -0400 Subject: [PATCH 355/400] Update abstract_calendar.hpp --- .../simplydt/calendar/abstract_calendar.hpp | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/include/simplydt/calendar/abstract_calendar.hpp b/include/simplydt/calendar/abstract_calendar.hpp index 357d1dc..44037ec 100644 --- a/include/simplydt/calendar/abstract_calendar.hpp +++ b/include/simplydt/calendar/abstract_calendar.hpp @@ -510,6 +510,21 @@ struct CalendricalSystem { return Calendar_Impl::fromUnixTimestamp(secsSinceEpoch); } + /*! + * @brief + * Returns next calendar date. + * + * @details + * TODO: INCOMPLETE COMMENT!!! + * + * @return + * Calendar date + */ + [[nodiscard]] inline static constexpr Date getNextDate(const Date from_date) noexcept + { + return from_date + Days{1}; + } + /*! * @brief * Returns next calendar date on provided day-of-week. @@ -570,6 +585,21 @@ struct CalendricalSystem { // (wrap around to valid?) } + /*! + * @brief + * Returns last calendar date. + * + * @details + * TODO: INCOMPLETE COMMENT!!! + * + * @return + * Calendar date + */ + [[nodiscard]] inline static constexpr Date getLastDate(const Date from_date) noexcept + { + return from_date - Days{1}; + } + /*! * @brief * Returns last calendar date on provided day-of-week. From fe2f572476b99b3b7b7c7be31552197f2c57a92e Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 24 Sep 2025 14:37:21 -0400 Subject: [PATCH 356/400] Update diagrams.drawio --- docs/prj/diagrams.drawio | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/docs/prj/diagrams.drawio b/docs/prj/diagrams.drawio index 56737de..04d561a 100644 --- a/docs/prj/diagrams.drawio +++ b/docs/prj/diagrams.drawio @@ -281,7 +281,7 @@ - + @@ -637,7 +637,7 @@ - + @@ -645,7 +645,7 @@ - + @@ -667,8 +667,11 @@ + + + - + @@ -720,23 +723,29 @@ - + - + - + - + - + + + + + + + - + From 1209b84453e83be06a200d948eccf53260ba35e6 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 24 Sep 2025 14:37:25 -0400 Subject: [PATCH 357/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index 6f78d3f..ae30900 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -157,6 +157,8 @@ int main(int argc, char* argv[]) constexpr Date nxtMonth = Calendar::getNextDate(nxt, simplydt::gregorian::MARCH); constexpr Date lstMonth = Calendar::getLastDate(jtb, simplydt::gregorian::JANUARY); constexpr Date lst = Calendar::getLastDate(nxt, simplydt::gregorian::SUNDAY); + constexpr Date n = Calendar::getNextDate(jtb); + constexpr Date l = Calendar::getLastDate(jtb); } std::cout << "\n\n\t[ Complete ]" << std::endl; From 3729b883b7f5fbde4cb63348dd314e6ff105c181 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 24 Sep 2025 15:17:52 -0400 Subject: [PATCH 358/400] Update calendar_defs.hpp Resolves: https://github.com/InfinSys/simply-datetime/pull/9#discussion_r2373482457 --- include/simplydt/common/calendar_defs.hpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/include/simplydt/common/calendar_defs.hpp b/include/simplydt/common/calendar_defs.hpp index 3481d51..9470f69 100644 --- a/include/simplydt/common/calendar_defs.hpp +++ b/include/simplydt/common/calendar_defs.hpp @@ -46,7 +46,11 @@ enum class CalendarComponent : uint8_t { * Calendar year, month, and day value tuple. * * @details - * TODO: INCOMPLETE COMMENT!!! + * This alias defines a generic date container + * independent of any specific calendar system. + * It is primarily used as a lightweight value + * type for passing or storing complete date + * information without additional calendar logic. */ template using CalendarDateTuple = std::tuple; From dd8e4feb94fe0f2ff50db5bb41fa0c61492d34a6 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 24 Sep 2025 15:39:48 -0400 Subject: [PATCH 359/400] Update abstract_date.hpp --- .../simplydt/calendar/date/abstract_date.hpp | 29 ++++++++++++++----- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/include/simplydt/calendar/date/abstract_date.hpp b/include/simplydt/calendar/date/abstract_date.hpp index 761eb58..d046954 100644 --- a/include/simplydt/calendar/date/abstract_date.hpp +++ b/include/simplydt/calendar/date/abstract_date.hpp @@ -250,14 +250,20 @@ struct SerialCalendarDate { /*! * @brief - * Determines if date is sequentially between two - * dates. + * Checks if this date falls within a specified + * date range. * * @details - * TODO: INCOMPLETE COMMENT!!! + * This function compares the serial day count of + * the current date instance against two provided + * dates, expressed in the same serial-day format. + * The comparison is inclusive, meaning the + * function returns true if this date is equal to + * either boundary date or lies strictly between + * them. * * @return - * True if this date occurs between provided dates + * True if date lies within inclusive date range */ [[nodiscard]] constexpr bool isBetween( const Date_Impl start_date, const Date_Impl end_date @@ -269,10 +275,15 @@ struct SerialCalendarDate { /*! * @brief - * Calculates number of days between dates. + * Calculates day difference between dates. * * @details - * TODO: INCOMPLETE COMMENT!!! + * This function calculates the signed number of + * days from the current date instance to the + * specified `date`. A positive result indicates + * that the given `date` occurs after this date, + * while a negative result indicates it occurs + * before. * * @return * Days from this date to provided @@ -288,7 +299,11 @@ struct SerialCalendarDate { * of precision. * * @details - * TODO: INCOMPLETE COMMENT!!! + * This function exposes the underlying serial day + * count of the current date instance, wrapped in + * `Days` units. The value represents the total + * number of days elapsed since the calendar's + * defined epoch date. * * @return * Serial day count From e17e542972f71c2c6bde8ab45fcfdd354c0f5bcd Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 24 Sep 2025 17:12:01 -0400 Subject: [PATCH 360/400] Update abstract_calendar.hpp --- .../simplydt/calendar/abstract_calendar.hpp | 84 ++++++++++++------- 1 file changed, 55 insertions(+), 29 deletions(-) diff --git a/include/simplydt/calendar/abstract_calendar.hpp b/include/simplydt/calendar/abstract_calendar.hpp index 44037ec..526e583 100644 --- a/include/simplydt/calendar/abstract_calendar.hpp +++ b/include/simplydt/calendar/abstract_calendar.hpp @@ -491,13 +491,12 @@ struct CalendricalSystem { * Create calendar date using system clock. * * @details - * If `local` is true the given `stl::SystemTimePoint` is - * interpreted as local time (OS time-zone applied). If - * `local` is false the time point is interpreted without - * the assistance of the host OS (no time-zone). The OS has - * access to the necessary system settings that influence - * local time interpretation and must be consulted to get - * the systems true date. + * When the `NonLocal` tag struct is supplied, the provided + * timepoint is interpreted without the assistance of the + * host OS (no time-zone applied). The OS has access to the + * necessary system settings that influence local time + * interpretation and must be consulted to get the systems + * true date (time-zone applied). * * @return * Calendar date @@ -515,7 +514,7 @@ struct CalendricalSystem { * Returns next calendar date. * * @details - * TODO: INCOMPLETE COMMENT!!! + * Increments the provided date by 1 day. * * @return * Calendar date @@ -527,10 +526,14 @@ struct CalendricalSystem { /*! * @brief - * Returns next calendar date on provided day-of-week. + * Finds next calendar date on specified day-of-week. * * @details - * TODO: INCOMPLETE COMMENT!!! + * This function determines the first calendar date that + * falls on the specified day of the week strictly after + * the provided `from_date`. The calculation uses the + * day-of-week index supplied by the derived calendar + * implementation and advances by at least one full week. * * @return * Calendar date @@ -543,19 +546,26 @@ struct CalendricalSystem { static_cast(Calendar_Impl::DAY_OF_WEEK_NAMES.size()); const int8_t fromDate_dow = static_cast(Calendar_Impl::getDayOfWeekIndex(from_date)); - // const int8_t dowOffset = fromDate_dow - static_cast(dow_repr); const int8_t dowOffset = static_cast(dow_repr) - fromDate_dow; - - const Date next = from_date + Days{dowOffset + daysInWeek}; - return next; + return from_date + Days{dowOffset + daysInWeek}; } /*! * @brief - * Returns next calendar date in provided month. + * Finds next calendar date within specified month. * * @details - * TODO: INCOMPLETE COMMENT!!! + * This function calculates the next date in the given + * `month_repr` relative to the provided `from_date`. If + * the target month has not yet occurred in the current + * year, the result is the first day of that month within + * the same year. If the target month has already passed, + * the result is the first day of that month in the + * following year. If the `from_date` is already within + * the target month, the function advances to the very + * next day, unless the date is the last day of the month, + * in which case it rolls over to the first day of the + * same month in the next year. * * @return * Calendar date @@ -568,10 +578,13 @@ struct CalendricalSystem { const uint8_t toNumericMonth = static_cast(month_repr) + 1; if (fromNumericMonth != toNumericMonth) { - if (fromNumericMonth > toNumericMonth) - return Date{static_cast(from_date.year() + 1), toNumericMonth, 1}; - else if (fromNumericMonth < toNumericMonth) + if (fromNumericMonth > toNumericMonth) { + const YearInt_t nextYear = from_date.year() + 1; + return Date{nextYear, toNumericMonth, 1}; + } + else { // fromNumericMonth < toNumericMonth return Date{from_date.year(), toNumericMonth, 1}; + } } const uint8_t daysInMonth = @@ -579,8 +592,9 @@ struct CalendricalSystem { if (from_date.day() != daysInMonth) return from_date + Days{1}; - - return Date{static_cast(from_date.year() + 1), fromNumericMonth, 1}; + + const YearInt_t nextYear = from_date.year() + 1; + return Date{nextYear, fromNumericMonth, 1}; // NOTE: Check validity of above date values first before return? // (wrap around to valid?) } @@ -590,7 +604,7 @@ struct CalendricalSystem { * Returns last calendar date. * * @details - * TODO: INCOMPLETE COMMENT!!! + * Decrements the provided date by 1 day. * * @return * Calendar date @@ -602,10 +616,14 @@ struct CalendricalSystem { /*! * @brief - * Returns last calendar date on provided day-of-week. + * Finds last calendar date on provided day-of-week. * * @details - * TODO: INCOMPLETE COMMENT!!! + * This function determines the first calendar date that + * falls on the specified day of the week strictly before + * the provided `from_date`. The calculation uses the + * day-of-week index supplied by the derived calendar + * implementation and decreases by at least one full week. * * @return * Calendar date @@ -619,17 +637,25 @@ struct CalendricalSystem { const int8_t fromDate_dow = static_cast(Calendar_Impl::getDayOfWeekIndex(from_date)); const int8_t dowOffset = fromDate_dow - static_cast(dow_repr); - - const Date last = from_date - Days{dowOffset + daysInWeek}; - return last; + return from_date - Days{dowOffset + daysInWeek}; } /*! * @brief - * Returns last calendar date in provided month. + * Finds last calendar date within specified month. * * @details - * TODO: INCOMPLETE COMMENT!!! + * This function calculates the last date in the given + * `month_repr` relative to the provided `from_date`. If + * the target month has not yet occurred in the current + * year, the result will be the last day of that month + * in the previous year. If the target month has already + * passed, the result is the last day of that month in + * the same year. If `from_date` is already within the + * target month, the function returns the day + * immediately preceding it, unless `from_date` is the + * first day of the month, in which case it rolls back + * to the last day of the same month in the previous year. * * @return * Calendar date From 4a4ee413d7d6b32f7243e0fd2ae68ff753881005 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 24 Sep 2025 17:56:15 -0400 Subject: [PATCH 361/400] Update abstract_time.hpp --- include/simplydt/time/abstract_time.hpp | 55 +++++++++++++++++++++---- 1 file changed, 46 insertions(+), 9 deletions(-) diff --git a/include/simplydt/time/abstract_time.hpp b/include/simplydt/time/abstract_time.hpp index a2e5e5e..102312e 100644 --- a/include/simplydt/time/abstract_time.hpp +++ b/include/simplydt/time/abstract_time.hpp @@ -26,7 +26,33 @@ namespace simplydt * Base time standard interface. * * @details - * TODO: INCOMPLETE COMMENT!!! + * This is the foundational interface for serial time in + * Simply Datetime. This class is agnostic of any specific + * time standard and avoids assumptions on underlying time + * units used to represent a time in day. This type holds + * both time standard knowledge and state. Simply Datetime + * relies on the object invariant that any constructed + * instance of this type represents a valid time of day. + * Each implementation is responsible for enforcing this + * invariant to prevent bugs and undefined behavior. This + * structure expects timekeeping to be conducted as a serial + * count of a time unit relative to midnight (0 = 00:00:00 + * AM). The provided underlying serial time representation + * type `Repr_T` is initialized in this base class but can + * also be accessed by the derived time implementation. The + * class hierarchy implements the CRTP design pattern which + * allows this base to reference the derivative. Consequently, + * the convenience methods defined in this base structure + * depend on the concrete time standards public API for them + * to be well-formed. A derivative is expected to present + * the appropriate attributes and methods, which can be + * verified by invoking the contract enforcement macro + * (`SIMPLYDT_ENFORCE_TIME_CONTRACT`) just after the body of + * the implementation. Failing to have a compliant API can + * result in substitution errors or undefined behavior. This + * is not a self-constructable type, it must be inherited by + * a concrete implementation that presents the expected + * public API. */ template struct SerialTimeStandard { @@ -273,14 +299,20 @@ struct SerialTimeStandard { /*! * @brief - * Determines if time is sequentially between two - * times. + * Checks if this time falls within a specified + * time range. * * @details - * TODO: INCOMPLETE COMMENT!!! + * This function compares the serial time count of + * the current time instance against two provided + * times, expressed in the same serial-time format. + * The comparison is inclusive, meaning the + * function returns true if this time is equal to + * either boundary time or lies strictly between + * them. * * @return - * True if this time occurs between provided times + * True if time lies within inclusive time range */ [[nodiscard]] constexpr bool isBetween( const Standard_Impl start_time, const Standard_Impl end_time @@ -296,7 +328,11 @@ struct SerialTimeStandard { * of precision. * * @details - * TODO: INCOMPLETE COMMENT!!! + * This function exposes the underlying serial time + * count of the current time instance, wrapped in + * the standards units of precision. The value + * represents the total number of units elapsed since + * midnight (00:00:00 AM). * * @return * Serial time count @@ -311,11 +347,12 @@ struct SerialTimeStandard { * Returns constant reference to underlying serial * time count. * - * @details - * TODO: INCOMPLETE COMMENT!!! + * @note + * The units of measure used by the value returned + * depend on the current time implementation. * * @return - * Serial time count + * Constant reference to serial time count */ [[nodiscard]] constexpr const Repr_Type& underlying() const noexcept { From bbd7d7ed110e5545093e799878b2d6b81cabd82b Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 24 Sep 2025 17:56:20 -0400 Subject: [PATCH 362/400] Update abstract_date.hpp --- include/simplydt/calendar/date/abstract_date.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/simplydt/calendar/date/abstract_date.hpp b/include/simplydt/calendar/date/abstract_date.hpp index d046954..8219e0e 100644 --- a/include/simplydt/calendar/date/abstract_date.hpp +++ b/include/simplydt/calendar/date/abstract_date.hpp @@ -56,7 +56,7 @@ namespace simplydt * have a compliant API can result in substitution errors * or undefined behavior. This is not a self-constructable * type, it must be inherited by a concrete implementation - * that presents the expected (public) API. + * that presents the expected public API. */ template struct SerialCalendarDate { From cf8bdab037f2f885a1f033f7b55914f1b0d5dcfd Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 24 Sep 2025 18:27:42 -0400 Subject: [PATCH 363/400] Update gregorian_date.hpp --- .../calendar/gregorian/gregorian_date.hpp | 32 ++++++++++++++++--- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_date.hpp b/include/simplydt/calendar/gregorian/gregorian_date.hpp index 244d7bb..c2a8cfa 100644 --- a/include/simplydt/calendar/gregorian/gregorian_date.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_date.hpp @@ -42,7 +42,14 @@ struct GregorianDate : * Intercepts invalid date constructor values. * * @details - * TODO: INCOMPLETE COMMENT!!! + * This function verifies that the provided year, + * month, and day values form a valid Gregorian + * calendar date according to the associated + * `ValidationPolicy`. If the date is valid, it is + * converted into its corresponding serial day + * representation relative to the Unix epoch + * (January 1, 1970). If the date is invalid, the + * function returns the Unix epoch (0) as a default. * * @return * Provided date in serial days if valid, epoch @@ -89,7 +96,13 @@ struct GregorianDate : * Date year component. * * @details - * TODO: INCOMPLETE COMMENT!!! + * This function derives the year value from the + * internal serial day count using algorithms from + * Howard Hinnant. The calculation decomposes the + * serial day count into its era, year-of-era, + * day-of-era, and month-prime components. These + * values are then combined to yield the correct + * Gregorian calendar year. * * @return * Year of Gregorian calendar date @@ -110,7 +123,13 @@ struct GregorianDate : * Date month component. * * @details - * TODO: INCOMPLETE COMMENT!!! + * This function derives the month value from the + * internal serial day count using algorithms from + * Howard Hinnant. The calculation decomposes the + * serial day count into its day-of-year and + * month-prime components. These values are then + * combined to yield the correct numeric Gregorian + * calendar month. * * @return * Month of Gregorian calendar date @@ -127,7 +146,12 @@ struct GregorianDate : * Date day component. * * @details - * TODO: INCOMPLETE COMMENT!!! + * This function derives the day value from the + * internal serial day count using algorithms from + * Howard Hinnant. The calculation decomposes the + * serial day count into its day-of-year and + * month-prime components. These values are then + * combined to yield the correct day of month. * * @return * Day of Gregorian calendar date From b1600d47a214f235b8c4b196b09d8f90f6ad88ab Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 24 Sep 2025 23:08:05 -0400 Subject: [PATCH 364/400] Update gregorian_calendar.hpp Documentation updates --- .../calendar/gregorian/gregorian_calendar.hpp | 191 ++++++++++++++---- 1 file changed, 150 insertions(+), 41 deletions(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp index 90c2787..3c831a8 100644 --- a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp @@ -261,7 +261,12 @@ struct GregorianCalendar : */ [[nodiscard]] static constexpr uint8_t getDaysInMonth(const Date date) noexcept { - return DatePolicy::getDaysInMonth(date.year(), date.month()); + const DateTuple dateComponents = hinnant::fromDaysSinceEpoch(date.underlying()); + + return DatePolicy::getDaysInMonth( + std::get<0>(dateComponents), ///< Year + std::get<1>(dateComponents) ///< Month + ); } /*! @@ -375,7 +380,13 @@ struct GregorianCalendar : */ [[nodiscard]] static constexpr uint8_t getDayOfWeekIndex(const Date date) noexcept { - return getDayOfWeekIndex(date.year(), date.month(), date.day()); + const DateTuple dateComponents = hinnant::fromDaysSinceEpoch(date.underlying()); + + return getDayOfWeekIndex( + std::get<0>(dateComponents), ///< Year + std::get<1>(dateComponents), ///< Month + std::get<2>(dateComponents) ///< Day + ); } /*! @@ -398,7 +409,7 @@ struct GregorianCalendar : const YearInt_t year, const uint8_t month ) noexcept { - const uint8_t monthTotalDays = getDaysInMonth(year, month); + const uint8_t monthTotalDays = DatePolicy::getDaysInMonth(year, month); if (monthTotalDays == 0) return 0; // Unsupported or invalid @@ -412,14 +423,23 @@ struct GregorianCalendar : * specified month. * * @details - * TODO: INCOMPLETE COMMENT!!! + * Extracts the year and month components from + * the provided `Date` instance to calculate + * how many full seven-day calendar weeks are + * in the provided month. Fractional week + * information is truncated. * * @return - * Number of weeks in month + * Number of full 7-day weeks in month */ [[nodiscard]] static constexpr uint8_t getWeeksInMonth(const Date date) noexcept { - return getWeeksInMonth(date.year(), date.month()); + const DateTuple dateComponents = hinnant::fromDaysSinceEpoch(date.underlying()); + + return getWeeksInMonth( + std::get<0>(dateComponents), ///< Year + std::get<1>(dateComponents) ///< Month + ); } /*! @@ -432,7 +452,7 @@ struct GregorianCalendar : * needed to contain all days of the specified * month in a standard calendar grid. The result * depends on the day of the week the month starts - * on and the total number of days in the monthh. + * on and the total number of days in the month. * Returns 0 if the month is invalid or if the * provided year is unsupported. * @@ -443,7 +463,7 @@ struct GregorianCalendar : const YearInt_t year, const uint8_t month ) noexcept { - const uint8_t monthTotalDays = getDaysInMonth(year, month); + const uint8_t monthTotalDays = DatePolicy::getDaysInMonth(year, month); if (monthTotalDays == 0) return 0; // Unsupported or invalid @@ -459,25 +479,49 @@ struct GregorianCalendar : * spans over the calendar. * * @details - * TODO: INCOMPLETE COMMENT!!! + * Extracts year and month components from the + * provided `Date` instance to calculates how + * many full or partial weeks are needed to + * contain all days of the specified month in + * a standard calendar grid. * * @return * Number of weeks month spans */ [[nodiscard]] static constexpr uint8_t getWeeksMonthSpans(const Date date) noexcept { - return getWeeksMonthSpans(date.year(), date.month()); + const DateTuple dateComponents = hinnant::fromDaysSinceEpoch(date.underlying()); + + return getWeeksMonthSpans( + std::get<0>(dateComponents), ///< Year + std::get<1>(dateComponents) ///< Month + ); } /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Determines zero-based index of week for a + * specified date within its year. * * @details - * TODO: INCOMPLETE COMMENT!!! + * This function calculates which week of the year + * [0–52] the given Gregorian calendar date falls + * into. Weeks are defined relative to Sundays, + * with week 0 beginning on the first Sunday before, + * on, or after January 1 of the given year. The + * weeks are calendar aligned. Consequently, the week + * index can range from [0-52] (inclusive) because + * the potential partial week(s) at the beginning and + * end of the year are taken into account. The index + * is obtained by computing the difference in days + * between the target date and that first Sunday, + * then dividing by the number of days in a week. If + * the provided year, month, or day values do not + * form a valid Gregorian date, the function returns + * index 0 as a fallback. * * @return - * Index of week in year (0 - 52) + * Index of week within year [0 - 52] */ [[nodiscard]] static constexpr uint8_t getWeekIndex( YearInt_t year, uint8_t month, uint8_t day @@ -494,17 +538,27 @@ struct GregorianCalendar : /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Determines zero-based index of week for a + * specified date within its year. * * @details - * TODO: INCOMPLETE COMMENT!!! + * Extracts year, month, and day components from + * the provided `Date` instance to calculate which + * week of the year [0–52] the given Gregorian + * calendar date falls into. * * @return - * Index of week in year (0 - 51) + * Index of week within year [0 - 52] */ [[nodiscard]] static constexpr uint8_t getWeekIndex(const Date date) noexcept { - return getWeekIndex(date.year(), date.month(), date.day()); + const DateTuple dateComponents = hinnant::fromDaysSinceEpoch(date.underlying()); + + return getWeekIndex( + std::get<0>(dateComponents), ///< Year + std::get<1>(dateComponents), ///< Month + std::get<2>(dateComponents) ///< Day + ); } /*! @@ -538,16 +592,16 @@ struct GregorianCalendar : * days since Unix epoch. * * @details - * TODO: INCOMPLETE COMMENT!!! + * Returns serial date count in explicit units of + * precision (days) using the provided `Date` + * instances `units()` function. * * @return * Days since January 1, 1970 */ - [[nodiscard]] static constexpr Days toDaysSinceEpoch(const Date date) noexcept + [[nodiscard]] inline static constexpr Days toDaysSinceEpoch(const Date date) noexcept { - return Days{static_cast( - hinnant::toDaysSinceEpoch(date.year(), date.month(), date.day()) - )}; + return date.units(); } /*! @@ -609,14 +663,22 @@ struct GregorianCalendar : * (seconds since epoch). * * @details - * TODO: INCOMPLETE COMMENT!!! + * Extracts year, month, and day components from + * the provided `Date` instance to calculate the + * number of days since the Unix epoch (1970-01-01). * * @return * Unix timestamp */ [[nodiscard]] static constexpr stl::UnixTimestamp toUnixTimestamp(const Date date) noexcept { - return toUnixTimestamp(date.year(), date.month(), date.day()); + const DateTuple dateComponents = hinnant::fromDaysSinceEpoch(date.underlying()); + + return toUnixTimestamp( + std::get<0>(dateComponents), ///< Year + std::get<1>(dateComponents), ///< Month + std::get<2>(dateComponents) ///< Day + ); } /*! @@ -646,7 +708,9 @@ struct GregorianCalendar : * a calendar date. * * @details - * TODO: INCOMPLETE COMMENT!!! + * Converts the provided serial seconds count + * timestamp to days, which is then interpreted + * using Howard Hinnants algorithm. * * @return * Gregorian calendar date @@ -658,13 +722,22 @@ struct GregorianCalendar : /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Finds next weekday [Monday – Friday] after a + * given date. * * @details - * TODO: INCOMPLETE COMMENT!!! + * This function advances the provided `from_date` + * to the next date that falls on a weekday + * (Monday through Friday). If the current date is + * Friday, the result is the following Monday + * (skipping the weekend). If the current date is + * Saturday or Sunday, the function advances to + * the upcoming Monday. For all other weekdays + * (Monday–Thursday), the result is simply the + * next calendar day. * * @return - * Next date between Mon and Fri + * Next date between [Monday - Friday] */ [[nodiscard]] static constexpr Date getNextWeekday(const Date from_date) noexcept { @@ -684,13 +757,22 @@ struct GregorianCalendar : /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Finds most recent weekday [Monday – Friday] + * before a given date. * * @details - * TODO: INCOMPLETE COMMENT!!! + * This function rolls the provided `from_date` + * back to the last date that falls on a weekday + * (Monday through Friday). If the current date is + * Monday, the result is the previous Friday. If + * the current date is Sunday, the result is the + * previous Friday as well. For all other days + * (Tuesday through Saturday), the result is simply + * the preceding calendar day, provided it falls + * within the weekday range. * * @return - * Last date between Mon and Fri + * Last date between [Monday - Friday] */ [[nodiscard]] static constexpr Date getLastWeekday(const Date from_date) noexcept { @@ -710,10 +792,16 @@ struct GregorianCalendar : /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Finds next Saturday following a provided date. * * @details - * TODO: INCOMPLETE COMMENT!!! + * This function advances the provided `from_date` + * to the next occurrence of Saturday in the + * Gregorian calendar. If the given date already + * falls on a Saturday, the function returns the + * Saturday of the following week. For all other + * days, the function computes the offset to the + * upcoming Saturday and advances accordingly. * * @return * Next Saturday date @@ -730,10 +818,16 @@ struct GregorianCalendar : /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Finds last Saturday before provided date. * * @details - * TODO: INCOMPLETE COMMENT!!! + * This function decreases the provided `from_date` + * to the last occurrence of Saturday in the + * Gregorian calendar. If the given date already + * falls on a Saturday, the function returns the + * Saturday of the prior week. For all other + * days, the function computes the offset to the + * previous Saturday and decreases accordingly. * * @return * Last Saturday date @@ -750,10 +844,21 @@ struct GregorianCalendar : /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Finds all dates associated with provided week + * within a year. * * @details - * TODO: INCOMPLETE COMMENT!!! + * Gathers all 7 dates of a specified week within a + * year into an array and returns the results. + * Weeks are defined relative to Sundays, with week + * 0 beginning on the first Sunday before or on + * January 1 of the given year. The weeks are + * calendar aligned. Consequently, a request for the + * first and last week of a given year may result in + * dates from the previous or next year. If the + * provided year value is not supported or an invalid + * week index is provided, the function returns an + * array of epoch dates. * * @return * Array of calendar week dates @@ -764,8 +869,8 @@ struct GregorianCalendar : { WeekDates week{}; - if (week_index > WEEKS_IN_YEAR) - return week; // Invalid week index + if (week_index > WEEKS_IN_YEAR || !DatePolicy::isValidYear(year)) + return week; // Invalid week index or unsupported year const Days serialStart{ toDaysSinceEpoch(year, January, 1) + Days{week_index * DAYS_IN_WEEK} @@ -782,10 +887,14 @@ struct GregorianCalendar : /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Finds all dates associated with week containing + * provided date. * * @details - * TODO: INCOMPLETE COMMENT!!! + * Determines the full calendar week (Sunday through + * Saturday) that the provided date falls within by + * aligning to the date’s weekday and filling in + * surrounding dates. * * @return * Array of calendar week dates From b058793bc6c4502cb8bde2158cad76f44b7ff55b Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 24 Sep 2025 23:08:15 -0400 Subject: [PATCH 365/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 44 +++++++++++++++++++++++++++++++++++++------ 1 file changed, 38 insertions(+), 6 deletions(-) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index ae30900..f1f1ced 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -131,18 +131,13 @@ int main(int argc, char* argv[]) next -= Seconds{10}; } - // SerialCalendarDate and SerialTimeStandard stream out tests: - { - std::cout << "\nToday date: " << todayDate << "\nTime: " << rightNow << '\n'; - std::cout << "\nToday + 19 days = " << (todayDate + Days{19}) << '\n'; - } - // Gregorian calendar tests: { constexpr const char* mnm = Calendar::getMonthName(todayDate); constexpr std::string_view mabbr = Calendar::getMonthAbbrev(todayDate); constexpr Calendar::Month mrepr = Calendar::getMonthEnumRepr(todayDate); constexpr Days serial = Calendar::toDaysSinceEpoch(2'001, 2, 23); + constexpr Days serial2 = Calendar::toDaysSinceEpoch(todayDate); constexpr Date jtb = Calendar::fromDaysSinceEpoch(serial); constexpr UnixTimestamp ts = Calendar::toUnixTimestamp(2'001, 2, 23); constexpr Date rtc2 = Calendar::fromUnixTimestamp(ts); @@ -159,6 +154,43 @@ int main(int argc, char* argv[]) constexpr Date lst = Calendar::getLastDate(nxt, simplydt::gregorian::SUNDAY); constexpr Date n = Calendar::getNextDate(jtb); constexpr Date l = Calendar::getLastDate(jtb); + constexpr uint8_t dow = Calendar::getDayOfWeekIndex(jtb); + } + + // Console calendar test: + { + constexpr Date::YearInt_t year = 2025; + constexpr uint8_t month = simplydt::gregorian::October; + + std::cout + << "\n\n\t[ ~ " << Calendar::getMonthName(month) + << ' ' << year << " ~ ]" + << std::endl; + + for (const std::string_view& dowAbbrev : Calendar::DAY_OF_WEEK_ABBREVS) { + std::cout << ' ' << dowAbbrev << " "; + } + + std::cout << std::endl; + Calendar::WeekDates week = Calendar::getWeek(Date{year, month, 1}); + + while (true) { + for (const Date date : week) { + if (date.month() != month) { + std::cout << " "; + continue; + } + + std::cout << " " << simplydt::toDoubleDigitStr(date.day()) << " |"; + } + + std::cout << std::endl; + + if (week[simplydt::gregorian::SATURDAY].month() != month) + break; + + week = Calendar::getWeek(week[simplydt::gregorian::SATURDAY] + Days{1}); + } } std::cout << "\n\n\t[ Complete ]" << std::endl; From 325a562089b0fc91c22a128b9d499b17b05cb36e Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 24 Sep 2025 23:11:05 -0400 Subject: [PATCH 366/400] Delete old_gregorian_calendar.hpp --- .../gregorian/old_gregorian_calendar.hpp | 664 ------------------ 1 file changed, 664 deletions(-) delete mode 100644 include/simplydt/calendar/gregorian/old_gregorian_calendar.hpp diff --git a/include/simplydt/calendar/gregorian/old_gregorian_calendar.hpp b/include/simplydt/calendar/gregorian/old_gregorian_calendar.hpp deleted file mode 100644 index 38935a1..0000000 --- a/include/simplydt/calendar/gregorian/old_gregorian_calendar.hpp +++ /dev/null @@ -1,664 +0,0 @@ - -// Copyright (C) 2026 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. -// Released under the terms of the GNU Affero General Public License version 3. - -// [ISJTB-CXX-XL20230401-000001] - -/*! - * @file gregorian_calendar.hpp - * - * @brief - * Gregorian calendar system declaration. - */ - - -#ifndef SIMPLYDT_LIB_GREGORIAN_CALENDAR_STRUCT_H_ -#define SIMPLYDT_LIB_GREGORIAN_CALENDAR_STRUCT_H_ - -#include "simplydt/calendar/abstract_calendar.hpp" -#include "simplydt/calendar/concepts/calendar_contract.hpp" -#include "simplydt/calendar/gregorian/gregorian_date.hpp" -#include "simplydt/common/stl_chrono_utils.hpp" - -//_-_// namespace simplydt::gregorian -//_-_// { -//_-_// -//_-_// /*! -//_-_// * @brief -//_-_// * Gregorian calendar system. -//_-_// */ -//_-_// struct GregorianCalendar final : -//_-_// public CalendricalSystem { -//_-_// /*! -//_-_// * @brief -//_-_// * Identifies the calendar system represented by this -//_-_// * implementation. -//_-_// */ -//_-_// static constexpr CalendarSystem calendar = CalendarSystem::GREGORIAN; -//_-_// -//_-_// /*! -//_-_// * @brief -//_-_// * Indicates whether the calendar system is solar-based. -//_-_// * -//_-_// * @details -//_-_// * This constant specifies that the Gregorian calendar system -//_-_// * follows a solar model, where date progression is based on -//_-_// * the Earth's orbit around the Sun. -//_-_// */ -//_-_// static constexpr bool isSolarCalendar = true; -//_-_// -//_-_// /*! -//_-_// * @brief -//_-_// * Indicates whether the calendar system is lunar-based. -//_-_// * -//_-_// * @details -//_-_// * This constant specifies that the Gregorian calendar system -//_-_// * does not follow a lunar model, which bases months on the -//_-_// * phases of the Moon. -//_-_// */ -//_-_// static constexpr bool isLunarCalendar = false; -//_-_// -//_-_// /*! -//_-_// * @brief -//_-_// * Indicates whether the calendar system is lunisolar-based. -//_-_// * -//_-_// * @details -//_-_// * This constant specifies that the Gregorian calendar system -//_-_// * does not follow a lunisolar model, which combines solar -//_-_// * and lunar cycles to structure months and years. -//_-_// */ -//_-_// static constexpr bool isLunisolarCalendar = false; -//_-_// -//_-_// /*! -//_-_// * @brief -//_-_// * Full names of Gregorian calendar months. -//_-_// */ -//_-_// static constexpr inline const std::array& MONTH_NAMES -//= -//_-_// Months; -//_-_// -//_-_// /*! -//_-_// * @brief -//_-_// * Abbreviated names of Gregorian calendar months. -//_-_// */ -//_-_// static constexpr inline const std::array& -// MONTH_ABBREVS = -//_-_// MonthAbbrevs; -//_-_// -//_-_// /*! -//_-_// * @brief -//_-_// * Full names of Gregorian calendar days-of-week. -//_-_// */ -//_-_// static constexpr inline const std::array& -// DAY_OF_WEEK_NAMES = -//_-_// DaysOfWeek; -//_-_// -//_-_// /*! -//_-_// * @brief -//_-_// * Abbreviated names of Gregorian calendar days-of-week. -//_-_// */ -//_-_// static constexpr inline const std::array& -//_-_// DAY_OF_WEEK_ABBREVS = DayOfWeekAbbrevs; -//_-_// -//_-_// /*! -//_-_// * @brief -//_-_// * Evaluate support of year value. -//_-_// * -//_-_// * @details -//_-_// * This function returns true if the given year falls within -//_-_// * the inclusive bounds defined by `YEAR_MINIMUM` and -//_-_// * `YEAR_MAXIMUM` for the Gregorian calendar system. -//_-_// * -//_-_// * @return -//_-_// * True if supported year value -//_-_// */ -//_-_// [[nodiscard]] static constexpr bool isValidYear(const YearInt_t year) noexcept -//_-_// { -//_-_// return year >= YEAR_MINIMUM && year <= YEAR_MAXIMUM; -//_-_// } -//_-_// -//_-_// /*! -//_-_// * @brief -//_-_// * Determines whether a given year is a leap year. -//_-_// * -//_-_// * @details -//_-_// * This function checks if the specified year qualifies as a -//_-_// * leap year under Gregorian calendar rules. A year is -//_-_// * considered a leap year if it is divisible by 4, except for -//_-_// * years divisible by 100 unless it is also divisible by 400. -//_-_// * -//_-_// * @return -//_-_// * True if provided year is a leap year -//_-_// */ -//_-_// [[nodiscard]] static constexpr bool isLeapYear(const YearInt_t year) noexcept -//_-_// { -//_-_// return (year % 4) == 0 && (year % 100 != 0 || year % YEARS_IN_ERA == 0); -//_-_// } -//_-_// -//_-_// /*! -//_-_// * @brief -//_-_// * Determines whether a given date is within a leap year. -//_-_// * -//_-_// * @return -//_-_// * True if provided date is within a leap year -//_-_// */ -//_-_// [[nodiscard]] static constexpr bool isLeapYear(const Date& date) noexcept -//_-_// { -//_-_// return isLeapYear(date.year()); -//_-_// } -//_-_// -//_-_// /*! -//_-_// * @brief -//_-_// * Returns total number of days in a given calendar year. -//_-_// * -//_-_// * @details -//_-_// * Determines whether the specified year is a leap year and -//_-_// * returns `DAYS_IN_LEAP_YEAR` or `DAYS_IN_YEAR` accordingly. -//_-_// * If the year is unsupported the function returns 0. -//_-_// * -//_-_// * @return -//_-_// * Total days in year -//_-_// */ -//_-_// [[nodiscard]] static constexpr uint16_t getDaysInYear(const YearInt_t year) -// noexcept -//_-_// { -//_-_// if (!isValidYear(year)) -//_-_// return 0; // Unsupported year -//_-_// -//_-_// return isLeapYear(year) ? DAYS_IN_LEAP_YEAR : DAYS_IN_YEAR; -//_-_// } -//_-_// -//_-_// /*! -//_-_// * @brief -//_-_// * Returns total number of days in the year of a given date. -//_-_// * -//_-_// * @details -//_-_// * Extracts the year from the provided `Date` to determine -//_-_// * the total number of days in the year. -//_-_// * -//_-_// * @return -//_-_// * Total days in year -//_-_// */ -//_-_// [[nodiscard]] static constexpr uint16_t getDaysInYear(const Date date) noexcept -//_-_// { -//_-_// return getDaysInYear(date.year()); -//_-_// } -//_-_// -//_-_// /*! -//_-_// * @brief -//_-_// * Checks if a month value is within valid range. -//_-_// * -//_-_// * @details -//_-_// * This function returns true if the given month falls within -//_-_// * the inclusive bounds defined by `MIN_MONTH_OF_YEAR` and -//_-_// * `MAX_MONTH_OF_YEAR` for the Gregorian calendar system. -//_-_// * -//_-_// * @return -//_-_// * True if valid numerical month value -//_-_// */ -//_-_// [[nodiscard]] static constexpr bool isValidMonth(const uint8_t month) noexcept -//_-_// { -//_-_// return month >= MIN_MONTH_OF_YEAR && month <= MAX_MONTH_OF_YEAR; -//_-_// } -//_-_// -//_-_// /*! -//_-_// * @brief -//_-_// * Returns total number of days in a given month of a -//_-_// * specified year. -//_-_// * -//_-_// * @details -//_-_// * This function handles the varying lengths of months in -//_-_// * the Gregorian calendar, including the special case of -//_-_// * February during a leap year. The function first validates -//_-_// * the year and month; if either is invalid, it returns 0 to -//_-_// * indicate an unsupported or invalid date component. -//_-_// * -//_-_// * @return -//_-_// * Total days in month -//_-_// */ -//_-_// [[nodiscard]] static constexpr uint8_t getDaysInMonth( -//_-_// const YearInt_t year, const uint8_t month -//_-_// ) noexcept -//_-_// { -//_-_// if (!isValidYear(year) || !isValidMonth(month)) -//_-_// return 0; // Unsupported or invalid -//_-_// -//_-_// switch (month) { -//_-_// case February: -//_-_// switch (isLeapYear(year)) { -//_-_// case true: -//_-_// return 29; -//_-_// default: -//_-_// return 28; -//_-_// } -//_-_// -//_-_// case April: -//_-_// case June: -//_-_// case September: -//_-_// case November: -//_-_// return 30; -//_-_// -//_-_// // January, March, May, July, August, October, December -//_-_// default: -//_-_// return 31; -//_-_// } -//_-_// } -//_-_// -//_-_// /*! -//_-_// * @brief -//_-_// * Returns total number of days in the month of a specified -//_-_// * date. -//_-_// * -//_-_// * @details -//_-_// * Extracts the year and month from the provided `Date` to -//_-_// * determine the total number of days in the dates month. -//_-_// * -//_-_// * @return -//_-_// * Total days in month -//_-_// */ -//_-_// [[nodiscard]] static constexpr uint8_t getDaysInMonth(const Date date) noexcept -//_-_// { -//_-_// return getDaysInMonth(date.year(), date.month()); -//_-_// } -//_-_// -//_-_// /*! -//_-_// * @brief -//_-_// * Checks if a day value is within valid range. -//_-_// * -//_-_// * @details -//_-_// * This function returns true if the given day falls within -//_-_// * the inclusive bounds defined by `MIN_DAY_OF_MONTH` and -//_-_// * `MAX_DAY_OF_MONTH` for the Gregorian calendar system. -//_-_// * -//_-_// * @return -//_-_// * True if valid day value -//_-_// */ -//_-_// [[nodiscard]] static constexpr bool isValidDay(const uint8_t day) noexcept -//_-_// { -//_-_// return day >= MIN_DAY_OF_MONTH && day <= MAX_DAY_OF_MONTH; -//_-_// } -//_-_// -//_-_// /*! -//_-_// * @brief -//_-_// * Checks if a given year, month, and day combination form -//_-_// * a valid calendar date. -//_-_// * -//_-_// * @details -//_-_// * This function returns true when the provided date parameters -//_-_// * describe a real date on the Gregorian calendar. This is -//_-_// * achieved by comparing the dates day to the total number -//_-_// * of days in the month. If the provided year is not supported, -//_-_// * the function returns false. -//_-_// * -//_-_// * @return -//_-_// * True if date exists on calendar -//_-_// */ -//_-_// [[nodiscard]] static constexpr bool isValidDate( -//_-_// const YearInt_t year, const uint8_t month, const uint8_t day -//_-_// ) noexcept -//_-_// { -//_-_// if (!isValidYear(year)) -//_-_// return false; -//_-_// -//_-_// const uint8_t monthTotalDays = getDaysInMonth(year, month); -//_-_// return day <= monthTotalDays; -//_-_// } -//_-_// -//_-_// /*! -//_-_// * @brief -//_-_// * Checks if a given date is a valid calendar date. -//_-_// * -//_-_// * @details -//_-_// * Extracts components from the provided `Date` to determine -//_-_// * validity of the date. -//_-_// * -//_-_// * @return -//_-_// * True if date exists on calendar -//_-_// */ -//_-_// [[nodiscard]] static constexpr bool isValidDate(const Date date) noexcept -//_-_// { -//_-_// return isValidDate(date.year(), date.month(), date.day()); -//_-_// } -//_-_// -//_-_// /*! -//_-_// * @brief -//_-_// * Checks if a day-of-week index is within valid range. -//_-_// * -//_-_// * @details -//_-_// * Accepts a zero-based day-of-week index -//_-_// * (0 = Sunday ... 6 = Saturday). Returns true only if the -//_-_// * index is less than `DAYS_IN_WEEK`. -//_-_// * -//_-_// * @return -//_-_// * True if valid day-of-week index -//_-_// */ -//_-_// [[nodiscard]] static constexpr bool isValidDOWIndex(const uint8_t dow) noexcept -//_-_// { -//_-_// return dow < DAYS_IN_WEEK; -//_-_// } -//_-_// -//_-_// /*! -//_-_// * @brief -//_-_// * Calculates day-of-week index for a given calendar date. -//_-_// * -//_-_// * @details -//_-_// * Implements Tomohiko Sakamoto's algorithm to determine -//_-_// * the day of the week for the specified year, month, and -//_-_// * day combination. Returns a zero-based day-of-week index -//_-_// * (0 = Sunday ... 6 = Saturday), or `INVALID_DOW_INDEX` -//_-_// * if the provided date does not exist on the calendar. -//_-_// * -//_-_// * @return -//_-_// * Day-of-week index -//_-_// */ -//_-_// [[nodiscard]] static constexpr uint8_t getDayOfWeekIndex( -//_-_// YearInt_t year, uint8_t month, uint8_t day -//_-_// ) noexcept -//_-_// { -//_-_// if (!isValidDate(year, month, day)) -//_-_// return INVALID_DOW_INDEX; -//_-_// -//_-_// // CREDITS: Tomohiko Sakamoto -//_-_// // Day-of-week index algorithm -//_-_// year -= (month < March); // Extra days from leap year -//_-_// // only affect March and later -//_-_// const uint8_t monthIndex = month - 1; -//_-_// const int index = -//_-_// ((year + year / 4 - year / 100 + year / YEARS_IN_ERA + -//_-_// sakamoto::MONTH_KEY[monthIndex] + day) % -//_-_// DAYS_IN_WEEK); -//_-_// -//_-_// if (index >= DAYS_IN_WEEK) -//_-_// return INVALID_DOW_INDEX; -//_-_// -//_-_// return static_cast(index); -//_-_// } -//_-_// -//_-_// /*! -//_-_// * @brief -//_-_// * Calculates day-of-week index for a given calendar date. -//_-_// * -//_-_// * @details -//_-_// * Extracts the year, month, and day from the given `Date` -//_-_// * instance to compute the zero-based day-of-week index. -//_-_// * -//_-_// * @return -//_-_// * Day-of-week index -//_-_// */ -//_-_// [[nodiscard]] static constexpr uint8_t getDayOfWeekIndex(const Date date) noexcept -//_-_// { -//_-_// return getDayOfWeekIndex(date.year(), date.month(), date.day()); -//_-_// } -//_-_// -//_-_// /*! -//_-_// * @brief -//_-_// * Determines number of weeks a specified month spans -//_-_// * over the calendar. -//_-_// * -//_-_// * @details -//_-_// * Calculates how many full or partial weeks are needed to -//_-_// * contain all days of the specified month in a standard -//_-_// * calendar grid. The result depends on the day of the week -//_-_// * the month starts on and the total number of days in the -//_-_// * month. Returns 0 if the month is invalid or if the -//_-_// * provided year is unsupported. -//_-_// * -//_-_// * @return -//_-_// * Number of weeks month spans -//_-_// */ -//_-_// [[nodiscard]] static constexpr uint8_t getWeeksInMonth( -//_-_// const YearInt_t year, const uint8_t month -//_-_// ) noexcept -//_-_// { -//_-_// const uint8_t monthTotalDays = getDaysInMonth(year, month); -//_-_// -//_-_// if (monthTotalDays == 0) -//_-_// return 0; // Unsupported or invalid -//_-_// -//_-_// const uint8_t firstOfMonthDowIndex = getDayOfWeekIndex(year, month, 1); -//_-_// const uint8_t monthCells = firstOfMonthDowIndex + monthTotalDays; -//_-_// return (monthCells + 6) / DAYS_IN_WEEK; -//_-_// } -//_-_// -//_-_// /*! -//_-_// * @brief -//_-_// * Determines number of weeks a calendar dates month -//_-_// * spans over the calendar. -//_-_// * -//_-_// * @details -//_-_// * Extracts the year and month from the provided `Date` -//_-_// * instance to calculate the number of weeks a month -//_-_// * spans over the calendar. -//_-_// * -//_-_// * @return -//_-_// * Number of weeks month spans -//_-_// */ -//_-_// [[nodiscard]] static constexpr uint8_t getWeeksInMonth(const Date date) noexcept -//_-_// { -//_-_// return getWeeksInMonth(date.year(), date.month()); -//_-_// } -//_-_// -//_-_// /*! -//_-_// * @brief -//_-_// * Converts a calendar date to serial number of days since -//_-_// * Unix epoch. -//_-_// * -//_-_// * @details -//_-_// * Uses Howard Hinnant’s civil date algorithm to convert -//_-_// * a year, month, day combination into a signed day count -//_-_// * relative to the Unix epoch (1970-01-01 = day 0). The -//_-_// * result can be negative for dates before the epoch. -//_-_// * -//_-_// * @return -//_-_// * Days since January 1, 1970 -//_-_// */ -//_-_// [[nodiscard]] static constexpr int32_t toDaysSinceEpoch( -//_-_// YearInt_t year, uint8_t month, uint8_t day -//_-_// ) noexcept -//_-_// { -//_-_// // CREDITS: Howard Hinnant [Mr. Chrono] - (Ripple Labs) -//_-_// // Convert {year, month, day} triple into a serial count of days. -//_-_// year -= month <= February; -//_-_// const int era = year / YEARS_IN_ERA; -//_-_// const unsigned yoe = static_cast(year - era * YEARS_IN_ERA); -//_-_// const unsigned doy = (153 * (month + (month > February ? -3 : 9)) + 2) / 5 + -// day - 1; -//_-_// const unsigned doe = yoe * DAYS_IN_YEAR + yoe / 4 - yoe / 100 + doy; -//_-_// return static_cast(era * 146'097 + static_cast(doe) - 719'468); -//_-_// } -//_-_// -//_-_// /*! -//_-_// * @brief -//_-_// * Converts a calendar date to serial number of days since -//_-_// * Unix epoch. -//_-_// * -//_-_// * @details -//_-_// * Extracts the date components from the provided `Date` -//_-_// * instance to calculate a signed day count relative to -//_-_// * the Unix epoch (1970-01-01 = day 0). The result can be -//_-_// * negative for dates before the epoch. -//_-_// * -//_-_// * @return -//_-_// * Days since January 1, 1970 -//_-_// */ -//_-_// [[nodiscard]] static constexpr int32_t toDaysSinceEpoch(const Date date) noexcept -//_-_// { -//_-_// return toDaysSinceEpoch(date.year(), date.month(), date.day()); -//_-_// } -//_-_// -//_-_// /*! -//_-_// * @brief -//_-_// * Converts a serial count of days since Unix epoch to -//_-_// * a calendar date. -//_-_// * -//_-_// * @details -//_-_// * Uses Howard Hinnant’s civil date algorithm to convert -//_-_// * a signed day count relative to the Unix epoch -//_-_// * (1970-01-01 = day 0) into a year, month, day combination. -//_-_// * Returns a `GregorianDate` representing the calculated -//_-_// * civil date. -//_-_// * -//_-_// * @return -//_-_// * Gregorian calendar date -//_-_// */ -//_-_// [[nodiscard]] static constexpr Date fromDaysSinceEpoch(int32_t serial_days) -// noexcept -//_-_// { -//_-_// // CREDITS: Howard Hinnant [Mr. Chrono] - (Ripple Labs) -//_-_// // Convert a serial count of days into a {year, month, day} triple. -//_-_// serial_days += 719'468; -//_-_// const int era = (serial_days >= 0 ? serial_days : serial_days - 146'096) / -// 146'097; -//_-_// const unsigned doe = static_cast(serial_days - era * 146'097); -//_-_// const unsigned yoe = (doe - doe / 1'460 + doe / 36'524 - doe / 146'096) / -// DAYS_IN_YEAR; -//_-_// const YearInt_t y = static_cast(yoe) + era * YEARS_IN_ERA; -//_-_// const unsigned doy = doe - (DAYS_IN_YEAR * yoe + yoe / 4 - yoe / 100); -//_-_// const unsigned mp = (5 * doy + 2) / 153; -//_-_// const uint8_t d = static_cast(doy - (153 * mp + 2) / 5 + 1); -//_-_// const uint8_t m = static_cast(mp + (mp < 10 ? 3 : -9)); -//_-_// return Date{static_cast(y + (m <= 2)), m, d}; -//_-_// } -//_-_// -//_-_// /*! -//_-_// * @brief -//_-_// * Converts a calendar date to a Unix timestamp (seconds -//_-_// * since epoch). -//_-_// * -//_-_// * @details -//_-_// * Uses `toDaysSinceEpoch()` to calculate the number of -//_-_// * days since the Unix epoch (1970-01-01) and multiplies -//_-_// * by the number of seconds in a day to obtain the -//_-_// * equivalent timestamp in seconds. The returned value -//_-_// * is stored in `stl::UnixTimestamp` and may be negative -//_-_// * for dates before the epoch. -//_-_// * -//_-_// * @return -//_-_// * Unix timestamp -//_-_// */ -//_-_// [[nodiscard]] static constexpr stl::UnixTimestamp toUnixTimestamp( -//_-_// const YearInt_t year, const uint8_t month, const uint8_t day -//_-_// ) noexcept -//_-_// { -//_-_// return static_cast(toDaysSinceEpoch(year, month, day) * -// 86'400); -//_-_// } -//_-_// -//_-_// /*! -//_-_// * @brief -//_-_// * Converts a calendar date to a Unix timestamp (seconds -//_-_// * since epoch). -//_-_// * -//_-_// * @details -//_-_// * Extracts the date components from the provided `Date` -//_-_// * instance to calculate the corresponding Unix timestamp. -//_-_// * The returned value is stored in `stl::UnixTimestamp` -//_-_// * and may be negative for dates before the epoch. -//_-_// * -//_-_// * @return -//_-_// * Unix timestamp -//_-_// */ -//_-_// [[nodiscard]] static constexpr stl::UnixTimestamp toUnixTimestamp(const Date date) -// noexcept -//_-_// { -//_-_// return toUnixTimestamp(date.year(), date.month(), date.day()); -//_-_// } -//_-_// -//_-_// /*! -//_-_// * @brief -//_-_// * Converts a Unix timestamp (seconds since epoch) to a -//_-_// * calendar date. -//_-_// * -//_-_// * @details -//_-_// * Divides the given `stl::UnixTimestamp` by the number -//_-_// * of seconds in a day to convert seconds to whole days -//_-_// * since the Unix epoch (1970-01-01), then calls -//_-_// * `fromDaysSinceEpoch()` to obtain the corresponding -//_-_// * calendar date. -//_-_// * -//_-_// * @return -//_-_// * Gregorian calendar date -//_-_// */ -//_-_// [[nodiscard]] static constexpr Date fromUnixTimestamp(const stl::UnixTimestamp& -// timestamp -//_-_// ) noexcept -//_-_// { -//_-_// return fromDaysSinceEpoch(static_cast(timestamp / 86'400)); -//_-_// } -//_-_// -//_-_// /*! -//_-_// * @brief -//_-_// * Converts a system clock time point to a local calendar -//_-_// * date. -//_-_// * -//_-_// * @details -//_-_// * Interprets the given `stl::SystemTimePoint` as local -//_-_// * time by converting it to a Unix timestamp and then -//_-_// * populating a `std::tm` structure via -//_-_// * `stl::deriveLocalDateTimeFromTimestamp()`. The -//_-_// * resulting year, month, and day fields are used to -//_-_// * construct and return a `GregorianDate`. If the local -//_-_// * date conversion fails a default constructed Gregorian -//_-_// * date is returned. -//_-_// * -//_-_// * @return -//_-_// * Gregorian calendar date -//_-_// */ -//_-_// [[nodiscard]] static Date fromTimePoint(const stl::SystemTimePoint& time_point) -// noexcept -//_-_// { -//_-_// const stl::UnixTimestamp secsSinceEpoch = -// stl::SystemClock::to_time_t(time_point); -//_-_// stl::CalendarDateTime dateBuffer{}; -//_-_// -//_-_// if (!stl::deriveLocalDateTimeFromTimestamp(&secsSinceEpoch, &dateBuffer)) -//_-_// return Date{}; // Failed to interpret local date -//_-_// -//_-_// return Date{ -//_-_// static_cast( -//_-_// dateBuffer.tm_year + 1'900 -//_-_// ), // tm_year measures years since 1900 -//_-_// static_cast( -//_-_// dateBuffer.tm_mon + 1 -//_-_// ), // tm_mon measures months since January -//_-_// static_cast(dateBuffer.tm_mday) -//_-_// }; -//_-_// } -//_-_// -//_-_// /*! -//_-_// * @brief -//_-_// * Converts a system clock time point to a local calendar -//_-_// * date. -//_-_// * -//_-_// * @details -//_-_// * If `local` is true (time-zone), interprets the given -//_-_// * `stl::SystemTimePoint` as local time. If `local` is false -//_-_// * (no time-zone), interprets the time point as UTC. If the -//_-_// * local date conversion fails a default constructed Gregorian -//_-_// * date is returned. -//_-_// * -//_-_// * @return -//_-_// * Gregorian calendar date -//_-_// */ -//_-_// [[nodiscard]] static Date fromTimePoint( -//_-_// const stl::SystemTimePoint& time_point, const bool local -//_-_// ) noexcept -//_-_// { -//_-_// if (local) -//_-_// return fromTimePoint(time_point); -//_-_// -//_-_// const stl::UnixTimestamp secsSinceEpoch = -// stl::SystemClock::to_time_t(time_point); -//_-_// return fromUnixTimestamp(secsSinceEpoch); -//_-_// } -//_-_// -//_-_// private: -//_-_// GregorianCalendar() = delete; -//_-_// ~GregorianCalendar() = delete; -//_-_// }; -//_-_// -//_-_// SIMPLYDT_ENFORCE_CALENDAR_CONTRACT(GregorianCalendar); -//_-_// -//_-_// } // namespace simplydt::gregorian - -#endif // SIMPLYDT_LIB_GREGORIAN_CALENDAR_STRUCT_H_ From 4f2d0ece60eef3cd98b8ce66aea2bba16bc15a87 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 24 Sep 2025 23:19:09 -0400 Subject: [PATCH 367/400] Update date_validation.hpp --- include/simplydt/calendar/gregorian/date_validation.hpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/include/simplydt/calendar/gregorian/date_validation.hpp b/include/simplydt/calendar/gregorian/date_validation.hpp index 15eb869..03cb389 100644 --- a/include/simplydt/calendar/gregorian/date_validation.hpp +++ b/include/simplydt/calendar/gregorian/date_validation.hpp @@ -26,7 +26,12 @@ namespace simplydt::gregorian * Gregorian calendar date validation policy. * * @details - * TODO: INCOMPLETE COMMENT!!! + * This is the Gregorian calendar date validator, which is + * responsible for determining if a given set of date params + * describe a real date on the Gregorian calendar. This + * structure serves no purpose beyond validating potential + * Gregorian calendar dates and only maintains functions + * necessarry for validation. */ struct DateValidationPolicy { /*! From ea887c02823cc7b4dce87de45575ca14b92ec6c6 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 24 Sep 2025 23:26:21 -0400 Subject: [PATCH 368/400] Update date_api_contract.hpp --- .../simplydt/calendar/concepts/date_api_contract.hpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/include/simplydt/calendar/concepts/date_api_contract.hpp b/include/simplydt/calendar/concepts/date_api_contract.hpp index cd77f6f..049d067 100644 --- a/include/simplydt/calendar/concepts/date_api_contract.hpp +++ b/include/simplydt/calendar/concepts/date_api_contract.hpp @@ -26,7 +26,15 @@ namespace simplydt::concepts * considered a useable calendar date implementation. * * @details - * TODO: INCOMPLETE COMMENT!!! + * A valid date type must provide contextual nested + * types (for library internal-use), integer-based + * year representation, and component accessors for + * date parts. It must support logical and arithmetic + * operators, basic state and sequential evaluation + * methods, as well as stream output and string + * conversion utilities. In addition, it must satisfy + * fundamental C++ type requirements including default + * initialization, copyability, and destructibility. */ template concept contract_abiding_date = requires { From f54a7b28c46ee3d531adba237fcb3f10c145beb2 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Thu, 25 Sep 2025 01:35:15 -0400 Subject: [PATCH 369/400] Update helper_algorithms.hpp Documentation update --- .../calendar/gregorian/helper_algorithms.hpp | 127 +++++++++++++++--- 1 file changed, 105 insertions(+), 22 deletions(-) diff --git a/include/simplydt/calendar/gregorian/helper_algorithms.hpp b/include/simplydt/calendar/gregorian/helper_algorithms.hpp index ac61665..57b5a39 100644 --- a/include/simplydt/calendar/gregorian/helper_algorithms.hpp +++ b/include/simplydt/calendar/gregorian/helper_algorithms.hpp @@ -20,11 +20,51 @@ /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Algorithms from Howard Hinnant. + * + * @note + * https://howardhinnant.github.io/date_algorithms.html + * for more details. */ namespace simplydt::gregorian::hinnant { +/*! + * @brief + * Days from 1970-01-01 to 0000-03-01. + * + * @details + * This value shifts the epoch from 1970-01-01 + * to 0000-03-01 (March 1 of year 0) when + * converting to civil date components or + * vice-versa when calculating a serial count + * of days since the Unix epoch. This is crucial + * because it aligns the algorithm with all known + * implementations of `std::chrono::system_clock`, + * which count seconds from 1970-01-01, neglecting + * leap seconds. This value is what makes the + * serial date 0 equivalent to 1970-01-01 instead + * of 0000-03-01. + */ +constexpr int32_t EPOCH_SHIFT = 719'468; + +/*! + * @brief + * Total number of days in one Gregorian era. + * + * @details + * Represents the number of days in a 400-year + * Gregorian cycle. The patterns of the Gregorian + * calendar repeat themselves over an era, + * consequently the number of days in a single era + * are the same for all others. This value is + * calculated by multiplying the number of days in + * a year by the number of years in one era, which + * is then increased by an additional 97 days to + * account for leap days within the era. + */ +constexpr uint32_t DAYS_IN_ERA = YEARS_IN_ERA * DAYS_IN_YEAR + 97; + /*! * @brief * Converts a calendar date to serial number @@ -51,51 +91,75 @@ namespace simplydt::gregorian::hinnant const unsigned yoe = static_cast(year - era * YEARS_IN_ERA); const unsigned doy = (153 * (month + (month > February ? -3 : 9)) + 2) / 5 + day - 1; const unsigned doe = yoe * DAYS_IN_YEAR + yoe / 4 - yoe / 100 + doy; - return static_cast(era * 146'097 + static_cast(doe) - 719'468); + return static_cast(era * DAYS_IN_ERA + static_cast(doe) - EPOCH_SHIFT); } /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Calculates 400-year era index from serial + * number of days. * * @details - * TODO: INCOMPLETE COMMENT!!! + * Adjusts the input day count by the epoch + * shift to align with the March-based year + * system used in the algorithm. Then + * computes which 400-year Gregorian cycle + * (era) the date falls within. The + * calculation handles negative day counts + * (dates before the algorithm's epoch) by + * subtracting one less than a full era to + * ensure proper era boundary crossing. * * @return * Year era index */ [[nodiscard]] constexpr int eraFromSerialDays(int32_t serial_days) noexcept { - serial_days += 719'468; - return (serial_days >= 0 ? serial_days : serial_days - 146'096) / 146'097; + serial_days += EPOCH_SHIFT; + return (serial_days >= 0 ? serial_days : serial_days - 146'096) / DAYS_IN_ERA; } /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Calculates index of day within current + * 400-year era. * * @details - * TODO: INCOMPLETE COMMENT!!! + * First determines which 400-year era contains + * the specified date using `eraFromSerialDays()`, + * then calculates the relative day position + * within that era. The result represents the + * number of days elapsed since the start of the + * era (March 1st of the era's first year) to + * the specified date. The result can range from + * [0 - 146,096] inclusive. * * @return - * Day offset from start of era + * Day offset within current era [0 - 146,096] */ [[nodiscard]] constexpr unsigned dayOfEraFromSerialDays(int32_t serial_days) noexcept { const int era = eraFromSerialDays(serial_days); - serial_days += 719'468; - return static_cast(serial_days - era * 146'097); + serial_days += EPOCH_SHIFT; + return static_cast(serial_days - era * DAYS_IN_ERA); } /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Calculates year index within current 400-year + * era. * * @details - * TODO: INCOMPLETE COMMENT!!! + * Uses the day-of-era value to compute the year + * index within the 400-year Gregorian cycle. The + * calculation accounts for leap year patterns by + * subtracting/excluding partial periods. These + * complex adjustment handles the irregular leap + * year distribution across centuries. The result + * can range from [0 - 399] inclusive. * * @return - * Year offset in current era + * Year offset within current era [0 - 399] */ [[nodiscard]] constexpr unsigned yearOfEraFromSerialDays(int32_t serial_days) noexcept { @@ -105,13 +169,22 @@ namespace simplydt::gregorian::hinnant /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Calculates day index within current year. * * @details - * TODO: INCOMPLETE COMMENT!!! + * Computes the number of days that have elapsed + * since the start of the current year. First + * determines the year offset within the era, + * then subtracts the cumulative days from the + * beginning of the era up to the start of the + * current year. The calculation accounts for + * leap years by including the appropriate + * number of leap days accumulated up to the + * current year within the era. The result can + * range from [0 - 365] inclusive. * * @return - * Day offset in current year + * Day offset within current year [0 - 365] */ [[nodiscard]] constexpr unsigned dayOfYearFromSerialDays(int32_t serial_days) noexcept { @@ -121,10 +194,20 @@ namespace simplydt::gregorian::hinnant /*! * @brief - * TODO: INCOMPLETE COMMENT!!! + * Calculates month index within a March-based + * year system. * * @details - * TODO: INCOMPLETE COMMENT!!! + * Uses integer arithmetic to convert a day of + * year value into a month index where the year + * starts in March. This March-based numbering + * system simplifies leap day handling since + * February becomes the last month of the year + * (March = 0, April = 1, ..., February = 11). + * The formula employs a linear approximation + * that distributes days across months using + * fixed-point mathematics for efficient + * computation without branching. * * @return * March-based month index @@ -154,9 +237,9 @@ namespace simplydt::gregorian::hinnant { // CREDITS: Howard Hinnant [Mr. Chrono] - (Ripple Labs) // Convert a serial count of days into a {year, month, day} triple. - serial_days += 719'468; - const int era = (serial_days >= 0 ? serial_days : serial_days - 146'096) / 146'097; - const unsigned doe = static_cast(serial_days - era * 146'097); + serial_days += EPOCH_SHIFT; + const int era = (serial_days >= 0 ? serial_days : serial_days - 146'096) / DAYS_IN_ERA; + const unsigned doe = static_cast(serial_days - era * DAYS_IN_ERA); const unsigned yoe = (doe - doe / 1'460 + doe / 36'524 - doe / 146'096) / DAYS_IN_YEAR; const Year_Type y = static_cast(yoe) + era * YEARS_IN_ERA; const unsigned doy = doe - (DAYS_IN_YEAR * yoe + yoe / 4 - yoe / 100); From 7bd509abc8b226552349da46b98fe2fe0917cd3c Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Thu, 25 Sep 2025 01:39:39 -0400 Subject: [PATCH 370/400] Update stl_chrono_defs.hpp --- include/simplydt/common/stl_chrono_defs.hpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/include/simplydt/common/stl_chrono_defs.hpp b/include/simplydt/common/stl_chrono_defs.hpp index 983eb9b..2e7237f 100644 --- a/include/simplydt/common/stl_chrono_defs.hpp +++ b/include/simplydt/common/stl_chrono_defs.hpp @@ -88,7 +88,10 @@ using CalendarDateTime = std::tm; * Broken-down calendar date structure. * * @details - * TODO: INCOMPLETE COMMENT!!! + * A type alias for `std::chrono::year_month_day` + * that provides a structured representation of a + * calendar date with explicit year, month, and day + * fields. */ using CalendarDate = std::chrono::year_month_day; From 55ff5452d37da87e66fa9fe4e6f73ceb7fd04e80 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Thu, 25 Sep 2025 01:50:52 -0400 Subject: [PATCH 371/400] Update gregorian_defs.hpp --- include/simplydt/calendar/gregorian/gregorian_defs.hpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_defs.hpp b/include/simplydt/calendar/gregorian/gregorian_defs.hpp index 62f8ae3..02f45ea 100644 --- a/include/simplydt/calendar/gregorian/gregorian_defs.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_defs.hpp @@ -44,7 +44,12 @@ using Year_Type = uint16_t; * Gregorian calendar date values tuple. * * @details - * TODO: INCOMPLETE COMMENT!!! + * A specialized tuple type containing the three + * fundamental components of a Gregorian calendar + * date: year, month, and day. The tuple structure + * provides a lightweight container for date + * storage while maintaining clear separation of + * the individual components. */ using DateTuple = CalendarDateTuple; From 4f668761a5c9332bd49e1a566352806509a278af Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Thu, 25 Sep 2025 01:50:55 -0400 Subject: [PATCH 372/400] Update abstract_calendar.hpp --- include/simplydt/calendar/abstract_calendar.hpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/include/simplydt/calendar/abstract_calendar.hpp b/include/simplydt/calendar/abstract_calendar.hpp index 526e583..98b1633 100644 --- a/include/simplydt/calendar/abstract_calendar.hpp +++ b/include/simplydt/calendar/abstract_calendar.hpp @@ -73,7 +73,21 @@ struct CalendricalSystem { /*! @brief Enumeration of calendar days of week. */ using DayOfWeek = DOW_Enum; - /*! @brief TODO: INCOMPLETE COMMENT!!! */ + /*! + * @brief + * Tag indicating timepoint should be interpreted + * without local timezone conversion. + * + * @details + * When passed to date conversion functions, this + * tag specifies that the input timepoint should + * be treated as a raw UTC value rather than being + * adjusted for the system's local timezone. This + * bypasses the operating system's timezone + * database and provides direct calendar date + * conversion based solely on the universal time + * count since the epoch. + */ struct NonLocal { }; /*! From 56e83da3a4becb5cdf8b29066a81b6a1998ede3d Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Thu, 25 Sep 2025 02:13:38 -0400 Subject: [PATCH 373/400] Renamed Linux Docs Generation Script Renamed docs/ref/generate_docs.sh to docs/ref/generate_docs --- docs/ref/{generate_docs.sh => generate_docs} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/ref/{generate_docs.sh => generate_docs} (100%) mode change 100755 => 100644 diff --git a/docs/ref/generate_docs.sh b/docs/ref/generate_docs old mode 100755 new mode 100644 similarity index 100% rename from docs/ref/generate_docs.sh rename to docs/ref/generate_docs From 4e75649aaeeb8902e84cc40da4b6802b94865a5f Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Thu, 25 Sep 2025 02:13:51 -0400 Subject: [PATCH 374/400] Update gregorian_calendar.hpp Documentation update --- .../calendar/gregorian/gregorian_calendar.hpp | 46 +++++++++---------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp index 3c831a8..1f44974 100644 --- a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp @@ -264,8 +264,8 @@ struct GregorianCalendar : const DateTuple dateComponents = hinnant::fromDaysSinceEpoch(date.underlying()); return DatePolicy::getDaysInMonth( - std::get<0>(dateComponents), ///< Year - std::get<1>(dateComponents) ///< Month + std::get<0>(dateComponents), // Year + std::get<1>(dateComponents) // Month ); } @@ -383,9 +383,9 @@ struct GregorianCalendar : const DateTuple dateComponents = hinnant::fromDaysSinceEpoch(date.underlying()); return getDayOfWeekIndex( - std::get<0>(dateComponents), ///< Year - std::get<1>(dateComponents), ///< Month - std::get<2>(dateComponents) ///< Day + std::get<0>(dateComponents), // Year + std::get<1>(dateComponents), // Month + std::get<2>(dateComponents) // Day ); } @@ -437,8 +437,8 @@ struct GregorianCalendar : const DateTuple dateComponents = hinnant::fromDaysSinceEpoch(date.underlying()); return getWeeksInMonth( - std::get<0>(dateComponents), ///< Year - std::get<1>(dateComponents) ///< Month + std::get<0>(dateComponents), // Year + std::get<1>(dateComponents) // Month ); } @@ -493,8 +493,8 @@ struct GregorianCalendar : const DateTuple dateComponents = hinnant::fromDaysSinceEpoch(date.underlying()); return getWeeksMonthSpans( - std::get<0>(dateComponents), ///< Year - std::get<1>(dateComponents) ///< Month + std::get<0>(dateComponents), // Year + std::get<1>(dateComponents) // Month ); } @@ -507,11 +507,11 @@ struct GregorianCalendar : * This function calculates which week of the year * [0–52] the given Gregorian calendar date falls * into. Weeks are defined relative to Sundays, - * with week 0 beginning on the first Sunday before, - * on, or after January 1 of the given year. The - * weeks are calendar aligned. Consequently, the week - * index can range from [0-52] (inclusive) because - * the potential partial week(s) at the beginning and + * with week 0 beginning on the first Sunday before + * or on January 1 of the given year. The weeks are + * calendar aligned. Consequently, the week index + * can range from [0-52] (inclusive) because the + * potential partial week(s) at the beginning and * end of the year are taken into account. The index * is obtained by computing the difference in days * between the target date and that first Sunday, @@ -555,9 +555,9 @@ struct GregorianCalendar : const DateTuple dateComponents = hinnant::fromDaysSinceEpoch(date.underlying()); return getWeekIndex( - std::get<0>(dateComponents), ///< Year - std::get<1>(dateComponents), ///< Month - std::get<2>(dateComponents) ///< Day + std::get<0>(dateComponents), // Year + std::get<1>(dateComponents), // Month + std::get<2>(dateComponents) // Day ); } @@ -625,9 +625,9 @@ struct GregorianCalendar : DateTuple dateComponents = hinnant::fromDaysSinceEpoch(serial_days.count()); return Date{ - std::get<0>(dateComponents), ///< Year - std::get<1>(dateComponents), ///< Month - std::get<2>(dateComponents) ///< Day + std::get<0>(dateComponents), // Year + std::get<1>(dateComponents), // Month + std::get<2>(dateComponents) // Day }; } @@ -675,9 +675,9 @@ struct GregorianCalendar : const DateTuple dateComponents = hinnant::fromDaysSinceEpoch(date.underlying()); return toUnixTimestamp( - std::get<0>(dateComponents), ///< Year - std::get<1>(dateComponents), ///< Month - std::get<2>(dateComponents) ///< Day + std::get<0>(dateComponents), // Year + std::get<1>(dateComponents), // Month + std::get<2>(dateComponents) // Day ); } From d6374ed3568cfbdcf9ccd4cbb590704b62f8c5bb Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Thu, 25 Sep 2025 02:29:40 -0400 Subject: [PATCH 375/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index f1f1ced..fdb80a7 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -160,7 +160,7 @@ int main(int argc, char* argv[]) // Console calendar test: { constexpr Date::YearInt_t year = 2025; - constexpr uint8_t month = simplydt::gregorian::October; + constexpr uint8_t month = simplydt::gregorian::September; std::cout << "\n\n\t[ ~ " << Calendar::getMonthName(month) @@ -173,6 +173,7 @@ int main(int argc, char* argv[]) std::cout << std::endl; Calendar::WeekDates week = Calendar::getWeek(Date{year, month, 1}); + const Date today = Calendar::getDate(SystemClock::now()); while (true) { for (const Date date : week) { @@ -181,7 +182,10 @@ int main(int argc, char* argv[]) continue; } - std::cout << " " << simplydt::toDoubleDigitStr(date.day()) << " |"; + if (date == today) + std::cout << ">_" << simplydt::toDoubleDigitStr(date.day()) << "_|"; + else + std::cout << "__" << simplydt::toDoubleDigitStr(date.day()) << "_|"; } std::cout << std::endl; From 16cc2b52c0433a3355b6fb4b18b72a70fb452c2e Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Thu, 25 Sep 2025 02:31:42 -0400 Subject: [PATCH 376/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index fdb80a7..a288560 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -183,9 +183,11 @@ int main(int argc, char* argv[]) } if (date == today) - std::cout << ">_" << simplydt::toDoubleDigitStr(date.day()) << "_|"; + std::cout << ">_"; else - std::cout << "__" << simplydt::toDoubleDigitStr(date.day()) << "_|"; + std::cout << "__"; + + std::cout << simplydt::toDoubleDigitStr(date.day()) << "_|"; } std::cout << std::endl; From 9eb4de43544a06b5e3ff5908483de2ed2c2cff27 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Thu, 25 Sep 2025 02:51:15 -0400 Subject: [PATCH 377/400] Removed Deprecated Calendar Traits Directory Removed calendar type traits directory; removed calendar type trait header dependencies. --- .../calendar/concepts/calendar_concepts.hpp | 1 - .../calendar/concepts/date_concepts.hpp | 1 - .../calendar/type_traits/calendar_traits.hpp | 33 --------------- .../calendar/type_traits/date_traits.hpp | 42 ------------------- 4 files changed, 77 deletions(-) delete mode 100644 include/simplydt/calendar/type_traits/calendar_traits.hpp delete mode 100644 include/simplydt/calendar/type_traits/date_traits.hpp diff --git a/include/simplydt/calendar/concepts/calendar_concepts.hpp b/include/simplydt/calendar/concepts/calendar_concepts.hpp index 75f3319..e4374ff 100644 --- a/include/simplydt/calendar/concepts/calendar_concepts.hpp +++ b/include/simplydt/calendar/concepts/calendar_concepts.hpp @@ -16,7 +16,6 @@ #define SIMPLYDT_LIB_CALENDAR_CONCEPTS_H_ #include "simplydt/calendar/concepts/date_concepts.hpp" -#include "simplydt/calendar/type_traits/calendar_traits.hpp" #include "simplydt/common/calendar_defs.hpp" #include "simplydt/common/stl_chrono_defs.hpp" #include diff --git a/include/simplydt/calendar/concepts/date_concepts.hpp b/include/simplydt/calendar/concepts/date_concepts.hpp index 32227ee..ea281e6 100644 --- a/include/simplydt/calendar/concepts/date_concepts.hpp +++ b/include/simplydt/calendar/concepts/date_concepts.hpp @@ -15,7 +15,6 @@ #ifndef SIMPLYDT_LIB_CALENDAR_DATE_CONCEPTS_H_ #define SIMPLYDT_LIB_CALENDAR_DATE_CONCEPTS_H_ -#include "simplydt/calendar/type_traits/date_traits.hpp" #include "simplydt/time/units/time_units.hpp" #include #include diff --git a/include/simplydt/calendar/type_traits/calendar_traits.hpp b/include/simplydt/calendar/type_traits/calendar_traits.hpp deleted file mode 100644 index 26241a6..0000000 --- a/include/simplydt/calendar/type_traits/calendar_traits.hpp +++ /dev/null @@ -1,33 +0,0 @@ - -// Copyright (C) 2026 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. -// Released under the terms of the GNU Affero General Public License version 3. - -// [ISJTB-CXX-XL20230401-000001] - -/*! - * @file calendar_traits.hpp - * - * @brief - * Agnostic calendar type traits. - */ - - -#ifndef SIMPLYDT_LIB_CALENDAR_TYPE_TRAITS_H_ -#define SIMPLYDT_LIB_CALENDAR_TYPE_TRAITS_H_ - -#include - -/*! - * @namespace simplydt::type_traits::calendar - * - * @brief - * Calendar type traits. - */ -namespace simplydt::type_traits::calendar -{ - -//... - -} - -#endif // SIMPLYDT_LIB_CALENDAR_TYPE_TRAITS_H_ diff --git a/include/simplydt/calendar/type_traits/date_traits.hpp b/include/simplydt/calendar/type_traits/date_traits.hpp deleted file mode 100644 index 50befcb..0000000 --- a/include/simplydt/calendar/type_traits/date_traits.hpp +++ /dev/null @@ -1,42 +0,0 @@ - -// Copyright (C) 2026 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. -// Released under the terms of the GNU Affero General Public License version 3. - -// [ISJTB-CXX-XL20230401-000001] - -/*! - * @file date_traits.hpp - * - * @brief - * Agnostic calendar date type traits. - */ - - -#ifndef SIMPLYDT_LIB_CALENDAR_DATE_TYPE_TRAITS_H_ -#define SIMPLYDT_LIB_CALENDAR_DATE_TYPE_TRAITS_H_ - -#include - -/*! - * @namespace simplydt::type_traits - * - * @brief - * Simply Datetime library type traits. - */ -namespace simplydt::type_traits -{ } - -/*! - * @namespace simplydt::type_traits::date - * - * @brief - * Calendar date type traits. - */ -namespace simplydt::type_traits::date -{ - -//... - -} - -#endif // SIMPLYDT_LIB_CALENDAR_DATE_TYPE_TRAITS_H_ From 25c7de55180830c12a90ccffcc8bb2743c2603f2 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Thu, 25 Sep 2025 11:34:51 -0400 Subject: [PATCH 378/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index a288560..8607e9e 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -24,7 +24,8 @@ #include "simplydt/calendar/gregorian/gregorian_calendar.hpp" #include "simplydt/time/utc/utc_time.hpp" -struct ICanWat { +/* @brief Dummy structure. */ +struct Object { bool testing = true; }; @@ -32,8 +33,8 @@ int main(int argc, char* argv[]) { ProjectInfoOut(); - bool ICanWat::* frtho = nullptr; - bool* known = nullptr; + bool Object::* frtho = nullptr; // Member pointer + bool* known = nullptr; // Raw pointer //\\// using Calendar = simplydt::gregorian::GregorianCalendar; @@ -44,8 +45,8 @@ int main(int argc, char* argv[]) using SystemClock = simplydt::stl::SystemClock; using UnixTimestamp = simplydt::stl::UnixTimestamp; - constexpr Date todayDate{2'025, 9, 7}; - constexpr Date pastDate{2'025, 8, 23}; + constexpr Date todayDate{2'025, 9, 25}; + constexpr Date pastDate{2'025, 9, 7}; constexpr Time rightNow{1, 54, 19}; constexpr Time secondsAgo{1, 53, 48}; @@ -154,7 +155,7 @@ int main(int argc, char* argv[]) constexpr Date lst = Calendar::getLastDate(nxt, simplydt::gregorian::SUNDAY); constexpr Date n = Calendar::getNextDate(jtb); constexpr Date l = Calendar::getLastDate(jtb); - constexpr uint8_t dow = Calendar::getDayOfWeekIndex(jtb); + constexpr uint8_t dow = Calendar::getDayOfWeekIndex(jtb); } // Console calendar test: From 0633d324b122d72a1a4f81a44e260cc2af5a97db Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Thu, 25 Sep 2025 11:56:42 -0400 Subject: [PATCH 379/400] Delete Class_Diagram_Sample.pdf --- docs/prj/Class_Diagram_Sample.pdf | Bin 361429 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 docs/prj/Class_Diagram_Sample.pdf diff --git a/docs/prj/Class_Diagram_Sample.pdf b/docs/prj/Class_Diagram_Sample.pdf deleted file mode 100644 index ec0d89fe0826a2a809aba026257b7bc0c0ac8ee0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 361429 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

    @!NF))gNAeHI&!p#YbN#squQbSf-p4lw z+SdZy9CW@`D|gfHAo_eoxEQFPHoGQO5bWml&q1iGtjXDaTKce~9m=X&(g`@Oj1${> zvEG(2BnUTlhWpM0>ddFrVI7)xCc`8iL_9WevVdxcX zr@^qDp|S;Rr=hT&Ilqx+%Wt$u`drw~knN~|?QH3eULx}Kl)A-Bsv`HG9+<%hy^t}V zU~885)E23hbSCl-=Q|v&^}<3uGvDga!_pXq=)!oVw`0{eouj_eoYxW0xJqgB(aun< z#BYUS2q^U4kX-`B!Pk+;YusZ*``R4cX zS({kV5{dVc@6)(QrF~MP)6QG*{kPSKlp}hg)`V$WaGl@Kz^+TCb%jWB_6n= zDIFy)Dxz-WZtHMPcDGa@l%Qo6_M(%yHd}NoM@IEpW3v_7h)S!6kyhZ8{P(^y5@O1d zLF+6T&G~XxMAz1C20@kY4v52LKm#;ZGXI}#JIGU?F@j)kRnQE(?odS?YU%Q5gVN^YhYEl2lC zEw^YT&7tMYOg7pYHWn>66ONMpL+H7d3J~O#dI$$(A3_^rBf8ywxls+1U%OHb_5mOv zZ|;?p@~;8NmfPAVZ-U9A^w$?CSJ|dQ5jI3nmV)pN?W7vauNIYH+?pi;>Fjn0P8fJ|jI=Fk2kO;Z%6s*;T^8SRrOm0p z-e_%BaUl#yeanol?=Zp3h6~M@34WEscc@wKdG#A@50?VtMT^E1DpIJmUJW$%dOJxr zTA!txl!tUgTzAyL*tnBZMme24yG4z#k)3a9f0{nDSp;vlA3QbIIotdP5A|x#hr1XO zz5MjNA$_YEq!H7>Ryl3pxS8*BsT8)tIQgDGrTNb6O!48k)R1~iDN)FHau2j1P)eIZ z>U9{qE4?W)OiX}zzkNLHrIe%m8j@}=k99=5o$Tj5k8p770r=iS0SoXtV z+i>m#maGwJomQ>9`2cnXU0~NB3|u}RoWJq$d{80^7nYTbpjFLJ5wz0$9C4*Cew~+O zmNh>+lTR?^QlBQW{>+O0y7{I+*k2LzNo!U}>G*ao@ljSMq3m4SgtBq@>5P-3nEZ(O z5V-8AcFnfGxaL$1hGW+pKyKx|m%(@AQ|8R3MHT6;A| zVoazPw~-e;$Es>tv_(CxJyb1*xYt0g-)R^~gHkACbr^w=jtjJ*8!aRdkA+<1utl#1 z3z_UrQOk1{vX;kVA#*Z2KCww37>$upjy`~l^b2HU!3YBZ4S^Qg65I)k z6ca2`Lt&9(hDB-^EK+TCeJw09Gb~bfz#^YvQPs^aVbOdRvDc9UJuU{O)NZ(6@sCtd za6m=D3l-(Ug*rp{m~@plITrR79p!mclpm>~JgK^&QbQ81oku`y?!dz-pH|(^ui&tB84f?`$!89NlcoV} zil^SI`X?$V>Q_+oLP2>;!WdMK5D`9c2HdEikViq`NCkzw3JOOlD6C-1x9E2ZM6Brs zwx&oy=JseJF4AJ;Y{oBm0~~fTMedYyZg0!^JI-d=1{+#D&HPK0qdjn zDkxzalduX&*hD030usvjgLOEpqBdS0xUb^EFj7cNaTz zSGbFrn6?14*czG!s{wHU>FiaKBL zILCU5^F^l1IZsjPZP9Q0-LcgaHK$l(TcOSP2CoFhi`?Z3okF($Qs1$EKk_7GO|@&y z+vyBH5wu}oZx}w%@zWow@gh(|1s-7w55V9su+GAL$n8A$YCvxM%&QA>W8gBKk=r2N z)r8y_YC0n~e$Leexp6SAF39a1-|B+gnry2VBe(N(sta-(Or|;`xAmOnJr8*w;Hl)r zqkVjrFl2@%$ixm45=m}4;t=E`+K4%W_(&y4HilglwG*XqZoCIJfu)nQs-P1{x|~*3 zdA}|C6y8&wgq@-p_||nB8rj73OT2h5VZA{*tx=Pr}Ih9&8+M~u2U`pd|*UErBt0)THxrp02 zMP=Rj;0>8HaxkOxj=UjRHU ztKGVA*;}3^>$PVm(pE zoatIO5v5{ts`hyJtgZx|I@N^)qFQsF0|$mH^qaN74Fu7Mm;|?D-L_A5aZ0CE^z2nY z5ZtEZDje2Pm}hC$rHAJjjnb|BqT{ncc}Z2)yyl-1ft53FbN#5dmea|wUN^lY1)cND zrcl_4x;~Sx{dAq{PYK*LXCI0U`+5D~1+AabQ^QQ4GDIWPokzZKK10F;4fRN9s5zmb z9t#b->dFEQtE2&Apdm+wiUJy*%TQ53L;Xq6ux~ZJfQI@iXt-Vycbyu8PIN>|eJ(sV z&Q7q_JnzAk+E;?k;7V;W>>HCCWQpc0dY$_K86qfqf5|sdrF0pH>8o+2@>rF98d<84 zM9{4|<{YrJn4(~l|53rrcV&Ve)me4=p1!;R<3 zV0l2L9SJHeC#bYzL1kB6SwN+|22@&JP+8UbD5$ib1SA2|9Kz|j~ZH0dxe ztQFp9r*FJFELo7_B4)(xVabRb3t>a<4>Qztxj?+CEB6gz$qEI_x}Ji9i=dZKa78a7 zC2~8dv~eOPp6y#DO+*+thSsvi0K$pqVm))%51#|tiLS$?pfShK`Fcrfw)Rvw-!EC@ zuv{={&3e8YCPn9tx?<9?Y@gpTDLVG@OD1(AW~_Jo=5M}nQkb^g8GaHInS7SK*N_iH zMoM)fqxCBdWMoMRCj*93Ux9 zKxEXnN}eMlyaE}mXU-jNGKndJP0?U>KUp}PSTB@gQF~@1=2Xm{%DgU(CBYK2m(e1Q z0#2Bt0y|c9J7iC1QWv}$I8E-SP1$U~3BhD&iNk@D%Pz0IhI}G$>SwZ5FPLnVLoa}o zdjLr#v<2htJB(C@2RNCLz{zj|Co>i}G1PSdPG%%p#^5P6n-SB*R1MN)Co}qYO_)H^?o3U&*O z@0+E32#ra-m2(D;Nk}~Kt%b$_$CS5XEuI;TDPz(pdxxrMsW4@Nv0Sg2%iLJnRb`(e zOVK$bfKdT7;TPmwm}>=a`Z_JRe8^u2zU)3NEHsuo1M-QevOj@~dXd0Ic}0R`Ag#xc zy+@+I(;eq|P^BMll7g}q@uz2fmCcz!%u1ohHI~IM@Tc=zKdM~>6 zGH)GLWuGHk0lBdNW6+^X39{Df_&nDNkywxDbxbQHE8YL`$PoLpU*L=M7bpRQqj33w zf(zDYP4^)~8QQ(t`c+tiH2CLn9I1e zf zqORlTT&n;wDI#@mbUqQ8_UHD%7s)+P269mEgU>QtA@}CalW^q8?|~x|d?06r4;-7~ zqpz+k$h1Y7J^-2WCIzW$eH58C(}H|7GG$02vLMsJSwt3ON=;;XsjCxGynE4Tc2}oy zDbT$&;d^QuC|);$PPsavxn?+=oMcn-1ss+yM46N?wqxD5y_`yTTF-&YyqwZjWuL#e zE447wrR<{fPvJ|KqeselcNSj;N9jgye;&eA3WW1pBme0LvpaQ>o;lG(5M z$4T;``;&a=7fC))St*lx9@>b_tfg;dS(8kqgmGXr%#}&&RP(I%{y=M{I_nR{v zUcGpti+-Q<<|1eun55Tgt;Mc=0`@yYS2FHf%nf!)<_p%>FG z2M8*|+lC4!V-u8#{2qI4_{69Tz zwk|uFr0&WHG|^7tTK9Hj1Tu08AyIV8Actdg+^mrsH#elx<+i;+zI}5eeY#gx^cUym zW&(6_qqL4}ZorvJ(230rI85ICmhocP-GKF#b>!aN=)@?}VSk&O8%>D=L|>lc2~bvL z^KEWa+&wI!hiq*mBm$DXCVb-Frau{yevu3bwMIdnf)*exJi0rxuWO!cNP1*8B+Z!( zNsrBjq&boX8Sq}y@}!q|0}O}O((x1Hke-_D%F1pf6DJRSo>AY8M5+4%bj z*IH@-g?|h>>CmWc3V%#=VfylHP2r;Gwro}kf4wobBS2t?Nr9$i`&$O;EkY7^yCThKMbsvvQ2{8|_qxX9%YiKLyOjJrBG&HWcCV0Y9 z$cuGtxmiGzO-DZ+Hn7PAqI9BTr0er;Nne%C2iil3+H@ei2p{6Pbu!((-fP4M!glJ< zxkWE>ZsCNcJgNs6u)@gYI^zwVTjI&NMI&==5ogXV8k=*AqpovU3XROUMZ7t;h%4t7 zwR3Jk(fA=-4(TQ})43p;dk(2LqQ=}wv?X*rgVRiZ(z>g zV3QBATUoF^-&sr>op*t&m~#BhxfFjYAcT#eQ?6nsHVT{7PppNP>#k<^6X)C99g4i^ zDE2a?n4!xP{DGyaY(AW9q0;GNT*XGTX41!EWYeD(&%8>D=PU`-GPsE;ZyRoN6C0ki zcxGf;Jj0n5&x}or$5GcABd_bqjFAm*o;$;p=gzeA++Bx}JD0?BjBEy{t(!5jX{W8b z1tS-Y{#cC6H!vI+xn4bY`-)BC_*iOop}Uw8M@LIX^#EalO3*2nu}itGTgr~bWvmk& zh#8h)5HJ#lcj)W3%Q*9bn9Gw4g4b2qd{EfK#*mM380YYty(SC>!*cr7zyIwKKa|i{ zs)%E)eEeQK5(;|!R(uh{J|15|A_^BCL(`;I`QiJQ01YWW{x%_Gz5F!8FQPQ`pL z;Is|z{`1S9{-!^-dcUr}_Q9 zCO{z?id;4-F$6hON%Em=o4C~xw!_h72>4I(1EAsGI1**tMpx7EK22dDo%tv-# zvreAlicvhU3qB5Bw6`%nsc!MdI`V9Pni2aV&4>on0-doBqd-_t`o0WrmM6)Gg~964 za-_sq)T2F@5+kd}MT~(@QIP?6PAak-+6z@=P-|t+oKcbCuEC@tTjRx|B2`k67CuEq z%BUji7W1pfmKqV{m3jyVWFJBsVF^rWRL93hvQg_^GDW^_H(Ln8R_zDmE% zGQtRk-pJE=d&n@i!tG#~{Orn+f8I*v<+E0rb!mBQ*ZsLH;HjprpifCks8k5^c)T%J zS_`-Ctv6e0%kczt+>f#AC^GW#RZsq?>62HF-=M|L@EKlH+^@yc@9{ICnuLUpI=l&bx5k7qXqT`3(zEJ#= zi9a>*d3w8ooh15hB<$}X8Fb%fpqF!Nrk}9@r{+uh}s!AYIa)}nzfF)#rjC2p- zwSUBqlNH*0m!;QkQB*mVL2o0&fu34vjyLvuo6;4zx^#J{ZSNuQx&s2g^mG*6m^u-F z@ARCa#)O{JNt?{#l+^bIMug78S0rMM4g(Vd)Yg;o+8%=tA#sQw)xa+>@ zS}h=LVoEJaSdJOTy4Yu}`=@%!vNveGEwP(7?M!dmO;f#L3rb%Bt4avp_k@^#Lm z$-ZftvFbtRQHXgf#3;YsPesVm?>Hih>4H;P$HR^zGQJ_M*Pt}E`(!AEsuhCMWVb>o zZKT(o>h_fXAp|qUQ?W)%?>%3hfD6nJM#baN>2rvGe$aHTskMAev7*zb36#xG6D*s5 zm6qG|Zu+d!S!jHM8Vg=t{IA7R!iHZF(}{I_Qqwtel8kBsi6(#k{zcE9fBQo7Z_NCr znI(Ro+qf;a{Qin_-%uZy)|+ad`#!Y;P-8+=Ip=yQ5(@Kd*Sn{*3Mu4)*8#NWRX8Cz z+-?HjKllw|*`!(=i%l|lgRux+I~`A*Bs^QUwI7!-v*ebw={zVoZVr`;F&d3NE}(7m&3q@P zoJ#Ll_7l6sM*nH@DfFV;KEDexKX8Ew}vs z5{IQW`3wvt??n|vH}5Otdlyxr<5CJ~g5sO?m`XpQG9;A>G;!3SsUQ(?6g9lur>Wl0 zIoJ4ojRKSl*Q|g-8WJPONwT+)ElemtSr!zqh~bRVo=kUC`9(cXAOUKKI}oK!Mok*O z5JNlRR@-e&_}%gQz9e%7_?;FU_PP0-`Mn&<%dyO@1{G)ht{01@Xt8L)TIj-_l-6aj zXwmMd`Q7wcuPhqY2KDmde=VMpLDi|~_>kV8cyDq#g^)5O5;l=i~2sdZChUX z{WXSE3gyi-!!^^%A3|azC`C4RLHxHoCkm{Hq?f|4w~g3o8}Yeq)MN!2PwoLW;0$@E zqfY^kZG?e4WU9c4;nxC=m!j-N1g;2;MUeCXH#y2w~m4&AI0&#Mzi z`No@;qNAEXTQMi7raHNyidl^_gEv zXsQ9@LupFMys;{Jo|h2Rc_FuY^9UiRn|D}6*Iq;jYGqwE8zHE%Q_`_=1V(I#J`JNm z=Y>aje&I31UkPPwz-Ss#pjYJX^ELy|mB&TQ2#iLTW3<*?!66v!qNWuXZKrA67>(hY zYKhUB*Hn*Sv{_K;^(sR~Zo_JZW_Z=NC|g*~KrL(tRzo#oHTop1X8nxS=oYL7euh|$ zwb0QLpjyxgtOhfgNNZ6sU^O{A!Hb^f#cI}OtoFWMXfj6PjF;$YtVXUbn+>al!~tv3 z{~B0LcVadD9IFL3aRVmAL1-nUvZ!x_YKjM{sgY1kT@KaMRZ#7srWH_ar)k_!P4Pmt zs@6xLn%dg!Eta?ssx6?WZ&9|O8o6575U3XTv(=_+KLV7PYbY`gY%ZZh#zZ zu#$CKsFy~aNfcYN5=BS@9O{|_8q@U?Bb?I{2RjQHOe@&Zl5l!GX{5iXThQ2y4|fPZ zIvQfM&>KxN-|&|_nMzTE*j@D)R?DrFgH&4C`3 zto#hA{l#!iIjD-}LTdpfB}BfcvAh9Q^P2xL5Lzdj&I>Xf=e$7B0iOjrYk%hz8y+g1 zkxV+~YIxS-M&XBN9Q;5FJZsVe^}{oB2|Sxi=_addA(#*g9N|>oTy8-#D=S&|K{E{* znmr>MYJxf^bUYMV7UpHR&8ZBX%=Ng3 z&-m4z!#2DVw&9JiZKul)!8W`Awl&njA=rkju&tq1SYaEEg>CO^#pkdM?}Kf-^Y}b$ z!yg{DsotBQ&tRJhA0&ijygd!Q;~pqW*xJCLwW~wcuE1=pkc|hiT>{t^HyisYDB~gM z{fKQj1MLNDkoEobcr6@{rUos6by z6620WdvxL6vFLj7TzM+GE}8XEbS3#m1!;XDYtIAL6lf>V0DJ;OQ=S2$%|iGg+ETx3 zAlg#iK!~;!!T`~#8Xtmavy_n#Z7w7vjpv1Eee?J!M4Lr@07Pp|$G0HbvLvsEXiKFp zhiE(fbp)a7;6iiNo;E+>^V&Z+}(?Ueni7IWG+|);M_MGBOp#mYv!^0^lFtF0zmT=N>04FyNIJt{~le+>qIZohI)%Xx_a#sMS zrK&$Ofv4HC)tJZoFX8s3`tmq{jE(-_3}`+ds8v=(#R4(p&i)}6p;hBf+h=hBTa z!#WURZ5I0hGpr>gMl*M@Ax1B^C3Bf#bSAm4X3@&7^FQu;B|93`az?3?hjOP;A7-GT zk18IXGsP<{t2?6T4k)pAEqJl8(ajoTExl?J;3Ej1%O%yD$6)Gz$XL0}+_M8iDCc5SV5~U{#%u zAuxRj0@H&KSl?WJj==OMA+XkrWap|nhsNe}@@8eb@8(5X)M7qz$KX(Q{j?Th4|1eR z&Iu$&O0*X<0}Rt%0GXAtV7|`=IUuP+9ks5sL5@W#HN`bB%=@ZnHW=njih(N3<%N5w zR+RuU>fCAWry()Zhs4ZtBt|X(Df4iWgjeY9JFEiBg2U`U9A>Y^VfGRnW?6AqRp({`2WU@@#@zjJEktG9ZNtxSeVjiKx~w+gm*Bj?P)l}}lCT2q4I=t|Fc%Z{<; z8noz|(5-_jfQ&ip#g-g{wcQlWc68;H*ev%u{V9k>#3aglP5m@0?)$8`e{RK%30VYm z@TUL@FTt7nu2V^t`&4qA9WQEl+~65sOFLrljLFxo~|Q}UC} zfp0h;NMa@HKIem_d}pf~;mh1r^~yRD`Uk2$@h3 zUV)0RL`592s|6}52L9l--1|z_iEX*hIp$hJ#IP;**#S}v9q+c>z@(izrdVrZ9x~6x z3+8yStqUQ&+oHK_oz^mj3m2;5DpQ9}XF>+N+|;2pLQR*S_B!>`Y+WB$v3kx`tQ>~J zEfrh&z9l&Xn4Y#RC8`+o!&PZ+ZYsCF@2HfXk+= z8sX3I0ED{Kt~TiV<|Iu07zyJfEj~{ z@c%3CT6QeQZRozf!avZ8M2dO<+4R(;XPxvXG!SIb^Z(mGPs^6)H6s8jx#4QCRfJqrL-&gS=oA4^!_6Xat=d*6YhVNbnQ3$O=d_BB zHQs{###>;47;&K|<@zjhj`l&Axh__bz0oSNU9BS9$ttoVtRlOVc0H^jT$4T<03c4) zTb|Z*#DUTJ#k%_cmO)9pxAU)=u}i)<<^HRbTDso)0q(!8hVJM7tC)0A2#R6;zvT?< zYGT9ue*+l}@-Lz3@ED*f?jx!q7lIk$YEr^5gHr0pG#z$9RK*)1RdFfv#jdET z^*f)+`o}CY4rl-pOFQkrk~A!FHEv*j~vFnpW$W^n^D-N_rp* zuc;33LQC07j9Ljt<4Q^})zICPEy$RGh`&6vBp$<-#C>o{} zcuBkwUlK@`v^;b?eMDg7L98y=b9<1845rV17 zM|+9vQpGxXT!YgM0PnUu*4!1ZJq*3u75r_k*MUjsRN^+%>R&jRU?*B9_(%jFDmqu1 z;n`SH-;xA9viK;L_Tf#4mA>c?o5$u@2wzl(Xjl?oeSZ6e@PRGm^RH@Y9YdqUeK<-K z&Y_V8C+j1#%A_1P!(W_JKTE3%9wpugNQt8nDRBrSC3eN6tl#;ZrDZBhOGYb8r}#jR z*no%$1qZpWWn~#%(R$9xqEs^2TYQ%#oDL$zL33uTD_bW8%nHTfv3Qp3f+#9)L==^y5k=(?L{Zrl zQM7*NQ&!eYW*yJ+GWBcJ?532fSI`eQ^BUqH6E>UCsWqtwo6%`6rkZ@T+lx-J#m@$I zqD$6E@y^4{ES)e9wifJ&`4ZdO&7{KC$MheX6K|K+R~9bk^wlwDMTc_kEsIaUt*&KB z(Bnt>6||}(<}j88*EeIuG^02cT;Z#~=)BIcz%A2!#S1Bsy2+~7<*rbi;kFif{pAIz zn$UTdK@fPI-;|v_dqa?U29a;$6!X@0+~^GDbTOutqC; z%Z0mwFEJX7RJw52YUnF=y5tZ`apVi=#`i?f^5^f zieW%5b++l<(GC?BC$hfcw)o8_E|9#w6+T60h;0`2u zodE*LJTN?+u753b0vY3kgf)Tk;&VPawx*1!8EQc}omY1x?XoKvNB_U9E97s{-d@z` z))U;C8D!<3hj;X4E`$1Dd3%`G#{d!KJ|H4Gv&c$`t`miIN8Xyp>}%=*h)7F7#3pB) zFh*TcNa&Qz$Jp4et`8Q&EiLTAx}KefRDynDg20*b7iPyM*nD@PBg9Dg_IQ zqz>qm4!f|TcET%=8e-u(t&!9A1A?fcF`KdnbS0esA-v<+eyrQIOmrjRXBFBIP9(7Up)2xqS5G&!su$~m7jNTBd9S(>H$`4M9k^;+<(jc zOv70b3Q`C5zXmEJ9YbZLeN;wNLNTxilX3|~=TZ7U)WJMUuaJdw7!13H|#SxpzBsr9apJBL;TY4f1lY8JCm1Zlp zN%3Hr7~I6T@JoTS<|I%sMQURbM(7|qQ4yOxb?{nTa)dn zzgn`Mkp-BT5u_(3mC_;Dvi{>r2Y_lwZ!>*S5)-ok=lpjke3l|@>xZDz^t1K35p)6F z(i|~Oqa=hcs3E9>uZkx~(SjIYypB!wy+5>bu z??C)47dcZiTl*@Qlt{tj-}KU3U)Y!FvnhFCe3;)Z0XN@mGqkb4U{LP7C~->+Io%pHZT#Ss4_NON3E-0@e?j89 zTq|v@om}TVBmC_}a<)LbmR6jLiCjXL@jq}lm*jt-71JIx;ivnm$H8)6H8MW^Y*6_5 z_CJ3w6yM~g5k9~=j(--CQjE2SFD zv|^mJds4Jx-NvnA=rk}7Paoul^>bY6rF8*7^pW1?(#}B%0ZjO?#L1`xaR`i@pVKOt z>ZPoSIYz}6eY?!emRC%4l9vx~Tj+DMnq^75G`UN;7UQJeaaR*HN0=--P^Nt+9Zxh~-o`ec_tR|x5Kx=PPZtLG0+ujg<1 zIfNgFM+j*zd7A6N7ymFK_r=Rj-|v%)cJ9kAn~GYA3r#L6RMKnehCGHOh5;!oof$~@ zzq)V`Xz3E3NrzFAEoVA187A+t2lx2+#-;K7eC48iDTpyG7OsB>6^DgssD_|#>!bfH909mFm}|`oC*vbg14sD zBW(tA$Ix<^)3;=hTWvMo`cR5O?y^-7S`;pdB1lQ$`AQChih;w8_dbof)Dipg-p40mq!bCUXUAEzLxyEk$wCAAtZskeFob(hqG zrdCMmjj8pP)E&BSm6G~W`>j$^&n>4CR)U%@F>+5Qy$nUCOa{Ryl>NRQGq_Y*tHD?5 zHaYT&$QR1ghwE3Y>I~x892DPXUwi`?A9I_u0S5^qqx?n#X1M&m+;Jwz@9r&UO8ISv z%kNfuh+E|Mps5w|dt++7<#&fZL8bh@)F`Nw-?oz9WrrX>hZLgBCWtodD4A^pQ+j98 zr)9P_SsB=0US`_yjW%kz8I?HU)p*2h)v+K7$DYHe@9cD{rLo5Hqgvdga=N1`h38F2}ugGnl z#A|!v=jFDl57l2qZtvd>37s!01kJZILdf}gCR~2#;)bNWFUdDF@g@cHuj4b7cQkIi z^$pQ8@9@3&l(RlWc~3-8-V+hd_eAbF-xIkH`JTvq2#Ft%?}-A{AM<3_gD?JJ%so+R z0Vjm&bx|Z@c~ePp^RB3GWwbI`POHamgWLulvUl{pz2k7KLr^#9AuYsnPO7*J3Lgxf zOa|;S<2gj1&lx;P=y$+RcZiHNxigiVuC_Poj2S4oduvq0*+iL9j=!BqPid9J=1S_t z{ujR1M;q3(Dl}WY?(e16zfid9TEpno-j!+WDaF+1??v$CGu&~QXH;f12L1Z-T8V{!pWe8c42e+>UQ4V57={bOMivj7ou|*;H=^5*N zF6$D%EwZBTF3|_#41>vAEZ3qK(Gvz_NF>#4I36{)&#xh1ESYaF;&ICyc+Bwq1RNr) zV4s;mgfu=9zC2LdWvQcU!{2~qP&N3TlAimki4RFWE}`Gia58Xs3ed5llxY8F1y2Uj6TT+Y|kC%0wMhCTd@qXsH+=+DUQgiUje=D3$J`O!S?~ME6xD zx|cG^gp_D26vHUs9p9o*gb8XuHx$b4o)_0lhRn2i{PUoS$az*njqT|G3T!o7)9(+f z=%jdz{~zG8mMWqM0$I=*rHMQgwr)4?XrzDZB>3%wOWDlw%yRVK6 z0waTyLe9`bWIU#g@N(k@uZ@u3sEu$;+lC?+8@D<)^hj8isW)0V%y~77wn6TUn#I^4 zrJ&Qe54fm6MeNzIV7!w~naliM6T9G-@z|oRxsHAGVGO|GT`2jAQX10%UT7&p*JCcY zEjSt{-{px_WA{p(04XC{Te%5$gw#Kq4#R_REBFE2iWP=gr?8aoD2YVR#pkdO+zQ?a zw}QjrR`5z(~ zAm)RKcXKoO&YFy71#}56AEeC!e>7me$EIA5-A$7rPszWKg*gV+a+2Jb|p!Qp5$cqe2_p~yNwwv>wO5@buE$kdi1!w4T=HX^{BR@*_r zsnk4f!I&pC9Lbv41r%s~bNj#{;hk_uI2;ZM@5Br$42TYxL8Sq42{WiLAnXwX z0!)$I%hw%TI~WzfQ;KWJtS5~M0X4A;Mg>nrTdlS4U{mm1xit^a*QO9!#vZsw_@}|w z4w68ukIyK(f|MV-eF`qCVFLHf)jnrLg;Z9ri}HHjIxA@jE@@C@{iS}J=RT(bl?S1z z4NXe9B4wrFxk$3?15G9Ggr<_ip{eAZ_)W9^lpXM!3jJBX^*Q}H(`gsK z^oS(ebdy;!;Mq{JsEJ*PC8sENYdw2}k}1Wii-qnSOis<|kMKk@M~J7Wbg{Ifg2_~m z-7lC7DN&-o@%#5vxT~TJ_p-Y-<&_|o)ka@Avowb>WPU-=kXx@zKa$#F^5{Or%_gMfIp6>w}*+let5Yb;8f9$z3a% zkPG}PC+K@#5u&?>3s{)aTov|Sd#;IHNa#e%Ecq+K)@pVrv_s{Kg%|JJSJU z(8NfdUBb~gSYT8=b~jOPFgd4Pkg#0m>ZHEABVmE!A!(|9*Npe(Pv!Sg4ITX1)G3GNo$-JKcS0}KRrcMI+s0t9z= zcPF?z3=Tma-`#iK@3&|7>>uw;PfvB2ES9Ya=3*UAB3!iN6{mRB&TIy&gOZs}?TX#5?27D*3Hr2lvd||J=L-FYlp_H<<%Iw+)b!LcX^F)W%;JkdtM; zw-LlfGn~n5KYqUV2xa=(x5tVv+$UhC*peTF^9~ApvPk>^9RUa*w9{GexV~Rsj4RYI<-*bL5zCBfK>HYa#yn(_3 z*G5C-`_7UIGPX5P9Tq9>!DmaifgI9SlB&kAu{!uTg}VF$@y!@=s=Ld-#rD?w&?G4H zuUv`p9)GU7F2>~*S^W0Cs^Ov#ROweHDV?vZ3=8Wt%YW&kX`y$Vlsi&&xnFZ!DU5ef z7Y5f5=;MbzAer8j$dN1@&0Rq*766C;P)8*^831M>ecs*@WbiHQ7{Fz5d!ECB!k?47KT{-+l5|Dj$TiB;Ri z;)jKcs*8oCg^PuwnT0F)e~tIQ9YbQ3v~m4z5Ac+9GSjpH*;|lOo9n-g zt!UwB1+r!*XXj(*<3eJUwy_6UxRA3-+XFxrk``u8<`zh-|C5KDpNEU%KYIROJ9uPY zcq4jfYBgPUKZtNs|J2lClq=!r;g`}3#JXnvF|PTsInEFOV9L+)bd#{dvX6kEmlqyeyiJ>& z^Z?$Fn)WyZlsjym!!8rt4EdrCkif*mPiM`u{aYc+6NaBbf_T0?oU~y(x^{q2g5S<< z&c6^SNq2&6fzDsO#hbLnzm_=y228?TF9e01W!@D%$pxrG(0?JqonZKvUx1n52;-qQ zU%14>j_w4hS-F;_f5=s`(L4)T><=xufe_G-0EZ=u@cma~`CuCTkk4_CsT5BsRGT^v zG$uYDxiVy5(a*YVet}OGUosb>Mc>N1}xNY#Ul!TRTlnN16Y~~Ic zR`Y&^&lZYNyubhOsw?g4F`P`uA(^A%I9|lrI2S4=5~QT9tEqJl^TaTaB0!{73IQzk zuI@9~hpz79)oW{8_Y@4STF|Z_((HrOH%Q38LxJajf zAF?Z=2M@pQTSw{$QDQAdMaV{$LEld~F>D_rmQ`vqz#P+$tvE>BkdG6q8xpFj8o<0y zeiT$I|Dk(8CS5^=TYxe?6T*-G;1r{l5a*n^5F}+iNI4-z1o!dfifm6961H`u7ajXs zFZM(~G5rS(H0*(H2ridR1Ehm*{a8?t`o!{0W{9+5tf#d^#Zp$Vb`_KY8+<+Yw6&z| z)ogljhIKD7b7&BF4FeY_|4}2ISAn%MMsZF9)L8>Uhi zdFeQMQjyAEHRPgBzeIn?D!Xf2hD{6dZ6v3jx}&%--t<5+jLJpE!Fc-^R=1B&eMbYE{F`p9ZUE+T9&1HeT7P2HBwC(Vqs(2V)Yu)vBnLFR!OW3qzyG zf4>yO_$^Dh)DH=(q3R9?HbdO6^YYEuh--kT7JG3Fg)5`Yr$as5#4>N z&C0-N__NiuUhb#-zZAkWPTi#Q z-wwZIPhuqg6GMwW)RRU(f79KkB`?Gnngs>E z0@Y)gM%2G(ag?E7)FUP5*jAKG#GG!QM{@s+?Txs3aX(|zs*XcDRj>M5^2QaU zc_jco8O#h5i4|G&BK-Z!G434&w>a$9W#;IMSLbOLTMGRBDYCTfTgOBU4F%8QqPdp1 zy=@8RKu9Jz_X6s;ySXJ_>(>5+qYg%P`IsAW*5L+SJko4{Eh*jl4pK#bDZCw_25j zY0BUwe7QY4gFwY*i)A->sNr2SdXdzC-$^&&{3F&=dBs?GRZG}eKURI!cuVK+DFfbp z-$S3DL7pT)BB2DXWFcR~Ev8~_md{2%_P1%dn9(V{j)mFVv3{9X6s*~}od-t+iUMRil}IoBZ*eco&AEwX?rO;=n=0G@x6f z)9yh>M`wB6`|D}=z+roGaFO;RT-E)pwXUT!orGRl^kw!6LB1fJO2w)Hsn0*D=W zaBtC=8p3!` zV@1VyJtBvT$entd*;Rsq2 zb!iU^SO|}ZABK3G&$ofO;nxN$uzT*F7;7E*ooSa1vwM&TWHvAlWJS8hv#ET7LQ4wv z1W03v49MN6(lVL50U-%%h*=YI)6OpO2y`RrUs1vEU<~B+7$!Do-ks&A5a~JXCNW+j z2KruW%>vXf*Z8^Su5NT46#6 zgN#BEM~Kw()Lyb_-j|jujaR}Fel1A`fd=34+7Qi4@uSMh?*!ek{tk*H=gwT4x7Pe4B-4M?@c9XUz_!q|nwaZ_;$D!BDH=SJM47F8zRmg-o%HD3=3>oQa3iNL9sIv3SVaIm~` z70eqcyS99XFqt&jb&_RQ&(LIfQ(mL*ESg>*~IHR!vm2i5_HJt1R6 z43W1a6!@aq4yiK_Grkf`?|F6vHDB{=_KFb?+CWLEaU7`OD3vlOHEiwCDeC)y{Z%T@DL%Q*`< zi+}IVV%RSEj)Z^w`eA&PwE07-m@PVxQidyPeg;5}G#gM+i`m`V?*S9Pqp}j^uoAco zrrjJ8>xh=%iz#|SvSNrk-zSHs(SVCB9zP*$i*qbBI2LUF~;N}h3JyAk}bJ-IfD|s;^h)F(2Sm2tw8fv37x8TgJ!MAIv%U~ z%>tEq)`hL#-AW(7M9dSA-6gtqaQltIw(v=LI&5M%+hXiur`0)1G$?6|JT_#w?=X3; zYc&;^Y>=ch1Q#jep08^bCVm%h)p=*6Rp|)dOR1~2tNTDbeh1=~2Y)2_g_cFK5jW4u zGMD_TL1IoiXj^LT&fV$l8{w5-_SM`eEJ_A(_Jv|>w4S*qv)1U^BNhSVN*Ta>! zMph|C^!ZAoR>$Mcid&fIR)=X{WKwJADX{Ual`qy9bY?st(Iz)%?A&_SpgI$M)(EUL z(?fu2h+0+%9{ky9GB1B=%6iSk6V#PLsB3nWXCs7SA@huGYvFJw?4}_=+FxN$%v3`C zfKcd6n72zlwfhAm_jqd(A>reDCHX+S-gdGQoLoFC*_6@MN2D8mwCZ9x;OC`2Hazb` zp?u?o3p_fud*Jqq7oE4aHzgJ5f#NI3qqv`$m9iupIRZlBlZKLVK3mb_T#1$P)GF8) znDgX13>iI%KT;Zm{QC}_J1o(Hh*k(`0uU**CIGSZ$2bbbu(A^%ZqM`vgz82u{_3-A z0J5HbCq~;NpEBkD%w#K_p8vse;*9A(XyYRzZ7=?nCxIZ8k8(=ZdqL2rB^t|^Yv5Ey z{>L_J8%tQCE*+9;Kq!6;d`;qJBI)q0dNimVq+QVj-2+OVeG={X2YI0#`rbirqgj@W z91#`KLS6gM>C4S``(X2LAoKl_*p0MiV~#!`hf&aq^qme5v4PWqR1YDJ8zNBVHEji> zO?E(1#w2OwtpYdBLDg(Hb25#*3GwYGiW7d399gJG#XaUgoVdTmKcEaj;ZDu!SFv;J zPcfympwYa)p;~eTFb=i9yyJ2dpj;rlG`qL{DdFWAxX(AjX{4M&4XvZw0 zLOI#NACl+RSq!M<3=AI|`Tq5TRPP=5Vd$m%QO)= zA@8iHJCoK54aMZVEEkvq%3`0|$~^7mV`5%=gIUGS1MxkKk)7_I0(t1dEX)mqR*+tF zSUP60QgrdgTwOmIG>dcb`m@*>7DezELqk8$4R7-n=)sA4O=}6b8A(hdcTe>?<6Q5{ zQX7>An|WCr&_q;;(4X4vOddasho&1D`62@G3cKq*+YF$%0CyHt63}T`H{_rSyO*>R zLhU>xJZO%SI1%oIK)g_`+B*zvI*=-Xns=`VZrvTPDvKJrcU=c1T(a4x z(lxDOlF4@}`!6%`5OciIGN2XkC4aZxNO`m}C?sKL@a?C(}%BzfKtO#KNn?>C1BnJJWuHtN#{;##w{V?u-c+(jv&V zLNKDl>@)J1>$&*|Uo)LPr2fYHBT1qJj+^-GbfxZ71oF7%8}1i2W&T?C!SthYg5C>-&j(sDvOf?bozE+7%14A&$Ys@T+Yhd zEVo*)$}&|J%7NqMSXNmE%K7_-M)lK2wS(Z0 zM#YRs77I!;GRMo7VJfjBn8nHKBA_s&RJTq?^cU1@{klY#Ny*B1kN5U4vu#K_H@WFq zoUHxCy1cqYC%I)+yn-zo|GD1YemT~?0%uQuG`SkYY@Hpy(MvOWn%_A1zl`e$GC63O z4J~5QJU^sa#FHAY>6=?^30&&^JD$saCKC~D0^Zal7X8laxb2OtWsd{?SQ<&%JVJgc zHhhd&A4}4UC0{3xlWUfvksTWP25{lt&+7aA=WY*6VRlG4h)7Wm5et}Vrdu@$89tL-lije*Fa>Uw4}&LCm$=t zBvg5vBU}^rs?+ST=Vr2WR30I|02f`LDkMM zw4rY3Z#WvoUlvcHFC;2&^iYl6*1752;IyH%rGb$;Cm!bwUio|{m110BvEk7*s)4cQ z2gyOlkY^CF@H?c4h!krJt@Aq?M=R?tePy|qG=ofTdR=)2&E>b0CJOa=*<69ITs4o} z8;4iYfvRxV7wU-29;~WqW9n4l(j60MlD>o`c>|*ezMA5ijB|zcW=MqWCb_?63?A>Co9{ z)OS@s*RZ<8Zq}a&N*!4rEL{u6I!gvUe!aj-M7=iIdgt$5Cw0F{{y@)qYsAYCp?o#^ zy@8W;s!W2TcfxV3CpmY?{Kp)HBqdLu|F~}9n>LA`WiF;@uL#4A{9{T30RdKB>dWPI z6;E}v$(cbG#>5(F_eR%ZGt1uJ;{9tX{z3kc17)S?xLff;m{l>{@bmP~ptcFbj5DkD z44ZtxKdqq_=k?d*F+)A%dw|Iu#>qvLf(6t7A1D=s+7lI`jdtOEHJyI5vEboTH6i}o z0GXp!I)y(qNrFVhLG)PxC@Z1U6gG603m!~*mF-oEwMpEP@gS?z(CI&ixHvn?x+=QU z3(uJ<*}pZWYi>@sv&cge4b(9NIVmRQ_qa9>>VAeepUWD#mKk^UzNSbz52)%?#G($A z{2Ix@98si~Q`-@wnGxOBG;&RJzoE6Za^lQ9`z6IWSh{xcZiw?LWJB6a_xar+)}S zDg3bW$i-J=sW|j)D*&dQgZuF&%kgFP24347g=m}Mp_oo@UIsa@<7qiO7Xr}8H-xhR zEn7?ySUvQag%U7@<|?0XEV5Uv2v6-7{CSU%1%8l>9087`d2oFQ`-gT@cTUF3zJR*2 zn_Z{U#pcR?bfUZoEbA1t#QjAL|TM%66G}^*ntW(3dmWYxxSyFbnky z1%zse($}iDF&Bm{OD+tZ!4u3=Vpj;#a*9kAs92O6CSvDkTyY&!DbkJtnr|f?!+Ys7 zOlRb1=Qthdd_&|oWHQYvYlQ}+;o%gL9cuz$5J-hj042%VbzVRvcEO-i zT3{M%;k_U-2^=OI65+@-b5@)=zMchnpQPYYz_yAe1?A@cWexm=!3D8CQaQ`yo@r1x^?!r$8FW*@y6&c&MLI*-i+Wqma9a6a0cq`3r1 zt-!PNS$!@cpyYZ>gtK$}F{n0?oz@b>mvAgA(`&bCq!fEcxQNfo?c>K+sbknm+sJ}Q^`tmZWeywM3bW^$0IYm2Hdm9 z{d&^Ey@XC?*R%r6#oOv-?h2;v3X;f1P8rm#iW^D=JME6 zirWW8qoCSNe8y@q;-UR3Z@=fT4x}1vT7PJb{VU!ex}CEAT{YaSit2dfbmd}(A&wZ{ zRdNNB7%^^tBvL~QoAu$@XZ3TB0quUSBiCERyv7y%^Locnqyw74L2ZW;&}pVQKbIjZ zGc&U$o`Te4dPw0<=`)_&rt4t?g?c2gh|2@ZgsgUg3HsUoR8SXeA#;+Go91WcUn3C? z{v|(@(Qq#n6y(dc`#>@Ewbu45jk+;7WHLbxJ5t}rw@<%dq3;^KRP?cZ*dj{4wLZuJ z6Lz0*DJX6;9p51MkMu+^LLkVtwD!?Lo}L`-d>qLK=s+^7nj(J$|5k(lB>Ghu@YAm6 zp1*6@jyR!Y4j7>*02YOI=96?C4;dCdE7?RY^yapKMH# z2D8)enAK#*_x|bH5peL3w0CqbPu2nOS3~u8b|4ve;JAYsi4V1&vUSAZzf_Aqpsj&B zknTH>>|Pqf8`U6<7ll32y*hq(A?mngRkmWuSNU+I-p=aw%LLn{d{2)bI`V1Yu?PJK z;a+Z%v$ue6hbn0W6#UY~LUqGSJM7ZS96=3C=trgOK?OnyM!b+cU6OgA2}UHJ=X?E# zB$0#{jA%S34>~tZ)0|Ngh;Y!EmVbz9E6pUH*(X+-nl+b7{wb0tBX+LFEC%llW4B6W zdY<_0G=|hSKJYW>BYO?X3kqD5boWrt(Ah9ix|Gw&yq^4-2SJ@D!O$&7<&MRgdTK#P z8ej-56{Q2&z>@%mHJEgjnQUC|9c{3w#%F}tWIm`(lkCMnS0rYo=SD1Z z%QKI_w+MDToK!nC{D4^{`e(R(YWM~-n&Et+B@4h4zxvbzr+U|-BL=4iDs}osk8~W% zU^VXRk!scY-{~*axp?n>#vW2Q3-M2|a)X2)^b9K8Gt+HJH(Z0UzCLnf)mM9ZfXxGv z)8%y03739*+4O@DJ@<6ae*5p~CE*#I6PSGyq?TX+E}msA!17D|FXp!-nD=-0^#Am=Q%d92L7ly7>j*wTpFEK#BM<)!Y}Q5@Zmq536-Qhc_UBH$ zampxnYrF&lL?a~4y{+kC!)@MHIPRTBT*v_6X&pCsm(b-W2AJx+yt$M|!sRDcg)5F; zTMJuhIMO8_`}Vp|K{xJ{GDZg9uC?+!iu~PvA&n~3|nS0$-pUG`0A-{7NM3V#KR=1!8^7% zm2;Ec1#NP8KZ+A8c;Lc4{k4_LC>sAdBm!#m2H^<9v!z+}>xh^3)GcaSxH(Cp(Wbno zs#!#-2$cy22?mMU3Azb3 zuL-`3Sg8&{it#^)_I-kP#e$i(S7p0T$H|V1gx3Rz6Gcxh?R@JR#Dp^utFQP@Q{(7#x z2Z(0S{PH{bkI23UcHJSJAnD>OwfdU?(a*6cWvN*o!*4~0^T&O#B3agO>pyXF9Dl6X zu}rFVT8G(Ho#Nct1PbMjMNKisABrlnuK4u9){-N`S!f>%g44;s1+>gNYus2O-nHOTjA`MGb-n6P~8w+Cp!|__r(9qQMtk0_Xs!{D<-K(~$i}CJy z*J)tz7uW8pX^E$?QCqv=vlIv%=NOVOXY*B+&YS*1hC5}lRU?@YsNOT2caxUXgo8%G zX{_>{TyAQaJi0A!Mht`Lka&Zv-Xgm`e1YDicn{zmCcC!$2c28+9x!}`=Hc=NIgRe$ zle~xKQTJx2K-GBVYWJTvmnVuh&30M9@)?>3{6A>YYSC?ib2JZ!PpLyRkNG!9l{V3B zw@;Ojo~@Aa(%J9PQN=XwVilp)jSjW8)^-N#I_rZXw!+nyP7Zt~TzL;EdC6;_Y%HoE ziN|sqrY?4*`^2_mEi%<;V@cZunB-6LEz0#&Lf;wHGFIOd_sBFcX9 zOV$&qa|F&7m2r{#K;%_ofCpHZxF-54Ap!<0oV1O;ML{69D_Cp|f=C){#{Z>8z_4pT zk5AqeidFZ78%!SUv>im*6-cBEMp0*%^$F%e#x&`NPJ1Fek;O4FW1AaTzNS>l4n!k$ zh9i*0vr35U-9@h3#<5C>MRtbcAHlX_gUQ(Ca!I67?vJ;3Mv~yp3@3I*dd8=I9u4yRD@3EdgNGbzA_-DQfIIhMtaWK|0S>?**p8TtgOV@I>9md?7wpqu1F zQ4Qk#lKkcqsD==c+=5)POD$cbm_2}>5}o`@JoJfpk&q->ZPzuX-(uI*FmCpf8ny-# z(3-|PA!Di0i1bryMo+U5m5>IFv|(7;e`(Y z^v@~+V|XUaZXjGY#%?fNH|Tj+f_V_i8G9K}!1w#TIg~HzY?eB17mh2ss0Cwk7r`$M z*BOSlK#RE7g&9|-21;Q7W4&_LphnXtz`!}@38ER0;X&4HcZa%8zBw$vPQN*v^VI4= z_5;xBfp$UINyIeZts9y(==}uih#}kp-yB7{9{pDmP2hX`aWAWL_;IhVE`!&1QSGSy zC!9;{a4?xQUN{)y5;q)dx6a~qO|Bi;?}5;b9$riM7$Nb5a)}duZ2Lui<6MnXaGgY6!gMe#cn;IHoyi=RDlTM^J6P~8~t zwW!@#@U^7fc<^AlN(^`~^->h{Q@u3rHozG|?6r(9Kv{@#Q!Guo9sJ7!US)?JjG8+{ zHYm6fF+BL!L%N8f63fX9Ybm<9mcSqLAGlIFuRj?m`W_@2{pLYRG~j11R<;sfb&Tz_ z0}G05zSaRnH(yicVmbkcaxwp1^9r#%?9d2NJ?vP73>bF=DFIpE|IF&t>YWd|3o$(a z;d8OPYq9(>yupOIcuqjPrU>3zB7?y!4-(c0-Wr)Ar)?=P+~xoe817-$X&2?Ze`|oW zBQ$M*^n7?6h_*Sz^jY;*0MSslwZHNqCLM`4AxXVVk>_=nBxh68i{l zTZu)hkvSj2h$S5)0^*4bWC8Kw0M#BS!?h|MVe!|g9w=mH-5w};+YVqtkwL*-?(7~x zAe~4*WGz46powMxu03P8RX80hgPbg_EblG+8O5D7MiTyBv4|&s`9WlmVFiKq1 z#S<>sXQf=UwU@pUSI_s=c#z+R*;tBI1j9dk=JAWryG|5yzW1bVU>P_oP4qkroVSXn6O5`{GY&Uy#EaY_J0F? zaqzJHFPJZ*glWeRa`d4qp+VvwXhbtc&BFLeC`4FjZ^>)E5FxWkn$!{STV0S6-Mf%$nR zSaSL26q6QHsYSRf^?^26@d{xA`mB1^-MTjZ<4&S;pSxk2dj=_?nr%jYBHt=?m@kE|H-!KnTNZ z2ba@?4sMC^I&gn8hGR27T}bM?4jsyY@I?Q1RnEys#)UeMN$cDAT$+Z10~9EQrbhU- z9n%LtjgN3thDW-AyKd%|h_pEcNV7QuAH zy8Fv2tzoN+MJ^&Q%r&oE41R#q+B4W&VxE<-C|11o#@Z`;=uy;5=wa+<#j+yX6qHy` zEJM_5AOagZAtWN9r58I>Xpq+wH!{~${7s><$foB+ z#1SaZp_n0W#F8YsZ*w1OLjM94Azz68)4VOkkLB&_eCXZm@?2tuAIk=a`%V9)C*`T; zsV3y9#sdmb2WQD;@lQXiYB4Sg!^Jv5JAN$Xa()0rZ!k3UpeNeJoYZ#>)r4(8Z?C@X zF(D?U2XC^R1hU%B4v-8;MF~NLjz_@If{6or0UDN(`I0+R1donD&4`2!bH|$%Xxd|0 z3qjG7;P)1wYU<&_VG32}z?09Ezzd?ELBY>UgapCU9vwole{(h_oskHz>!Eg_D}e}j z7^o-t#E9Aonx6_*MGKgRA@74mFeww}D9+GBf1&Dq;wMaTFcgfG7F8o+^Yyj?%o7q!(yJAeA`5x?_IiRGO|OA9e^3Uz{zYX7X# zi`CX3OXqvUizAkP&VmgdX($4LQ*DOe><9gTVM+ngPgOP&ix!hgDKU&O)wotlZ-3?z zS6Bvo7}(S)W5OgU(ly3$b{r(>0(8znVyW~cfH&P3n^wLEk`_I#?(=d9K#g&U<8ABE zHLpjazY|-7%_!#O$L=Bb%MrtwZaHP4CIB~Tz^nRdniv}i4OS~X5*U~pG&UvN3JnXD zqrStdu`MY6l!g$EInje1=w6#IFC)F|fWvM~p)AEPCinxq>}LHUk6nm8uNL_JP>Bfp zFcI^2P6nBbhl|DSn*4813glbWCw}kk<)N1Pj^{B-XFu0j7-&{l)F$H|eN0GdiG+fP zdWwl}%6069Sp+lMdYI@a)!3pn3MAzo`+Ywd8fDAS0qCh>42=@Fu_V%R{=#`+so-5u zxcTU>yY`m)psWB?pG$O9(sr4QYU3QP^cXF!Rjw}-Ni=h3IJKdO$92g`2zH(L^W`5v9pjmmN#~Te*f@vG++1?$Iic$ ze9omEm@6h@8MPW59WKnG);N|ti+GHSzUriKuVz-xg(P0CCI0Tb2CFUYcYw#t%jEIe zvl;cy>u8zQNHY))?*9X2#%Hz`#)>S+u9G(rlvI}nP3WH;=)%fTFnA4)^>&SYFq61?DaP&PA5!Unmnm7ozIwUAe1qXKC@bH_ z_K%&w#>SzC-3=U=sVK{~0rdWbTgrVhN5GIK@guZtpn96fX^Kd2w0wW5O|WK?sipjA z8SP@hP1bhVo-VqC1T)q`ydum><&tYjV2WHzUbO_KlW$>=k?8CW4c(&H)+PQ%L&wzT zwfi1S7{klw`K&joP-C(oP^TGAx3Ny*~Pi8{4IAkbBnERbbp@qgN?#PH z5^|RH1~Yqd+2u6It7im-CNJ)wZGtq{#WUFiDcV*n` zyn(AWDG$Pv?>)U+2Rexn!zBV6fdS36#95KKcwqHAN!Eoq>aIMpK-jO9eFBt;)N_=v z;zFeW_IL5ZRZ(`7=^ZC)I3sIFb2 zXTcG?%<^y%%qJx8uRXiOGkmbr~jq*MD}&S#Tn@8hr^vgE7cn~SR;6=U!8?y)U# zbY}dBzu)m_fk>pi?N8{UyTnz8i}<17^x#K1Vzr3SJDPtsTt>2Zb)Cm(@Rz+@ngCc$ zj~c|RTAY7i*tPH3k_oylbQ$8Q$*x=xxbsHmG);jQ$q{z~lmKZcOtr|xm5BIStoDdF zdg{>qWO!MEXU=CPn<7SGDOLsP6O0qQlgz2P&87D*-O(nJ*uZPS2?_30Gn~vC$h>Wh z?0!!}N?MK-MVe~NpACr`TmcV-X4d?^xqnKX>e^Ra9{!{-TFA{8=gb|oiJqhqAfa67 zEH{YGzgzxud`I0v2}76c4N9aR?Ds&bs73JxGobFWbuCSy5y(p?$nB$3LJar%PJff-Lb#GY<%OLQM!|8%OlM%JCRz-$RS6M;2ynR9AchaF8t8BF#QSnCG)`{h@ z<+1i@(}_N)-A%_$=U$Vn=&FD$-~U^;_D7?b6FzW+mzn#VGn+RxnUp$l0R3RdPM#^KcK889sKMHxAEW)4*bs~+q5F*`C;^^9_CT8Kus^U_tw1N@0N~e)Jq`n*v)z6N2 zTVaberBoh|5sEchhqC4!ja}N=IXnAONBCHoU~@5&4RPLNX8ZgT5T$QMATgbtGx7X2 zc`nVoEG*%O4M(<+lY%u22-HD@mR@U|nnqNP89*UIKjGNqr>t>wIQI4!<_~ z$E04<5J24rFMV+E zH|&Um9tiOOex2v>R}7J~v>mF#Z6rBb9a&+KP`u>CIJ9fX+&-~7WTlq3ZsVhFyNf~V zUO7xD%!t_X^9IMJKgy3`j=`5#Z8+Gw!BctZW)u4g&vSNO8FzNs3Y5lkj)G zkMS?>PMQd)FMoqQR!c^qwWx8!{T|;Bx6vAD^g3f z#B3F%r;niTCrbx74X~|;5R_v^LHhM^At(l6-?WF5Ps(Mn3}nId6i z5Kh$sbl0Wd5#YrWul`A&Ne_`X`VuGArm@MGc&4ijrpa(s1!%(H0NJQip zAnfP>#Ob@E*u?rVhN=sh`ku8U^O-(iH(+8VdEdXZQ6+r@(Swe3&|~TSVA+F)C^J7| zNF#PcsZeWQt?nez-Z{+&z=aX{d=;4(8)Y)}r`) z-^3o)A~NPz4$Rqb6LHL!n`l|wg(yisjJL!ARv<*uvs7`<7%MP8p9gsxj}3w06$;Lb zygNV>dH;wVhR2W827h4Mj2`ax7C%hWkF-B=Y#IPF_rzapMlTxvmn|kw0xk?pmKeG7 zDzlO}FN)yBn*HkCva?I479saaUApb)hba|= zyGQDWN%I6P8u{-#>j&!N7XchcKk;^j0hMh?Y%o@O81S>@KcHd?C;x;vG2r_e;w~EE zU$J4fv$Y#ff3O9_CEec2hnj!l{WSo3NBIqt6HD+)G|{W*M~qgOO*U-!nn*S*Bz9zm zD;fv;YkT+_o$;BS8M}e7{#k9o6jd}T984}6C6zuNzl$M8HYntW9nGHSA1k^;@y<=! zFY(I6+$;W$lUkVRAF97_U0s8Wc3XYjlCQFj@s5)_P}G5<0$_KNAbB77TVps=2F4c+ zvZ@Io>#hHFAahM@`<&)MI{uXQ#7TN2bB!m|8@~-JG#bAxC1xT{A{vxdn@!eh0_GBp z(Sb1vw0Z(8?CJU8SMPfI;WL4)-f6TEUwB_b$%bq@deF>JjQ7LAgr8LnF6%ApwZQur z+73!bA6fw<(-TEyKhitwrljx(l+%vZJM5Af&Ic6Z`%w3{qI}ZI!@MFyyQia-faNE# z4whr-jw!TVl8#=qzGyf<^hw=eG$7Uz7D10VwfZvX{3lNW7i5O^te!^F*3=o5L5%`lOsaMA3yMy3Mu~ z$@!FYHK0elBM7F7yN-88b$B()9@crKGVD=%$M}lmg*f~q(-O1yO7$Az^d$2{uysSy z5`^Ug@7Mdo2ma44^;V$WQ|{F_!LB2+pgru5>*h?q@k~Flg}X0>r6x~lnSRC#cefwv z^V5-;e##4Xu7#x^pH4*a|Ml_2%KcXP>%>Y@NtDX=g+Oh7IwI3gdf|?Y`z_|z zNtu7e$wyJ9-<`kFd^aZd8b^5j`uO-$O7`~2tUdp!GL9U(=6)@@loFN0JGwIxG;%&k z>zi%3hhTYDlUp@U3Iv|zKW*OIli;7*8zob$SU%RdDeYhcc~d6aPj-Y>-6E4w4^>UC z**4X{tw)P>gmQb(TKA(UJrHMY2TMOa2LuLr$M`i;^wA0eb)n&E;8a80WzBSlR7(@>OME3{ap14PuS#x%muG;6kg0yqXBD z1f;1q`?R@XVQhAE5UX{YkYEbzaTM)wY*!d7ttx7wtAbE1>~XYfw6^VW@U?4x>P~A1 z)%`rzikIWzhgxO&Wmz3ihle4LV7}S+K4*@((lLX*wrKeyeZ_UeYC2HdqG+~HI=C=~ zMTXk|b<99FcUVC6Tlz9KK9G}N(VhUi37OkIgZ0g;30d;)!ak$MWNCq0J?kAq#X9{u z>q?H`94}K*t;t6Q#v484XH5p1gyol2#k-J+s1?Q9MGal{AgSDkQq|;i8KS4AuKdH$YZ4HqSeIh+w|TET0}yXNnv)5i_w}J33}*iMP#agLGVY z&^%yvYWa5zmlK+jyq?hV8k8o{T=xyxG!RGws|4BGBp`#%^i7xvB6Pws$TT$Hoo60v zX7CWfthExJlA_**8FhoaKC!ZFySi3~9h2jqU2;kIdR>MvRY&d;ZKJnd*oU7 zJ~1RSGz_CRCd;`TM#rB~js>{z(0eJQvkGCz;opgUzXuDdrI0G5L@J~RDx|n829dNY zgr5gfDMMLc2O)US4(w4+SBNW3ZwG2m4-vT$i`zWC9vivqt#J=(M@uJ};X;~g(n|x- zS?cLkJahoKi`dw}@%1rAwlJ-LzA476Hks8io_fjJl>O3Qx|0R#Sm@?|$J+iihc(y8 zIw&;Nkye&L(8k^0fs(btC%mG9nS*CY8nmDzFH7=l|5m+C$8VFlUFVRzVu>EHG%S7; z*|PWF(wGo=UNsuPJuo!(=$#4EU3K zmp3!KLtg|xC(-e#8!&HN$`Q^`j3APTKdzus2+bYJ=3mYJn1$wei|LBqOgL$8fbAro zcW8iBOR)J;H2|M*@|O#TihLf0&HVA%J3PT$j#H1 z-`cC~Tk6Z4ovYbAz_c%Rg_Tej>uM~q(TLSD+Kdqn0t!{c!*M_a2u9LrHq(D*OJoZa z0A&hlGHG7LT#L@J+TsRyQYclDoeAp=m9NnkEbOl$w8%vHg;~ahS$7?Ms$Yf1PJ~kCpFey4LrdK; zrhGx;HA3L63d>sRVG&vfk*^S*xNqh95ser3F#uR`Y{+2;*N?mLO%c$A^qRG~}c zQXa)Kp0WkEpFRJBmM{K)2zv+USb}g}bnon#JGO0GJGO1xcCuq96Wg|}9ox1wv7OwU z^WIzQoORE;cTIKwUsv^1&+4k4sp+rl`(~&LArXSL;@3L#-7hblElECZo}4PVuUuX62w#LlwBRxX`azbY0X zR4WiFRd?rr{~NX%o}&iCK%wPZ(e$oude*l>?EY_f&s`-?ObNL~kX5IhT+qj>*Z zg5<-G1kDL$={^2Ol9Qk)-EYzQV3{77tpEfXvt-r>DQ z%z~O(yyhj57s42V8uAcg1HS1gl;Ix&96nJySw3qybvb*m@hs;sw5TmDDC?ekPt0BH zZkwJ_zK|MVcPa)jo$5#B1qxVD$rJ^i>U*tN97+?dCW$wb#y^A~lnL)a=C&Y9D06{X zB>o|j^#YIz@#&8O=4pJGjOl$G_scHphna*Q<7s`Drn8MPiE`>;ES+ANH$`*B|1HNQf&aHStYE4Mv@_is$j6 zNp~T71%Qqe;ydhN7|WpPc74Q6;CTd{lXmgkGEA<8@vRLZf9vb=;u`mABy?)<%}Zw@ z)w#vVjZcr192ng`)u$lEdduHP4iH~SUdM+&{_%)>K=o)i2k^%HnZ#ql;%+U!X*pzt zk~&OD4^JSmPSgXujmv3viQYE92W`mdQVF^rh(x5Yt#pjBI!0()@RF&GxQzwhew)vO z(%W2*BplLerrRTu+pJI=lhY(!0lG+fiMO+NP$^>)kH=iwVtJ%j^LHcjK0W3uwOBy) z@5JPiA;!a@bT6Xh#P8x6yz+M|^QP=u2*(-v^x5v2?pX#fiK2Ez6Bq|DjA2=@qCE?Y z3q>)AJ3A+{3qNQDgLK~|0(9p}NsN($pZ9;>lt3q9P+kVDB^}Oo-e{1>*-#2@p@?*` zY@L((8c2_9@;Sd$z`q;RoF6iIc0g2~eFuFdSJ zUntCq1`Ns#umu862IX3{!y+=XFq1H|5!tMbr)a}E0?9ts@@-M}7mn|SxEI;?w993X z-7~4>eAK-FjcFlsI~$p%Sow@84H{G>d2RcR4rM&Uhhs{yP|Or8BzwGE))Fx=thuF(*Q8=0aah-^^*ei}Ft{A6EY zK_;hZ*Qw3RJTK_er?p=FpRyQu+yF7#clDBpG0XMQuWn-)UQA58 zblyO*vM{4Dd!;3lS|)R{tYgA$k>_S{DMlO58+0_UW4cHqQnf8}y}Zkc7Bz0GCx7!m zzCgmr{w9)!I_imJ4l&pKZSfHCn;2XZK86s1}^4QP=cuWyni?I zA~ZRO_*{`S*7KOs8WtFw(5i)CCMo1(a5GAVVsj1_Vj?W*J0G%D%wlpq#3~Y~f3nj#_~dYzT;m&N^+!}LE^*Lr7e1GVF_4X- zfBtOK-P)USAU#Yz0!Y$kl99$0o{!3U5!^G(c=~ktTc$uK$uK%J*H<~im!INXaK%jB z!2V8|c9vDD0lj!Fs<-%4p7SJwvVn|jcXyjy+?dMIi~PQUXBr*eut>U~aW)4;239>- zc+%Ugwvv%ek=4w0OY;6&Vo)Yi(T2!pD$Ab>CZVOJ-KxmOb0D(sA|oMfi>C_vcc#}% zwk&W3+MI8+1kLDk_yBhktL7}NsBo%AuA<{s0klUNquM>l8Q4A}>1iILvY~>L`|$p4I`#SPn4220!ryCo@O(W;=hI%nSXC{FHZt-&v8g zG&kPoh}`I2fm1pW1d+H3EE)FlnMZ-Xe!|J>1yLf%afsG(g(RNxUupVG8rxYECQJi#y9XSyo(}3(EhGt@s~?{_fP= zxLVL&FeJ!5Xa^IgUI#tV{Fu_*Ig$um03)#VEDU?EFYFg29is9;^u3Q#3o_`?_SFmT z^qt3-`}VYQ(OG6WS4px`iLA{j_)mTE9|+Q^it>#!FB{5#g@3Zh)?li!>zM2QEaZje zu+4Cqtu)OG@I%hU`w=_c)~cea=e-B}ul$GMe&^90-CFYD%8!$uC!(3`RuarO3_k`Y zEIF_Gq>g#*kBT4ujW7V5j6XLb>0XwHR*3&7a_i4b+oiKUovqWmV-VQ%u6uA!if{YR5to5f7^(&KRR#|QUcGx~HFi3Z>HOY6UdKLF@c?WJXo zCO!!N@WD8o?(#{iEa~__#lgnybT<|zWGH-)C@O#8@Ye_AK?EZTtMvMh7W;QcLT`ZM zQk+x#bN*9VME~ap7{p|mM&$&*J?L+-fuVx67(Ks_2d0i>#|Wz#Md5$e0KQC%if4tZ zMJr5%%L;K5`{gEx`0riZYj9r&2^cad{P(v?rUn1%wu(`Ji#y^tUg_hx0KqJgJjQTp z9)Kk5F4|47N9(~)h6&$xvWzwbDbCDI3xuiVkS(};v-`;OOIX40nENUt z2fw}dyE-*~g}&Q(>GAqx`(*1SZe*;9Jn==Q|4l!$o!iq(kbUq0-ov<_YU91i(x+|o z*-_N5Y1}pB89iy0p+8->ePz#S>$GvSK+2P>?%VfO$z2xM`0lr`{8hA{lAEd*;PAz6 z0$HPj%e01E|{5K8|Q^G5&E}Sf8)DBF<1 z&m(%^b zRhOgcfA1LZtJL!c(`$v#mIuxIw4>)h3LY^7$tH#jSqw0ZrDrVF!^+5kugIpmiZp$S zjeOpsn-6N@iBIZLynrHhiqvW3QVTL1+*p4lMthBB zhKNU2iui#=sTHGCTl8d+V48Y#@AT`;atRO#Zy*yx!J3xdB(fJqotYvZyh%-($%c$a z<{!8iIVPz^4kPLj!KoDza-wJ9jF^#S>CR~8-Y~2$@bk|ZED>bdL96MF$Ch~;+xb5= zHKg?NEkrhu5X?9J@T>b)n3m8FAi*k%%4U=+$6)9(TARNB>f`MlW_S7m1YSJyHZspE z^-VMlhC5luH2P2*H6iFOKjsfv2htSFg$D;)xjt5oge{o2e z$riy5Mxt5$JvrwJcK2DlvqH2iK^}ble6wj{ZzpQvhzk|)P%(XO-dPKR&>2e3;GXv6H&3QQ-X zr8AY;%gI)+YNn?n0YFawRYXuxQES3z&_zvFL>(95h4MJ`+AaO6PSP5$NjL>=Q}&Pv zr(aHHSxV@;ri%?+IC){*^2iQ)&D(cgEd2C)mDO4vjWj4jD#FDZV|o`I>DNXnn=JI@b1od33;i){VN@$KwWbG z#c|*_24-r{(fg2w<3I~pz-Y=Vw>Mvr)F#X}g~#MV`(J*=G@Q~Lm4tdyL@P4AwNn-2 zt1`|P53TcwG3p(0igb1elTYIc(FU+q!Q!m+F$Qqba(iZRsD37Re<&|V)L zzkFE#T^2>1n3}#5TO(T>+-EW+cl$#LxhQ5%JbsEdB9T7ixCZVhTgwjq{^B8Lkr7%L z#^=5_ZR$oEmCny1sQo45s>IXdDw*p#7schVkUr$Qx+Kd>iZ+e!NK}I#Nus>$FxrS; zFq)Z+?Vy_D6p$(coIvDb?lS|j6lG)YejgG!jEBq64hI?GEZXhMs`qwWkm6j@*n5gbNK0~`qxsan{n>>s*(m$#)Yxw{bCDR3$)t?@V z3+?cd<}Ujque6xPi-qlUnDULvV~QF?ks~w#nu^?Q)qz0P*8@5*^La-PT7k&va3ph! zSAUiOP6aHvhGA-GOH|6-ROG{b&aoe?v78D%JXN%^S(|cI!5pW?~GNph{0C%b`Bm|^;U)Rd1GZaGkMK^R zZlY}^bG|J20#;`b9bxqO!+T3l>aJ)$>Fr{>`K)`R_E29LzXMRZEb2qeR)|(e^g~xi zy=zy#5rjR6JLG4~PAU{Akv_~mlwAdbgzEr%VYR%B3acetq#CrE#h%rS^|xsZ!#krm z^^$f(&xL)ajexfs0=9ih>)|tZ?z~q=^Up=^ChwcyM2pfpcVA9Wzc<1oS8=A5o6?YrbwOK$Lw> z*cZ&;xJ$XOKSb*{QN;+#9tnSLd}Q3qz}RhDur|`eE!5hJ;x6$I8`5dAe-{n9Mv0&8Mxe4_dhWuQBs(9~nX4=I7v~?m!JpcHrR=fW z{?hc4%?X9XQ%hiK_&=3JW(Zb`1ium-hWkg6iq!(7`c&SvGvBszk|j9#22<+ZJYf95 zpa>(lN3L4yhzb9I6mH0kMT} z5C}%SNR2RtC8sS7fJ1&$Z6sm(Nm@5L((e_tPkf+Lh3Ym>=0e&+<4U;o&xiv8+OJN% zpZ=(3-|ttWSFmV;gx?x(_K|b@Jkq`4`y(oYWh+Gl!%&TGu8}T^hr$7YBUv(Om^aU` zHQT$wOTN43%j@n2Txv5T>R-e4QW5+Ze2gkfKkv?)(MaXLHrIAk4EsrBa>Ags~;8P@%q)hh`1Xpk^tgJFPzZ&-!x zl0cu9kgRVo;M+`_EFoR7{@c~#-GN%GSt$;r-=63kq|u}SnGgi2(6mF_KlIv=-ElTC znB=DI-Tl!B_DjNk?Ptg2PdC3YX`Kh*T`DqC$q3o?v(W^lTdeef8 zNruAH+}5IHOYmH~rca&wjM;~rj7R%JUYw7evy*pR8{*TXLP8%%XTi#PyvgsNWR(O1 z5M_-d1qDH9WR<)t-{YUY&+{pWjEoMs@1Vxu zir{3Qr+XZOq~zZIp1h(!#dMJPeF-=);tB zv~br}>OVeF2uL~MG|tug!_uDGs`zp+ZJmmzj{`StqK{#r!NAFmMyHOy&(;+L6AKM8 zCK5r>7$hOB?1Xp3baK35$aH2_d^|{rn$jQo2_UZ#JzU;B6KYH0ka4ml)d|1|<=kdOM4nd;$} zK7Z9hIH|hx^cI&`Oeszkl6(j!{hp9Tlama{7?(7)Ww>qlTlt4>>~|D0Gd=(rFHb9p@$vl)%`_x`h~Ehrh3`>7ZkAt|twBben;$W49atKDXDNe;+V5U^Mv%i7X` z;EX1HVc#FV9-HN)F(?B1apd0yW+~OLu|Cw)zl08kN0AUkDCixGBR-}M4vYr^ls9!; z$CV1dknfDuw7oU^M&kZqz+s0n_WSRe5IdlS42P%TE7HJW?g`b|-2w=O017mN!f+$3$_t`Sn^BH4eV1$G5u0QlS6hW>RkodaWA4+T$R@_cHvqi+& zm-){j2ni(iI=T#-|4gOXx`MI!xr`CRK-tJTPtj}DG5?XNpysi!JeW;=alf{|7|#qQ z(-TLQV_{$XuM%&JFiB|-p#+SMxT0SmHr)fe`;Mw#Fgo6Y+H)fVrtSlJ;lGm40A-Sj z9s)Q@ApHbISu2w*V>;P3oEZcLQ>8AQOekOL?RUL8^P6NC={ z%8iI5d%_YLSMU?b!Q91Fe1-`?mhtER@BqeA2zS2{XApb?L4Qw_K?>zqqNrY=LZW`{ z>n}-#!q2}8wrkbOV|3bF9lUm^LzA9(%p#lEr7unIlH_K6kSMxbMhSE+O5+X4c? zuejw5+PndA7Q}R87?olc|gP@sZzLDXj--u+Pd|RLCv+z+LdZ>&yHR8q+q1a;ASz6i49*wMw zx3u5*0eitH;uX%+e0Mdq+&9pPLFWStjzj7L>)3KvdZA3O0Pz8+mKu!ty^3yFtYHv? zInEdOfR^D<`+&Ye@8lWzk((2fIPr7?g>7?&@A>vI>deF802~WNXgaU{VO$_kN3|+ z)14Eo0>U0Fx%AC}RCDn|y*ilMzOEg?M!op5U!_%eGql2?tQ}$5e7C7pdNcIQzU`G> zJC=IU&w#XAnSYpyMvZ^ivQnOZ7^|@?$B4FCk$)IY)1A0lfqz)0Rdq8m!y&63{mj0r z9lgbTH>XbV1GdF5=@rwqAM1g6BZd{o?*Oq>{xy)*D)0g8wk!Ib8J)2(Z6Axa73l&r zYei@&&Do`YZfJ*ivfB0BD8CfowpDuC`MHsI*&EoZ^g)g{*VnU0=YoJYvKZ% z;|cIukh`I{RO0V7dX9XhWZUz7P_pjxd{E+vc>t2TgIs*CkPu39^qKJ#`2|4zRQP+* zXwU!ke{+HZ;15PT!D0)s*NtelgGN9xcW~^**x!R>55&&94iCiE{rf;$>tSS|El(u* z;^vBf*el^@aqzT3VwYtkQK1w8M3D0YR{;%x;s$rI^-3eZ!iPM zy%N~6ko8=G<{Q$on6(m_1(fxUar@3e-%{Bg;-lS&eOhR7_;FQXw-0l!xIH95%M*mK z=(i(vuKML)a~=1J);%-~)OrTbDYeUk$SJqm)jC($?lX8-@_`Y%PWvwIHv@jpc=lRk zzxlJ7Hl8f zlf`}|tM^wd8K0XytM|m;Z>U_o@BjY^S1++LU;Oo_Z=W?bugBlDXg8dCv1W9u{b%@0 zGo9yu`;R?pPp3cqR*HKb@H0NY%4PVASMQC!tNbtFtM2rxr{TLIqxrA@OcfKUV>YJQ z$polKPb5#ER0Ixk&OpVYW-6E`4mPLQ2EWW>ywHs&i(@ z?0OK0Ei#4m#|o$|vh5L@0dEV`v_nR2U{}q_bgPVfo6JtDSQ`YlsFY-)SF4bob%o>s z9=LxWZ&XWLXr3cNVBiFA)Z|7#$3{+H#pZ@k7C3XoCt);oninJ}+a=*jTjOAEU%0NLx+Vvg!_b$$@|Sokkp6|PPHrx1 ztg9QF7E%<7<>wn0sUw^45s>Wgn;RVRG<&wa(3fcPO&JvzBlwl!waxS9wDoGMZB2l- zCiDHJN7kM!Etvd4RNE@io@VCW!HAyX{-c>^x+@CU;W*ij5_3ZpA~z_=v*Om7Uqp@eS{^h#QYCc%$q|Dlc_sA0!vvh%HDaFvPMjLC@x&W5n)g)1?=3U~ z3;-ueAJzpgxL; zd~28!0PA%NC`g~wX4h|1Y${@(zYB2%0CR3vW=L|M+JY$5`s#fR4PgG+3D=-fu`$)l z7soxu$c!=Tl3RxkdRC%gTZZ?&o@O6?z-6 zGjtJb8);U!cD-3h$b8^R6b9K@#c;pioAJ6s}x?!$%kTY}arP+#qMz~$DXD5g1 zVm1G`Jd2X&B3zs)mu5|NW~5UJ(yIS3+Xyub%}Ub?F?Zoi-b1rk;Y?~?NX=F{u*@Br z7gEoNug{czMD6>h^=G3-xc+Luu zk71-aP8?sI$amQ+$J*P#(iVC1BVS#U70!i^q16?#mRHWo8f%QJj6+Jk&i?bZ+Su1c zUY=SU7q7qYx_At@+RnHB;jk^7Za6JgCkQr+J7@LMjtRy54ihMAD@r}M7U8KxsIqB= z<1CVNE@`TSRBc$YJ}>RhbrN1NDFVxtb)UAJS)|fNVTog#Jy3_PRt;}i6t+k&5zBd* znW|-*CEgNbwzEfIsdkbyZ8|RPDf1+|)ow(0J;FRvbJ%^7c9}sEOB56ftfZ7V6x@96 z-boz7aeRx@s8gG<6I~l;iZbR2X3#QCRuq#YK^)g04i4c3d<SBM68?mdJ%<3qY$)|!rV+8t9V3w19$yad^wFV z7D;xU>_w;&frU@@2BAz!zOiCxBC&`>DKYg(sZ*Q?6JZ>VV(13|quRk_zzW(~yuXk_ z;tDW^*@UNIy%P@qqIm}@j&;CQbTPL}r#Or}Nb(@wBDpR8R#a0&L5e#k=9oy1JGY*u zz@)<{IeoNEZqG34_H7A2R$2r$fnN~{f;ykZvVR&R|QHesD zhC7Furcf1LP$WevG8R8}XqM*9NTO@2@!22^LJ_f?O&(mdF+nkZV_~AOC+|2&yvKE8 z?NG=e4I6f9n4U^S2F&v8*eYi~i}vi&EjfNrM({CI-mC~(dD266SzFd${jx#4#J*Q^Yf~@XfY=a4Muj#1k#=~14Ov;u# zh7@}_N#}>edh4ILnsQ=F$7(BZmDDjdvh*noBeb;iu{of63{I!BEJ#*h)ma$(BUcE0zvs2P7HvG9i2A$z*-`0_c=^g@zm=>sV$|aC zqKnp}DJ)2a{)MO{h*kCCy;me@A0(vY;*yQ+9Jk!jC?ygTc)1c2)nzpZAA0S@afEZ6 z?x(ltt8R%{zY5a77c62c`s}Ol#>wPE+VPY}KM%?k4zDS1a5GksWbkxLqVZp>x5>Tq zp8}7OG+y?(rZBoVtWCD#k&;R>!}=!IrT;3^U#G?*+RK%Inm+l}?GgMGl>w-#!@%;& z*T8eCWSvo9xuJ_nT{~5hWL32SOzM_g<$C_`$ScrkuQnk)Y6{psWbF4Lp3>z3s&rCq z;5&VLV8b&~zz_^1KKeHjM#`W#K2|eUW2nK?NJITbr0JJz_QK$I%XVw-m(0t+vlB`s&a9nE(P}mZ()B~PM`i7w)W?8aJWHpz6r0uGNm-c* zNZ^T zQjA>Cs3`IG-!KP;2%qTA;#m;JVK%7%hIo+s4%BL_%Drk-3w{;GvX=i?#1{11O~h72 zZ?JFZcHF7kGn6|{O55dr#NTa#yG?5e3UK#^nP_FjvI+0ChQ;NicdoApvl6osw-PzM zEbT1CEUry2dcO`c;vPbgn!C}FrKFdk>&0wKyC%7u-O+2)XAU($&Q#6qMvAxIm`@qD z5?e7aOT4LMtSnH8Ubc(PMF&`|>_deuuV$#ok+e41tjujJj~Oig&p*0t9#u4vZ$=_~ zbtw7juQ45iQp28e@FX@8XuoYrr1TGex%!J{`hu;-C*A9yq4n4p?ltBu-^!wV!^|#- zq^`W=k0jKtypUw*(1uKo2q8FWOhCD-8^@RiHkUP)eC4B~t{px4eT<{-6-8{U$Ojtk z8&|R+6Ny)Xg(HZ;Ho%@^9CzwA2KF_ALP8aUgGfj~}#U6O{-t%+@E2I5dT6 zQV*k+EHz9(f<`h2LAL7)G4>Z8y)U`woKVV!Dj7M2zQeAkL3C}v1wKG#ZN`gIw&>{%{*ZWMV9Uh_S5pNdTZEJoPOv>cI~w55WJ zLe9XtQVH5Op={mYCl8sx7`0lpTIa8^p5i4+Nsu8)6D|n696*)l%|pp61qw)`DAMv; zd0#rW%GI+BtS+Rn)AWhiNJo*IMI@TzFDKX?oBNkeIbf?O^bDXSB*rY!!(|c&1mlnk z?n9;y4wYC0*c+qHFzxI(mj02%jBOQs_rDK9aLhS|*57bJltsDwznE}bpG{iEX+hJZ zab3yGyW_=)jqH4o-&mR>v_<;{ZcjGySIE0V>3vV4)z;~^#1p3ZZb{qHCJ10gFV3c; zqjbG5)avw%^n9Ek-X7xDe;6d!!num8=b@OvtPU}6$ap7cjJTw947UPx?sNp(I#@hR zZa4dI$pjpYk!C>6iYKd|Ol{D@M?j4jf;DOqgV^}vK7xILZX6~fkAmDyVyA1e9`=5A zX)@SmcIKRDmYB;0m@Sf%&3SpjEF{m78+0kmlnM)s_}9o{4hpM~nn>{A4FUe^=0N6X zH4*H)@uTPt(?>n8ZQ@n0Y6@)ThWx!gO5$v^<|0tNFx>ay`Q^sxvdN@p^q3U&ta-h) zR);g5lBCJ5RiJ=D=rx}4xvD6FM1@QSoo;2%ig(th=AFx>RRY|%i^%G!E14O0J@0Dw zIm-ve{OY@MKkWR=`{BDuw(7R(nd%#La>@n%8p2wYc7&`cSDtvcBNS*_;%_y{?x`JP z%iYQ>z#pVkSrUe<5tqYtj^9LHW@LaMnqz0GQ6@1TM^6JTnJ3dG?C?nnOql4*xYH27 zmscg{K&VOI#*)EZ8v4?(vyo4E(v0M9s}Mp{ytl=m#AjSCK0vmBRNwd4fMMFzaw17b zLu+YcWl%-oIJV(g&L>gx&CO*s_BJWJVkY{V`r5){pTE#Fn{`d`DF1_~S*34w=F`?s zCby%NUo|N@?uT_(Mm>YR*w|a(eZIrO$EeM{(!3F)17HsV$iq%Sk>xfKgeK-I6bQIz zY{H9OSs(H*R%5xf3bL3eOPKdVJ|T8dJa!CN$mY;??BYW|CihK*{BL-;a_pEg?X*Sd zcfTxG%)QrYC%>JGD`uOr^~}`myjQQ&Z-m-2woRT#+yQud2pHW=n#q`SjJiU0J2i|O z`r2ZHTuR8iIsDTM+wP2AiRf15w0cIRtl35Ut}soffw)5F#ku%ravS0xR~sq*Uq`j4KVJz8CH>0uyV+ zC0jKvR^SqLK>EYkK?rLyw!jcU!pzuUNE4XiDfn1G%bN%2+SBq1p0>KOIkhRf_Bij# zn`wE3e)~jIR$ZY!M@>SNb$gLCkT*X}^3&rS>HiZ}mDv;*MCqb4Q{mN;YTRtjW?pUL z;4QQ?Cx3p8+{Z>eAcxZexEK%@zO}9-ZzgZ1f0Q#=cR+AES)P4g?4dQomtUxW2oCJ? zswKokpqjr#xm?&b=^h_D3pZa}7nVytM(SrOX`OJ8n0t7){II-xSUStBKvpBIa;&-4 zzG9A)^~pbxa(qSd$tKB31=umV--%2mHLZ&4H)0CP`IJR6lkka_v3m+}fCSq3P^u5_XG$;XJcz=;sY%;Mr)S0U}Zvz zU8c|R^PQg8XYVAsS`K${q0Y+D?bT{0Q~STTg*U=4!Aggj^YZXJTG8L%q(`qGeP<|7 zy%OfuVOX*4q%UVII`ROCTLAYcvL#Y_y_QRgx@H4E(-m~;S@eA6{M^~EyUDxE;}>+} zoRk)tht~z}cT=;!s|hTW6S;E-55eR`a?m_EpWc7%B$#}Z#cuOhmD2|()R?u3_v18!Z@uX+#GhorQJL~+jy4Tb`HT3*vz8mh< zE_O5a&E?mRG;9g+uA3vrFWL^CQ>VmBIQkNWG6u=C*YR;`i=!~bvBbL+W(kY4&nDP; z464~4L*?XHUE`>34pfn}_Frl;QlDUxm^7^uyIR(ehT`53-W>I;^W!xs0h|9|D%RLE zevg@=&p5F(C)hw}^9tbdJ{(#(8n;jBVy78xkTa_oVlQ>4dsMMTUrlfvFP9<@9wy_4fXnbbO_-#g zdi!*d8qbWszqL2*?TmD-)cHIG3#vusMcC;GviV)74uygN{UT_PpSL<=s&4k%ML0K& zM@-}d&bB31kMK94xg(YSnb01b~84aycl{t#;?w3 zBr0;MV_$;KnFsCdWuF^pw#jYt!bs-w=(E~n4e>{L5OYtEYgO5LFOQgPke#LS`&THd zJ8w;q^9Oe)X-KK3Jma%szi16Tt2JJj{~#z^#hFf-fv#&&h)7^>Df1h^ctoIB;C;@0 z<~?B-eP7OW7j>6)pZX~FrhAuopYBeLL!ZHV4QoFQU5!ZYLrZ$J-L`a_a5~>+Wz8#*8PD zC`vY>Xpq;FhF=qv%t!L=|iC!Ht0^-?r7D19`BBfETFL z505>}bp(YM&MT&&?Vbqn4HCR*(!~#WxiGB~UDI>v`*QbNaQTk|bUQW5A3Hlr6UN-7 za(`3s@l5xdw?Dz4haO<*4kX_tpx)b8z_eQGaeLJte)EUn`~Qd#k7UxjKUE4+PPv*m zV5Br+=CAWRVo3B9^O}a9y30oILnH1%U@MC*GgihwRC~(T{Ot3owgXeKP^7TJG*t1}*$? z3wnw#3ky7ou!EK`4Vy@VEIsjirT5gMkCHumH^CnYYp*Qy>9j*UY~zYJNm$a&!+FE# zQ;~D3A`&b`aPUAU*wtju(atStQf7t8fl759g9ban)F5mDdnH1`LXKhnc^N*Z1gOij zOA*_t3tC#4zFQ9IxlHxF%F%nB9}sC$ z8f`1mGf7-re78`p+Z6s{J;`1Ns_`R7ZrN|zKun zR~W9`=j&^TB10CJg+5FAf_6S@rzx9NxGi-Yt)p?Ew^rY41G^HoEPPi#>yL%r=%!QJ z=^ymSywmO*=nTaB0ENt1X6>S0z)6^iJ$bXViiv(&OGOaFURi?gx`|t39B{?vIaR^RWdjw#(M5a}h8< zFMm)dIpO#h$P5XkMWJ^Z8@sFk7s>7hT{XK(H(58Cr-hOY(k+|kRef_=E2#pZwptH! z#T73yH6uRevLUaQUcks@6IeoQS2li8|T|8U{MYaodpxTHy&6@Z&T76P_zFas!@U!a1i^ zaQ>#jut&uv?MC{%Wd#OT4cV@yA@`_WqoSJE?sDvHs+wFwSgvxw3%d#5ZtJ-u7~$(7 z4Pq%UUy^sg?1mT+hH@*9eh!=-Ggo@q4Dq6ITfs-gW3*+rZV~qJ^dZ6&nx2Vfll}Ji zt5<1Re2TbHxue^+y_?>XLz9Z2C6$nng(Ig_6r;jZ6z?pDK-WS3G|v~bAQSyveUcsBZt&ST_$-zFN@DB#|J73P8) zLey*=(<`Hmcz8=gwU{Yyp=xfFq^?*P`$np6Ma}k0=*ssYf{{Xb(0de1u4d+th{b!3 zsSRMa48y4GX= z61!EQdlD2c(&qiKCZmzyl&aEd-9A@qyuZGLoe=2xk_wb^jvlLY+`t#M*xcisyBU&{ zKr${Jc&h+7S1S-ND_NEk8#1Q(!t~N`xF7{F95!?Xoq@r8i*t!rNUuCuaTcry>IdX| zMRJ8ZdwYztcGM1W+tIQUn zQ_Z@2LRzYfX(Z*c^=N(jhQte6!}_2X(+aG+X2#F-d@bDcc<1y9htw?WoFD!Z95^^J za-c$r_07+dD5<@1)*7(t(J#_F#U!))i-$+40elF|T;Mg!#~mIFn9}(q_fiSak zf3P%JI!v?xtpsh zd@LXDgH6()k`FgKsxxIqoambn9fa>5GmN&s&YoGLk2f1Fedk#V8bU~lUUUL~9dEro z&$Ijeksf#&xEP*xcU^x$)nV5-WsUtf^nb&*{epq~guQ;~V{4ts3$hj_I%JOnriG^mlFmBgp0^T+_EMp_s8(Y z`(KQ`Wl&^6w`hrL;ckVyH16*1?(Xi5HSX^2?hcK60Sz?XSmW;6I6S_Xc`^6S+;}lj z89Otw&iPT96;V-V?_BF5jsA;GGP7`5G@VZl^jQ((mj-ktv$s%Mg|4TJCs8EtduWY8 zZ#8p|C>rjqk}|m03SkR<$!_UZ$HLAJ0aiJ#vsX3yTg<{MgbtuUimZM6l} zzEYKrAy1}+Cm3oI^3m9z2{Z=C-&N=MIu(TwXQ`;Ryu55Wtt2F>{p0(+?_!ekZ>+Nx z5vEPA${m*;Ygio8flVCnH#{$V7)FGZ9bXf74GAq|;6xmb-wIM?;G;WV43csdo;Qi> z%TLg1MIItVKIQxH{{GTSoVIqq55;$;;#bnjojQPjan0vQxw#^;d(eR{==s*c_Pp&x z9AeBd@EfyzFqF7!pvsq*F<$lp%(IM3h{4s9NhHG}vtr%eZ|13b2Wbx^xrbSwRDwNc zhFixc_oGR1#r7%oYA4}N=rr_Z*ZZCSZ`vEuTko6ykU*F3i0{2*l-H@KpY-_BLG;fT z2suV0dR!0Qxi4^RT=3k$iFeAt*-FS4&lM*wcg}jZHgBK!e~m5RyX31sxF!`LUZR6mN2(e;aoD0&gCV%n@tE&ql#>cv#zGn)k2M=K~CG&^&5@I35R{Gq;awU-1p&0Nuw{ zp5zubE2nrY9%vp6x8)=Lj60opCaIgUPOzJpu2zOJ{S+ zic+YSSSa2cfn#?XHd%Zk^P~{&V)s_lJ4#qJwNyOH7*%OA1evJ$IVB625FLBa61cfd z4yqVsh-}rcc2?OG&4g;TY;$UKG6N+!eQp_m2>7L$;X7+#m`SI!XtQt`Pi{eIS!59W zmDAf`x=k|o;|8lE4GV;?D~i>N1=7XG#m($myZKq6>U$UZZ$lJ2Vx?JJ6#j$4Q_|Uv z8oEO+XHti{{PwEFhi7Nm^LKZN^L@w>gFiDLhbJ?K-F)M7h$-v>om|b~5eWHqP!E{H z>#(+%b+ov#q^D%HDO71XwZ>VLFa^Z{gD4%G(wx=LQWw?%( z^0e)*r187|pR45`s+x!=-zT)jff&9tmWXkYcO`fs%A1B+F$fPI=!T%>^$KcvuO;8h zQm>QC`7N7xe8Iv3xB`4ZW@1d_Q)HdgMh&Y=8uR~#8v-bp%jtb{#!&{?JP`Y#VS*r{VM>{BZ0UOUF>=F~aog9fYcKp;PoyqCZEfcDyDIG_pgs1is_{{Cj5NQvue-wgpjv#Ujr?;Nfawq-@-;L)&wvTK+6_Z1ntXHU)LA$(KFh{r(YGPjBe_lNvTg%tp^kyg3H@PI9uVG>i^i^gcNcNA_+7w zL04JwRMQ}el;?2;%Z1AsdDaQ4Dw!Oa4x5vid-~n6Q^)nT9NCRBO^Ik(-89{icDgzv zZLEy;;7*ia8qtNnWI7KfX~B_^#r{oj|BAxMu(fpTh`XXTvS@L~HwfV%-MBY=KaL&? zmIqIDsj(Q1)T%q$#Nz-=CwYZ3~R-K8lz0q|?#ecVC~qOOjCWB!9{ukUy`BhQOFnAq@;F7E}Mu z4!rKT_+dZ<(&}oe)6qAQ($Oo;3;$^zRKeTN-e$|lIdn~FZSd-w)+838+)9eqJK?Ue zEh)u}YM6Sc$mJ$oZ(7PojDuvTRkJ(A`)BY_>?31=$uTnD8oQAXOq1~viqOj0MiA!H zTnJZ)(43Tk3>uC&rsal-*%ldCZH;XIq#XeqgK6`jBBk7uDI`fn>O={WYmQ+XI+*?< z#vRkN7#}d_ji|dX44TNoAAJ8u5<9lnTvi?%2`F(@D&L6c2ugY<{YbKm;g&(>ElL4o zTysZPFWI(b$CuD8y)NIverHQYx-FkSdB4HaLy9V*d*&e^n>v2H8>Dlc_CQ*6Jwb7i zwz!v{EEn3pe-(NoRU~F*pbwf7dcMXGvr*})cs&XErr+oJtlIwSB()X<|@Ea!e7uk8?wwu#$ziMGW7eXFj^6rJOs4(h~*xT=x#5WHh?4_LqKhp<%aR*E6sLKmV^O2 zk}Mqq|9m}_XIZ=nT+?uJB3$QVNf_CL0GI9{3K(HrMR*LqIMTCiuSfr*zN*owkl0#j zeT2!zlo@54=1NIa7S901HZdjbw{`ajtb%z5C4|VIX?1lQO;Nux9Zj08|B)X?(F*uz ze5HfHyo{gYvmt^v*57V1M3vS6iJ_TE#Kz$Yx|)oS5+F(dCYu`UnR@_YErZO%D$>T* zLB#?htm>mZEMA`Y&ebQu5{rA6(X{ZJI7Sf?j8UmX9CWLLP;$ydJ zp5ovVWWefi*?Knp4_ZTaxAd*1Ty5Lr`M7WEtz-pGL>q&Q1`>yHmUCI-!$cKX(+qwl zdMRC!zb$*GFRDAZVlVPC%Xsd;JE4g<-Sk9+JdDg);dEvQD{`nouJJ$}#4HNB$i(Y*p?XJ1@1UtT#m zwl+Fs;yxyUwuPTysJeCt{}b7S9*Li@#ekM4#&O5Oh9Wht!i^FZ1r1;5!;Z_KR8( z#b9!2Mx1v?2UU{AMlINdZOQc)gua0f6d5Osasti#x;;C|f^hMmoWieG`Qb{hz zN>k|`rS5g8udaY77c`^I))58TNhnEcDbn&KHrn!s@YAt>`XHl}Ekp-H0iJf(2Zq6e zR>|^L5n@_xUCDoM2{Jr{JWHK6LlC{GoxlB(tPKIR;YGNd=;j+K%Tzl2Py507U-sjF zlV(^r*x9-N&l(wS7G~D}wm)AQnJ>^x`)9|0)5su~V!$U+FtD7=1Y3(kK$R1?oF|Hl zppnUli^z!Mk#<5!Y*n(Mn`mRE<{;ZfNEFB4VM+*Nibxa(BBF{w;e;-pRU^Z(4ZQYn z6+D8j9-FcSkJR(rP8XjwA5Qu*2vEVWA!r6Fn;==sB^;Tck3GQn_YkGJ#t5oU12Z23 zBS#N9GBlD#Gr^U?I_uwN@ZP$b00X`sG=bHz)yDRGr#o=(6{wJ}ucPVm6t$iXSqcla~LelxLX%OYZTA z0F;CDe=sOHt@JtTr*_O}rn0*iFQ4y;XNj3c*4Gk`UMB7xPh!pmx^{&3L zr{>}7LCsrmEbeQfV<@=g@Ip8}I6CpRJ*;DSk|pGYrD~} z7mKyj9epG_E?jYv6P+M9QqdIEtm7@yjq1qfS5$72m1|;#8x_cv_eg$b;C>`>B(iiQ zQXB%hf@9fp&19fqHkH%G)Nx4mfEO|d?T5Q|ER5+F(QU)rSR641SKPnn?;In8sdD>` zExAT>RsuVBaO~IlQ+%vLaun_^9)KH%tf>MyqUkxAr~dhPd}k&b4^KMbzDMo}Ze~2e zg{SKtkqkwOIBK!JR~O$Ix0*0l9mO|dYR0@*J|%Y`LaliitLhH(u4M#eZZZkJoE!~X zbQUs*;W8OMcy5+b?GrwKosw<8 zxKU0MHSC^gH4t~ieL`{s%-IyCybz$46z(SvQdc*okYxd;Wd_;G54y{Tgxl)}xtA7L zHRM@+vo9}!@hU+`!}U?2M|x*QS5uD1%Z#^`2TfOse7e1C`Q=B114_+Env04sQ&iwD zjEb$l_(oI0X{8pGC%R`?v)d!;c)o!0ZESf-q-u)>^d;5?K9wj08@y=aXJC-5{18Ch zl!`qz8LhnNUcdHCIlP;NsI4+6yeczZ&zuQ=l7&d4Q?FhSRgN!1gttBvX8orjr|JQ( zc)CU=0Et{V+{QKDbz|AWm$BTeS==AWR)w?)VV|-wlgus4XX0Ul;Rdx+X^=ubtt2R~ zlNmI?ztGLPWS*)!CH!;h@%&>-JnMc|ImV_k@z|!4r-S-Wp?Wc!#EU}86LQK&+I%s3 zhgq_Cx2S5JorIMG2ah46(kP~S-umd)E$Rz?stH1QF}@bq?Z&?gOU_Rn?Y^xJp<)wbQQmgDw+tks68V46ffKi8VIk|6>$p75$0c~(TBCS4rDX1O zkCAkbE|2=U*A&e+YzZOMaEuCggU6XOuszQR4zKh63b~WfG*^hEpn%0~(Dfiv5F86g z+A7myO^$&@f$`BFqr$2(b8`#I&uEg7dKoDuBe`Vd)ETd)VS@277_+1a=e-4`@!q;N zOyY66k8ht(iD+2@Y5W>&bjAEY1uEMk6V|gH{ZeVcWIWN41a5#<49m%U}|+wwRxHT zG(UmU=AF?&k4X>7ZB?%uuRhU3tjkW2$GvE_eHjkZ>?rq={$83&P)4Y0?LkddUS_MS zGPN(NKn<*uCJs2-4<}PH(WSGw#MU=vtOO{^Nw_(8K-h_Nw5lHq)M-qYS}`R-T9Dq9`(imO3r95aq58*G>{9_NqR8jEob+lb>`oxR z5y5Z#Xw!1*;`Q0HC7XF?rD5m4D*t99TNihm*2FUukA52P zW*sTYEs0Z+)d&ZqEt9eA{?u3qseN9aKO*^eU&Muh~bzfvpo_Z&HSa=6_SqUyzZ>My&Fl;xUiXPI|!q zyEE73ssO^x(5R3JfvzHq4Zj_{i7Ngnqifq_$g-xvE`dUK&8{6D?XuHAkj$W2w?pB+ z+vG|3)48*9!b(;%Whvb?OE!s3}!H-tY@%5JYSpt0NI6fL{GB^$UGTK-Xc znA;7?&P?x8G~~aZoo;vg9AcdN8$*S%By(@Emj1hXecyMty7Cs=T2#`s;sfk(_JLk7huvO_(s~{cq30GwxF6rdz({d{&8#xnj*PI_!z2U*OZ?0`qI|0b`VrbJU1(< zSVSE_)nram9~4|L(1>ky4OOfhO)W$5LWaNRjHDvX(6mQ-3+PYz5mR%Gn|`Y`q5lC< zd_(gQR4|8FKo7Or3EX2wPJ2ox3e6EhVgrhE0fuqW<58USC~ zg_SU+x%d!@=#dn=35w=O!V1#XU`MmxjUMM>VKl$V@ii$(p*g<9GuOa&Qvw#$xY87K zSNbf)kC3;tR<%4}kr1urLBN65LG0l2>gF?je|~{DVAq+*vIse*5x}S&@pyw4zX$s! z&0x-)C7(~uYeOw%jd~#_HAnYCVW4Pa{-;Ia+=EhWLd#LDovr})!(7{%j?E+AaPHar zC?=2Zsm2c$cL)`dAlwY$a=1i0etIP;p%K>iri@$2oEcA&Dp4qTqBMJoI%XnfpRqZF zkPKAS!z2DWYtot+U%YSv`1;Ug2@9j{JbxuS<}U6rx-x*})LB6fCOYTH{|Fbd5*)0I zXt77j^@{-NlC&6@j^oVcxb>W|9JQ>qoINJomQyU6xHYj`nTOdx=6)}#gQ=su=nLp1C9{6!8?v=BCtQbifznn{_p#%eh*ER@)a1E6Nq4w{ zF;}C_IkM*PVI%AcS$kyfKzmc(x!pgcGvz5+rLqpynkm(MRZY6HRHE=RKnH>2mvhIS zvlY)1SCK%Gpo(Q?o5PZB1&RO{Uj=Xq^+F{c-Z zIMq|>h^Gey%uqA5b8|sFIkE|qakD&gR(K2_&bWudrsy{b2X`7?VY_h{^W+X?t5W%m zZHI^qKgsnpt`m)?NN?%d=41sn`=TiAx|LaJu6ZO1;xlVxBBjqEVdP{D?*9m*uv6Bh zIW$v{SyMOUnq`OtOXutvzJu}j(P~Je{tPD^W?zPUq{VvLvj~ug$tf1Q#_PNA(}dT! zB=vl{rr6L9@!$WRO9m4FB{0a0Y@vLOnr;FVU+PBdR+h4-NT)Hcb|LusbvB;lJfv%J z2J~<14f~9i??b+w&CpJ^Oa|mnFGNxaT4+-?OgD_V5RL%thv-&wBGKR^h0F({(B*}p zFGoYPM?5}o0)+Z=ltA6$!?ek=ib+&{P{dSZuugjp{LupDq`J-z2X{T{XSKov$Vs@# z;;fl7yZ|qJe57x<%Xo%t_8iC~2Hs%5w*~y7FeoyuO9}a$;e^oGCZrftS>O}_V{o0! zXU&I6qhe2p>1G(4AQn?nj2nDU3|XIKb=7#W5dd{G3o=&` zKK<7k6|@dSA>2zMAn#$qlZV(KsqPHu^G9jThChC-)ewvG&w6#%Sj^;`QbM5}lu8op zfOLyS*DojMU zh2r33$k7IsO8Cg0ZN!WCKCuKS;v`W%=zYE%JkhxK`xU4$xB&<*$z$Z{pTUNad;KKf zH*YxilHWcM)hVux3X8Ztp`(U`$Aag5&}F zLL`WIZ?NWjvLBEzW~iUwVu=$!29(Wj_i)4Q0|!(&Qp_Ur1j>^M#$;o6!<}e9wj*w&WSoLyh{ItW1K=z&2T)AV9k(NtnQWjP_al^} zgl@$;@wjfBTw+R7c6PQRyPMt!HlkfWkQ~LJKP5LR4z{*E)o-1ck+|-hM*O8d+B!2P z`p1Yehx*3=8G=p3p-+f}ZSc)_DVBte60{$?7upmjX5NWc!+V*( zA5B>Bp9J}XU_N;AM?^n(J|IzU{J+#Zhp*R|z%N8lU5gS!=DMQIQW zdNyP?VcCi~x~ABQDSJZs;7OPHvhrkIjk@xWKAJ-3ANn?-E8YEWMEJ2&u>1Wj?MFDy zHNz*MrYZDCIEVI-&}fYHZow`kKS*d)mtn6!6twkJVV%AhbMS`IY7G4eb=H`CHTWyJ zFZk#g*b|NO1bk}Dz7nBdz826<;PB((+?MDgAhIn&=7h>XzsUaCJkp5>w~LCz#<*+;AGLxQ~_-3o7LjBy(NlN=C|@cjCO-TnN^9V*~QkGzM`hb47QyA_S>H`cMscYdJf zf?04^#~tqPN8bk$`~b$61oUqk=Ep>8bbk4Z`Xh=hDIcnb~r3b74O-A~X)cZ}R& zPEXix(N53U{}KE^TRCSsiBKcod3`~A`tN)d`mGg&NbO$WbrzJ~ATItN*9_FtUAN(OF2C%nndrzAtGmCr;ydudF?hvQQABvwKm|S>Ow3 zIQgu}?)%)TKQS85{s^l*xo9r$_?5lMWcMPdv+($CxbTU?;lKAe%;A4_#qs{x`lbJ| zdr4^iZ(aYN`_C)emya#Gm#=Fcvo8T6w0iW0>=^LMt8(WO`@$CA+Ho-!eXMBoLfY)( zygQTYf)0OhHE|d_H*zqR&jKP6>TIH7lQ#$)ep??n*vEMtr@8VwxJbTBw&Qc{$Zn2l z`huc%mKfuQ022*_*xQgWvX>mNi{+JoB|MO(8JHeY^fi+Wre2)Xsx5;_O;c7~I2!in z;_Hg7b31-)ovB>!utr1z<70LMz)P~}fW*1+U}Y>lq~*YPcEz>U;+IRSo%oJ}y^fr6 zBwW9|&uEJU37pk0W0POXztc?^^}-$O@c@}K=_c@cFf-{vUtM&YJuQviWd5D5dJJ2p zKn(9c1{z=dolxNehx6Zz*iqAJj5~kX2o({1At=w`m5=Qy)>fpI<*j0rLD)gJoSNqf z1T>@!j_}C88o3$mN!i;`AMA^MJS*6fMxOJnh}!fwmie}3egrsqhu-I0C=g?!>N2q4 zQO?kK;=t9IFBpeS9yZz>Bc-La*tphEHz9;hdhqHFG2%TaBL0Fj`CbeAB4(k89S5ka zO&ldP%wF;thH$a%eOG189jpx;l}>TSjuuhQ%F61&t8NeCp?JE}3+{?~n10mtF}F9p z%Y;`^))8R)?pwW+qsq1AlEOi1@?7gLw9)*d9l)CuDP0WEu&2Ubm1i(%*>5`CLF$k$_3?iF_siO%iD4|KNSCvb8+CJRS2uWQWYV-J>2H~i zyqvVQHYcw*~fSFii&6?|s>_}@T8Z~%#ScMFaH z4UnnKw<#0|RYq`}BOM_tR3zAh&=t{6hC=sO!M`$4R<8<0OSJ5)H_E9-@YGJmPtT9J z;3ix$#{4A5@HLQ0MBxd|E_q%C1Kkz-fgJq2a*yuo{(T{7yzd8%`4!X)=9E{PezH8yVf~^t!s)Tmo+nOINrhDxQ6{Bqo9R z6Nb`-Rq2XH5(A&o1^m(l-BLM}xS1fyv%)za>v^$~mcqH!*<*p((ul(?@VI5s6d<-x z*Z zCtkwZb$?CGTl^<}z2Q}6NIqC-eK)*(7*RKkqL*{;@L$I%pc-t4d9BCc@>i3E_r{ZX zvH#DoOe%%Aol3}FAz&rD^uLe!JKL<2fuDC`&qAB{KEy6r@anosFLH(v2PA}zCZK#)iN=^V-+du61OEqDodC^iYy=y4F zY^KekYPFq#V>rF6e6@LzLNC2~vI%oZNG*{zP3hi_l_z-)qh{Z>6T&%Pux(X`AI|EFkDhgjMA?66nsg_ z5YWhB=n-;CUej|*vLxkrPi0i}GLE#lUsuhR8XHm#_h+6-5W9Nnd#n~w!^^mJ!CjrNdDG2EB>PW(Nc9Pwm@W~4 zHCcTG7k4$jMbHxYDfmOjcY~*Bx2r6KeH3+J>9j=mfYK@E&_Gy3~SP> z%oYh!{M_5L@+uuMe}(3B9-nG0CYM5=a#SZ!d|#?b@pFwDUh39}$gV}6<3#Xd;bwO7 zT$2m}V}+PgTN1IAO;*aiaak2a-;rh^V&lkmWIo6V&#EmKEZ;1LQcLBTw`YmS5}O*d zY+1F|oLU69r9L5|cR%r^(3HHX(Uy=^l35^PrNVqvMx(Qhw#|08nCkL#7GRz^9MI&K zo(RRay+~gl!*>m4E8UNqVrCqkgDt;cw%O(4}r2(@bJxWzrutQM?%gpDkn;e1Bzih~iDqL*tr{NU zY~~Ql85~Q&WX#5vIcJj$ny)+X2@!HyTc9Ik`NH735C7__n6#A3`C{>Tv9$YmQhf?GL^Dic)W@Y~)c$qoTm9&XuNQ%@o|`N-1SZnR27bV#Ox! zU#$essSL1kD1O1}`up!ki^k!)%&&np9;aw4H-Y71*@U+7l5ah3uCazfG7H&9i=G0l zc6ai01q|LgWrlWj42wtFh;4^KPKM&|<;p0n*qnRQ#j09&Iq{RCSHhqHGCQ53Zpv?< zgC3IQV7DfH9-J%&DfvV6rrTT`6}~WDr4iR?ZACQt-$~SFSPE!IeIrZul6~FArhy%^ zj)O_iOiF&md_rrgY4phMXN@D7JU3@pi5kb2UT37segccx-!yDy*ejH26RVkTz&tbP zEN2==o*v9KGA2!@|B%-{b0ac_sx;;EbZILQ@(ohPM_d#y2I?ckWfRAiG!o2;A_H>cjpN<360{!%aK>tr(0|tp){A@61OUjpTYd&;$H3* z*yC5uruRY-b(WEx4xRH8$!jbq26VfDV=gx;OHWa1dtgf1dx6|NlRFdDvP0TfYDQ<>gUqMhf4}62^WnIw2frN?V*AA9KO}>EFaAUxWxR zSW2A_)Ov5D&ItS=?gS&x%+rjf)h`jkyn7z0!J%z6A0o>YgB)A)!Fz5uR8}$3(hj{{ zz}?L;N~HL0IlK9XCl8zA|&_AK?z$@V1!d!3(rIwR`{nuyh>E|7Gd^cj*Kx z2PX&X|G9L6g@cow{lBf{MGyRcBt1ee|B>|cRXj3ud?|XQc}Yo6D4@uG22m8_QPh^t zNozynNRvd;GdtQdb$;6e;Au&^Tca-`|HAbkd_;Tn9{`8Wh&?88EWMJ`;EL>bN&o!( z+WNM52sJhy+fWkii)D5w~A z2j_Q8*;l=-`&h>IjHvw0#+T1HeK)UU5S^UhK7WJ1w;Tp|ewFosn_~r5Ln9teyVlM| zfV)x!_COzb8F>E<8$$|ggds6FV$5edd&urx0`o^3n7OkuSSiY>=Yb^A0fUIK%oA#G z^som*O@IilGP{{)YJ+nEFHKMLV#xYKDqs5|pu7yW(hox-42u96SuF~dqCnt})z*oJ zue_oheG=H7B?u3X3DK#Bh&x^20yP^ilOOKF>G%2mh_miJqohypdk&%;=UcaDdD}m` zJS7m~<)&87^mdL`K z8`;q*6qmNz34|)qmsmA>#NsrSZOX zY(%~{0crE8Gl|GFNV!3Zo)p<@+K_2(NN#67ok#uTknONWv_{mGd5QI|H$|YxWxxCJ zZ7j5E#JzyW968IWDZW+Eu14XNn4P*&+U`Tl@zcn8o-LD7AS9>kr1N0JPdCI)QQi(X zf<(AX;tA05f$3nSxfHu$;lF5;UkA78;(c}|h!W^Ns;a1p)sM=LsBnGWU5ZHWG zdK7)*vT11&-H0F<@y}$q9QH~7W^UHjiD_{!GQKOQ|GMC5yu;=Mv*4(LGE2CT8;^n8 z$V5~jhP`v^u0MdwUb;t?OCtxO^xjbbaTvEZ0p%J|TbzNi%-At5z(Z4ra#P+z6Zmvf zQfxCch{`eN)S`2!w*mMkfE7!ZGa4^5N=X1VeV|EZU|41drFLwYcI@-9=+4b8@!1

    +p5F~7MZ^+(spAeOi7Op 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

    u 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

    WrTfQ%!0-FDx~Sork~DkZB;#?dhQ@G#cYFsazg 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 Date: Thu, 25 Sep 2025 13:53:44 -0400 Subject: [PATCH 380/400] Removed src/ Directory From Build Library is header only --- CMakeLists.txt | 13 ++++++++++++- cffi/src/CMakeLists.txt | 10 +++------- tests/cli/CMakeLists.txt | 9 --------- 3 files changed, 15 insertions(+), 17 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0d995b5..ce2306d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -96,7 +96,18 @@ include(linker/config) # Sources add_subdirectory(lib) -add_subdirectory(src) + +include(utility/project_tools) + +# Set library-wide C++ standard +use_project_cxx_standard(GLOBAL_CXX_OPTIONS INTERFACE) + +target_link_options( + GLOBAL_CXX_OPTIONS + + INTERFACE + ${GLOBAL_LINK_FLAGS} +) # C Interface Source if(CFFI_BUILD) diff --git a/cffi/src/CMakeLists.txt b/cffi/src/CMakeLists.txt index cd7b28d..9a83e1b 100644 --- a/cffi/src/CMakeLists.txt +++ b/cffi/src/CMakeLists.txt @@ -3,6 +3,9 @@ # /cffi/src Directory Script #===================================== +# TODO: Major changes needed here in due time... +# (For now, disregard this entire cffi directory) + set(ORIGINAL_BINARY_NAME "${${PRJ_SCOPE}_MAIN_BINARY_NAME}") set(STATIC_CFFI_BINARY_NAME "${ORIGINAL_BINARY_NAME}_c") @@ -19,13 +22,6 @@ target_include_directories( ${PRJ_CFFI_INCLUDE_DIRS} ) -target_link_libraries( - CFFI_LIBRARY_INTERFACE - - INTERFACE - ${ORIGINAL_BINARY_NAME} -) - target_link_libraries( CFFI_LIBRARY_INTERFACE diff --git a/tests/cli/CMakeLists.txt b/tests/cli/CMakeLists.txt index 8c2370b..c037fcc 100644 --- a/tests/cli/CMakeLists.txt +++ b/tests/cli/CMakeLists.txt @@ -14,12 +14,3 @@ target_compile_features( PUBLIC cxx_std_20 ) - -set(SIMPLYDT_TARGET_NAME "${${PRJ_SCOPE}_MAIN_BINARY_NAME}") - -target_link_libraries( - dev_cli_debug - - PUBLIC - ${SIMPLYDT_TARGET_NAME} -) From 37b92bbf46459d6077a915f4609afdadf2b22949 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Thu, 25 Sep 2025 13:55:15 -0400 Subject: [PATCH 381/400] Removed Deprecated src/ Directory Library is header only --- src/CMakeLists.txt | 39 ----- src/coord_universal_time/CMakeLists.txt | 11 -- src/coord_universal_time/utc_time.cpp | 179 -------------------- src/gregorian_calendar/CMakeLists.txt | 11 -- src/gregorian_calendar/gregorian_date.cpp | 191 ---------------------- src/main.cpp | 5 - 6 files changed, 436 deletions(-) delete mode 100644 src/CMakeLists.txt delete mode 100644 src/coord_universal_time/CMakeLists.txt delete mode 100644 src/coord_universal_time/utc_time.cpp delete mode 100644 src/gregorian_calendar/CMakeLists.txt delete mode 100644 src/gregorian_calendar/gregorian_date.cpp delete mode 100644 src/main.cpp diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt deleted file mode 100644 index 06c6ce5..0000000 --- a/src/CMakeLists.txt +++ /dev/null @@ -1,39 +0,0 @@ - -#================================ -# /src Directory Script -#================================ - -include(utility/project_tools) - -set(MAIN_BINARY_NAME "${${PRJ_SCOPE}_MAIN_BINARY_NAME}") - -# Simply Datetime Library Target -add_library("${MAIN_BINARY_NAME}" STATIC) - -target_include_directories( - ${MAIN_BINARY_NAME} - - PUBLIC - ${PRJ_INCLUDE_DIRS} -) - -# Set library-wide C++ standard -use_project_cxx_standard(GLOBAL_CXX_OPTIONS INTERFACE) - -target_link_options( - GLOBAL_CXX_OPTIONS - - INTERFACE - ${GLOBAL_LINK_FLAGS} -) - -# Sources -add_subdirectory(gregorian_calendar) -add_subdirectory(coord_universal_time) - -target_link_libraries( - ${MAIN_BINARY_NAME} - - PUBLIC - GLOBAL_CXX_OPTIONS -) diff --git a/src/coord_universal_time/CMakeLists.txt b/src/coord_universal_time/CMakeLists.txt deleted file mode 100644 index 15784dd..0000000 --- a/src/coord_universal_time/CMakeLists.txt +++ /dev/null @@ -1,11 +0,0 @@ - -#===================================================== -# /src/coord_universal_time Directory Script -#===================================================== - -target_sources( - ${MAIN_BINARY_NAME} - - PUBLIC - "${CMAKE_CURRENT_SOURCE_DIR}/utc_time.cpp" -) diff --git a/src/coord_universal_time/utc_time.cpp b/src/coord_universal_time/utc_time.cpp deleted file mode 100644 index b40e7e6..0000000 --- a/src/coord_universal_time/utc_time.cpp +++ /dev/null @@ -1,179 +0,0 @@ - -// Copyright (C) 2026 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. -// Released under the terms of the GNU Affero General Public License version 3. - -// [ISJTB-CXX-XL20230401-000001] - -// #include "simplydt/coord_universal_time/utc_time.hpp" -// -// // simplydt::utc::Time : CONSTRUCTOR -// -// simplydt::utc::Time::Time( -// const uint8_t hour, const uint8_t minute, const uint8_t second -// ) noexcept -// : time{ DEFAULT_TIME } -// { -// Time::encodeUTCTimeIntoInteger(&this->time, hour, minute, second); -// } -// -// simplydt::utc::Time::Time(const uint8_t hour, const uint8_t minute) noexcept -// : time{ DEFAULT_TIME } -// { -// Time::encodeUTCTimeIntoInteger(&this->time, hour, minute, 0); -// } -// -// simplydt::utc::Time::Time(const Time& time) noexcept : time{ time.time } -// { -// // -// } -// -// simplydt::utc::Time::Time() noexcept : time{ DEFAULT_TIME } -// { -// // -// } -// -// // simplydt::utc::Time : CONSTRUCTOR END! -// -// -// // simplydt::utc::Time : STATIC -// -// bool simplydt::utc::Time::encodeUTCTimeIntoInteger( -// Underlying_T* integer, const uint8_t& hour, const uint8_t& minute, const uint8_t& second -// ) noexcept -// { -// if (integer == nullptr) -// return false; -// -// if ((hour > MAX_HOURS_IN_DAY) || (minute > MAX_MINUTES_IN_HOUR) || -// (second > MAX_SECONDS_IN_MINUTE)) -// return false; // Invalid UTC time params -// -// *integer = ((hour * HOUR_FACTOR) + (minute * MINUTE_FACTOR) + second); -// -// return true; -// } -// -// uint8_t simplydt::utc::Time::extractEncodedHour(const Underlying_T* time) noexcept -// { -// return static_cast(*time / HOUR_FACTOR); -// } -// -// uint8_t simplydt::utc::Time::extractEncodedMinute(const Underlying_T* time) noexcept -// { -// return static_cast((*time % HOUR_FACTOR) / MINUTE_FACTOR); -// } -// -// uint8_t simplydt::utc::Time::extractEncodedSecond(const Underlying_T* time) noexcept -// { -// return static_cast((*time % HOUR_FACTOR) % MINUTE_FACTOR); -// } -// -// // simplydt::utc::Time : STATIC END! -// -// -// // simplydt::utc::Time : OPERATOR -// -// bool simplydt::utc::Time::operator==(const Time time) const noexcept -// { -// return this->time == time.time; -// } -// -// bool simplydt::utc::Time::operator<(const Time time) const noexcept -// { -// return this->time < time.time; -// } -// -// bool simplydt::utc::Time::operator>(const Time time) const noexcept -// { -// return this->time > time.time; -// } -// -// bool simplydt::utc::Time::operator<=(const Time time) const noexcept -// { -// return this->time <= time.time; -// } -// -// bool simplydt::utc::Time::operator>=(const Time time) const noexcept -// { -// return this->time >= time.time; -// } -// -// uint16_t simplydt::utc::Time::operator[](const CalendarComponent component) const noexcept -// { -// return this->getComponent(component); -// } -// -// // simplydt::utc::Time : OPERATOR END! -// -// -// // simplydt::utc::Time : PUBLIC -// -// uint8_t simplydt::utc::Time::hour() const noexcept -// { -// return Time::extractEncodedHour(&this->time); -// } -// -// std::string simplydt::utc::Time::hourPhaseLiteral() const noexcept -// { -// if ((this->time / HOUR_FACTOR) < 12) -// return MeridiemPhases[AM]; -// -// return MeridiemPhases[PM]; -// } -// -// uint8_t simplydt::utc::Time::minute() const noexcept -// { -// return Time::extractEncodedMinute(&this->time); -// } -// -// uint8_t simplydt::utc::Time::second() const noexcept -// { -// return Time::extractEncodedSecond(&this->time); -// } -// -// uint16_t simplydt::utc::Time::getComponent(const CalendarComponent component) const noexcept -// { -// switch (component) { -// case CalendarComponent::HOUR: -// return Time::extractEncodedHour(&this->time); -// -// case CalendarComponent::MINUTE: -// return Time::extractEncodedMinute(&this->time); -// -// case CalendarComponent::SECOND: -// return Time::extractEncodedSecond(&this->time); -// -// default: -// return 0; // Invalid component -// } -// } -// -// std::string simplydt::utc::Time::toStr() const noexcept -// { -// const char delimiter = ':'; -// -// std::string timeStr; -// timeStr.reserve(12); -// -// timeStr += (std::to_string(this->hour()) + delimiter); -// timeStr += (toDoubleDigitStr(this->minute()) + delimiter); -// timeStr += (toDoubleDigitStr(this->second()) + ' '); -// timeStr += this->hourPhaseLiteral(); -// -// return timeStr; -// } -// -// simplydt::utc::Time::Underlying_T simplydt::utc::Time::underlying() const noexcept -// { -// return this->time; -// } - -// simplydt::utc::Time : PUBLIC END! - - -// simplydt::utc::Time : PROTECTED -// simplydt::utc::Time : PROTECTED END! - - -// simplydt::utc::Time : PRIVATE -// simplydt::utc::Time : PRIVATE END! diff --git a/src/gregorian_calendar/CMakeLists.txt b/src/gregorian_calendar/CMakeLists.txt deleted file mode 100644 index 742e62a..0000000 --- a/src/gregorian_calendar/CMakeLists.txt +++ /dev/null @@ -1,11 +0,0 @@ - -#=================================================== -# /src/gregorian_calendar Directory Script -#=================================================== - -target_sources( - ${MAIN_BINARY_NAME} - - PUBLIC - "${CMAKE_CURRENT_SOURCE_DIR}/gregorian_date.cpp" -) diff --git a/src/gregorian_calendar/gregorian_date.cpp b/src/gregorian_calendar/gregorian_date.cpp deleted file mode 100644 index 21707aa..0000000 --- a/src/gregorian_calendar/gregorian_date.cpp +++ /dev/null @@ -1,191 +0,0 @@ - -// Copyright (C) 2026 by Jamon T. Bailey and Infinity Systems, LLC. All rights reserved. -// Released under the terms of the GNU Affero General Public License version 3. - -// [ISJTB-CXX-XL20230401-000001] - -// #include "simplydt/gregorian_calendar/gregorian_date.hpp" -// -// // simplydt::gregorian::Date : CONSTRUCTOR -// -// simplydt::gregorian::Date::Date( -// const YearInt_T year, const uint8_t month, const uint8_t day -// ) noexcept -// : date{ DEFAULT_DATE } -// { -// Date::encodeGregorianDateIntoInteger(&this->date, year, month, day); -// } -// -// simplydt::gregorian::Date::Date(const YearInt_T year, const uint8_t month) noexcept -// : date{ DEFAULT_DATE } -// { -// Date::encodeGregorianDateIntoInteger(&this->date, year, month, 1); -// } -// -// simplydt::gregorian::Date::Date(const Date& date) noexcept : date{ DEFAULT_DATE } -// { -// this->date = date.date; -// } -// -// simplydt::gregorian::Date::Date() noexcept : date{ DEFAULT_DATE } -// { -// // -// } -// -// // simplydt::gregorian::Date : CONSTRUCTOR END! -// -// -// // simplydt::gregorian::Date : STATIC -// -// bool simplydt::gregorian::Date::encodeGregorianDateIntoInteger( -// Underlying_T* integer, const YearInt_T& year, const uint8_t& month, const uint8_t& day -// ) noexcept -// { -// if (integer == nullptr) -// return false; -// -// if ((month < MIN_MONTH_OF_YEAR) || (month > MAX_MONTH_OF_YEAR)) -// return false; // Invalid date params -// -// if ((day < MIN_DAY_OF_MONTH) || (day > MAX_DAY_OF_MONTH)) -// return false; // Invalid date params -// -// *integer = ((year * YEAR_FACTOR) + (month * MONTH_FACTOR) + day); -// -// return true; -// } -// -// simplydt::gregorian::YearInt_T simplydt::gregorian::Date::extractEncodedYear( -// const Underlying_T* date -// ) noexcept -// { -// return static_cast(*date / YEAR_FACTOR); -// } -// -// uint8_t simplydt::gregorian::Date::extractEncodedMonth(const Underlying_T* date) noexcept -// { -// return static_cast((*date % YEAR_FACTOR) / MONTH_FACTOR); -// } -// -// uint8_t simplydt::gregorian::Date::extractEncodedDay(const Underlying_T* date) noexcept -// { -// return static_cast((*date % YEAR_FACTOR) % MONTH_FACTOR); -// } -// -// // simplydt::gregorian::Date : STATIC END! -// -// -// // simplydt::gregorian::Date : OPERATOR -// -// bool simplydt::gregorian::Date::operator==(const Date date) const noexcept -// { -// return this->date == date.date; -// } -// -// bool simplydt::gregorian::Date::operator<(const Date date) const noexcept -// { -// return this->date < date.date; -// } -// -// bool simplydt::gregorian::Date::operator>(const Date date) const noexcept -// { -// return this->date > date.date; -// } -// -// bool simplydt::gregorian::Date::operator<=(const Date date) const noexcept -// { -// return this->date <= date.date; -// } -// -// bool simplydt::gregorian::Date::operator>=(const Date date) const noexcept -// { -// return this->date >= date.date; -// } -// -// uint16_t simplydt::gregorian::Date::operator[](const CalendarComponent component -// ) const noexcept -// { -// return this->getComponent(component); -// } -// -// // simplydt::gregorian::Date : OPERATOR END! -// -// -// // simplydt::gregorian::Date : PUBLIC -// -// simplydt::gregorian::YearInt_T simplydt::gregorian::Date::year() const noexcept -// { -// return Date::extractEncodedYear(&this->date); -// } -// -// uint8_t simplydt::gregorian::Date::month() const noexcept -// { -// return Date::extractEncodedMonth(&this->date); -// } -// -// std::string simplydt::gregorian::Date::monthLiteral() const noexcept -// { -// const uint8_t monthIndex = this->month() - 1; -// -// return Months[monthIndex]; -// } -// -// std::string simplydt::gregorian::Date::monthAbbreviation() const noexcept -// { -// const uint8_t monthIndex = this->month() - 1; -// -// return std::string{ MonthAbbrevs[monthIndex] }; -// } -// -// uint8_t simplydt::gregorian::Date::day() const noexcept -// { -// return Date::extractEncodedDay(&this->date); -// } -// -// uint16_t simplydt::gregorian::Date::getComponent(const CalendarComponent component -// ) const noexcept -// { -// switch (component) { -// case CalendarComponent::YEAR: -// return Date::extractEncodedYear(&this->date); -// -// case CalendarComponent::MONTH: -// return Date::extractEncodedMonth(&this->date); -// -// case CalendarComponent::DAY: -// return Date::extractEncodedDay(&this->date); -// -// default: -// return 0; // Invalid component -// } -// } -// -// std::string simplydt::gregorian::Date::toStr() const noexcept -// { -// const char delimiter = '-'; -// -// std::string dateStr; -// dateStr.reserve(12); -// -// dateStr += (std::to_string(this->year()) + delimiter); -// dateStr += (toDoubleDigitStr(this->month()) + delimiter); -// dateStr += toDoubleDigitStr(this->day()); -// -// return dateStr; -// } -// -// simplydt::gregorian::Date::Underlying_T simplydt::gregorian::Date::underlying() const -// noexcept -// { -// return this->date; -// } - -// simplydt::gregorian::Date : PUBLIC END! - - -// simplydt::gregorian::Date : PROTECTED -// simplydt::gregorian::Date : PROTECTED END! - - -// simplydt::gregorian::Date : PRIVATE -// simplydt::gregorian::Date : PRIVATE END! diff --git a/src/main.cpp b/src/main.cpp deleted file mode 100644 index 9acf607..0000000 --- a/src/main.cpp +++ /dev/null @@ -1,5 +0,0 @@ - -int doNothing() -{ - return 0; -} From 35f708c3d5ff95ba6617891cf3a78b1d671f2048 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Thu, 25 Sep 2025 13:55:31 -0400 Subject: [PATCH 382/400] Update CMakeLists.txt --- cffi/CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cffi/CMakeLists.txt b/cffi/CMakeLists.txt index 70ebe30..ec9e722 100644 --- a/cffi/CMakeLists.txt +++ b/cffi/CMakeLists.txt @@ -11,6 +11,8 @@ # #==================================== +# TODO: Major changes needed here in due time... + set( PRJ_CFFI_INCLUDE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/include" From b1ddfccb2caa60c5b9821d7f77ea0ea1544c1fda Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Thu, 25 Sep 2025 16:46:59 -0400 Subject: [PATCH 383/400] Calendar Concepts Update Updates made to generic calendar concepts; calendar contract enforced on Gregorian calendar --- .../concepts/calendar_api_contract.hpp | 13 +- .../calendar/concepts/calendar_concepts.hpp | 199 +++++++++++++++--- .../calendar/gregorian/gregorian_calendar.hpp | 24 ++- 3 files changed, 205 insertions(+), 31 deletions(-) diff --git a/include/simplydt/calendar/concepts/calendar_api_contract.hpp b/include/simplydt/calendar/concepts/calendar_api_contract.hpp index 975bab5..7574aa3 100644 --- a/include/simplydt/calendar/concepts/calendar_api_contract.hpp +++ b/include/simplydt/calendar/concepts/calendar_api_contract.hpp @@ -25,16 +25,21 @@ namespace simplydt::concepts * @brief * Concept of a type that meets the criteria to be * considered a useable calendar implementation. + * + * @details + * TODO: INCOMPLETE COMMENT!!! */ template concept contract_abiding_calendar = requires { requires calendar::has_contextual_nested_types; requires contract_abiding_date; - requires calendar::has_characteristic_query_members; + requires calendar::has_characteristic_members; requires calendar::has_calendar_name_arrays; - requires calendar::has_calendar_structure_methods; - requires calendar::has_date_validation_methods; - requires calendar::has_date_conversion_methods; + requires calendar::has_structure_validation_methods; + requires calendar::has_structure_query_methods; + requires calendar::has_date_query_methods; + requires calendar::has_standard_date_conversion_methods; + requires calendar::has_name_methods; }; #ifndef SIMPLYDT_ENFORCE_CALENDAR_CONTRACT diff --git a/include/simplydt/calendar/concepts/calendar_concepts.hpp b/include/simplydt/calendar/concepts/calendar_concepts.hpp index e4374ff..dc226af 100644 --- a/include/simplydt/calendar/concepts/calendar_concepts.hpp +++ b/include/simplydt/calendar/concepts/calendar_concepts.hpp @@ -36,10 +36,11 @@ concept has_contextual_nested_types = requires { typename Calendar_Impl::Month; typename Calendar_Impl::DayOfWeek; typename Calendar_Impl::DatePolicy; + typename Calendar_Impl::NonLocal; }; template -concept has_characteristic_query_members = requires { +concept has_characteristic_members = requires { { Calendar_Impl::calendar } -> std::same_as; { Calendar_Impl::isSolarCalendar } -> std::same_as; { Calendar_Impl::isLunarCalendar } -> std::same_as; @@ -58,7 +59,7 @@ concept has_calendar_name_arrays = requires { Calendar_Impl::MONTH_ABBREVS } -> std::same_as>>&>; + std::tuple_size_v>>&>; { Calendar_Impl::DAY_OF_WEEK_NAMES @@ -70,11 +71,11 @@ concept has_calendar_name_arrays = requires { Calendar_Impl::DAY_OF_WEEK_ABBREVS } -> std::same_as>>&>; + std::tuple_size_v>>&>; }; template -concept has_date_validation_methods = requires { +concept has_structure_validation_methods = requires { { Calendar_Impl::isValidYear(std::declval()) } -> std::same_as; @@ -82,6 +83,7 @@ concept has_date_validation_methods = requires { { Calendar_Impl::isValidMonth(std::declval()) } -> std::same_as; { Calendar_Impl::isValidDay(std::declval()) } -> std::same_as; { Calendar_Impl::isValidDOWIndex(std::declval()) } -> std::same_as; + { Calendar_Impl::isValidWeekIndex(std::declval()) } -> std::same_as; { Calendar_Impl::isValidDate( @@ -90,46 +92,152 @@ concept has_date_validation_methods = requires { std::declval() ) } -> std::same_as; - - { - Calendar_Impl::isValidDate(std::declval()) - } -> std::same_as; }; template -concept has_calendar_structure_methods = requires { +concept has_structure_query_methods = requires { { - Calendar_Impl::getDayOfWeekIndex( - std::declval(), - std::declval(), - std::declval() + Calendar_Impl::getDaysInYear(std::declval()) + } -> std::same_as; + + { + Calendar_Impl::getDaysInMonth( + std::declval(), + std::declval() ) } -> std::same_as; { - Calendar_Impl::getDaysInMonth( - std::declval(), std::declval() + Calendar_Impl::getWeeksInMonth( + std::declval(), + std::declval() ) } -> std::same_as; { - Calendar_Impl::getDaysInYear(std::declval()) - } -> std::same_as; + Calendar_Impl::getWeeksMonthSpans( + std::declval(), + std::declval() + ) + } -> std::same_as; { - Calendar_Impl::getWeeksInMonth( - std::declval(), std::declval() + Calendar_Impl::getWeekIndex( + std::declval(), + std::declval(), + std::declval() + ) + } -> std::same_as; + + { + Calendar_Impl::getDayOfWeekIndex( + std::declval(), + std::declval(), + std::declval() ) } -> std::same_as; + + { + Calendar_Impl::getMonthEnumRepr(std::declval()) + } -> std::same_as; + + { + Calendar_Impl::getMonthEnumRepr(std::declval()) + } -> std::same_as; + + { + Calendar_Impl::getDayOfWeekEnumRepr(std::declval()) + } -> std::same_as; }; template -concept has_date_conversion_methods = requires { +concept has_date_query_methods = requires { + { + Calendar_Impl::getDate( + std::declval(), + std::declval(), + std::declval() + ) + } -> std::same_as; + + { + Calendar_Impl::getDate( + std::declval(), + std::declval(), + std::declval() + ) + } -> std::same_as; + + { + Calendar_Impl::getDate(std::declval()) + } -> std::same_as; + + { + Calendar_Impl::getDate( + std::declval(), + typename Calendar_Impl::NonLocal{} + ) + } -> std::same_as; + + { + Calendar_Impl::getNextDate(std::declval()) + } -> std::same_as; + + { + Calendar_Impl::getNextDate( + std::declval(), + std::declval() + ) + } -> std::same_as; + + { + Calendar_Impl::getNextDate( + std::declval(), + std::declval() + ) + } -> std::same_as; + + { + Calendar_Impl::getLastDate(std::declval()) + } -> std::same_as; + + { + Calendar_Impl::getLastDate( + std::declval(), + std::declval() + ) + } -> std::same_as; + + { + Calendar_Impl::getLastDate( + std::declval(), + std::declval() + ) + } -> std::same_as; + + // TODO: Add `Calendar_Impl::getWeek()` at some point... + // (Requires generic `WeekDates` container alias) +}; + +template +concept has_standard_date_conversion_methods = requires { + { + Calendar_Impl::toDaysSinceEpoch( + std::declval(), + std::declval(), + std::declval() + ) + } -> std::same_as; + + { + Calendar_Impl::fromDaysSinceEpoch(std::declval()) + } -> std::same_as; + { Calendar_Impl::toUnixTimestamp( - std::declval(), - std::declval(), - std::declval() + std::declval(), + std::declval(), + std::declval() ) } -> std::same_as; @@ -138,10 +246,53 @@ concept has_date_conversion_methods = requires { } -> std::same_as; { - Calendar_Impl::fromTimePoint(std::declval()) + Calendar_Impl::fromUnixTimestamp(std::declval()) } -> std::same_as; }; +template +concept has_name_methods = requires { + { + Calendar_Impl::getMonthName(std::declval()) + } -> std::same_as; + + { + Calendar_Impl::getMonthName(std::declval()) + } -> std::same_as; + + { + Calendar_Impl::getMonthName(std::declval()) + } -> std::same_as; + + { + Calendar_Impl::getMonthAbbrev(std::declval()) + } -> std::same_as; + + { + Calendar_Impl::getMonthAbbrev(std::declval()) + } -> std::same_as; + + { + Calendar_Impl::getMonthAbbrev(std::declval()) + } -> std::same_as; + + { + Calendar_Impl::getDayOfWeekName(std::declval()) + } -> std::same_as; + + { + Calendar_Impl::getDayOfWeekName(std::declval()) + } -> std::same_as; + + { + Calendar_Impl::getDayOfWeekAbbrev(std::declval()) + } -> std::same_as; + + { + Calendar_Impl::getDayOfWeekAbbrev(std::declval()) + } -> std::same_as; +}; + } // namespace simplydt::concepts::calendar #endif // SIMPLYDT_LIB_CALENDAR_CONCEPTS_H_ diff --git a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp index 1f44974..3f7dc99 100644 --- a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp @@ -282,11 +282,26 @@ struct GregorianCalendar : * @return * True if valid day value */ - [[nodiscard]] static constexpr bool isValidDay(const uint8_t day) noexcept + [[nodiscard]] inline static constexpr bool isValidDay(const uint8_t day) noexcept { return day >= MIN_DAY_OF_MONTH && day <= MAX_DAY_OF_MONTH; } + /*! + * @brief + * TODO: INCOMPLETE COMMENT!!! + * + * @details + * TODO: INCOMPLETE COMMENT!!! + * + * @return + * True if valid calendar week index + */ + [[nodiscard]] inline static constexpr bool isValidWeekIndex(const uint8_t week_index) noexcept + { + return week_index <= WEEKS_IN_YEAR; + } + /*! * @brief * Checks if day-of-week index is within valid @@ -300,7 +315,7 @@ struct GregorianCalendar : * @return * True if valid day-of-week index */ - [[nodiscard]] static constexpr bool isValidDOWIndex(const uint8_t dow_index) noexcept + [[nodiscard]] inline static constexpr bool isValidDOWIndex(const uint8_t dow_index) noexcept { return dow_index < DAYS_IN_WEEK; } @@ -415,6 +430,7 @@ struct GregorianCalendar : return 0; // Unsupported or invalid return static_cast(monthTotalDays / DAYS_IN_WEEK); + // NOTE: This is useless, instead make it number of whole weeks? } /*! @@ -869,7 +885,7 @@ struct GregorianCalendar : { WeekDates week{}; - if (week_index > WEEKS_IN_YEAR || !DatePolicy::isValidYear(year)) + if (!isValidWeekIndex(week_index) || !DatePolicy::isValidYear(year)) return week; // Invalid week index or unsupported year const Days serialStart{ @@ -918,6 +934,8 @@ struct GregorianCalendar : ~GregorianCalendar() = delete; }; +SIMPLYDT_ENFORCE_CALENDAR_CONTRACT(GregorianCalendar); + } // namespace simplydt::gregorian #endif // SIMPLYDT_LIB_GREGORIAN_CALENDAR_H_ From 11266fff4095243d67f2b54ad37cba4626152c04 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Thu, 25 Sep 2025 16:58:35 -0400 Subject: [PATCH 384/400] Clang-Format --- .../simplydt/calendar/abstract_calendar.hpp | 7 +++---- .../concepts/calendar_api_contract.hpp | 2 +- .../calendar/concepts/calendar_concepts.hpp | 19 +++++++------------ .../calendar/gregorian/gregorian_calendar.hpp | 10 ++++++---- .../calendar/gregorian/helper_algorithms.hpp | 8 ++++---- tests/cli/dev_exe.cpp | 14 ++++++-------- 6 files changed, 27 insertions(+), 33 deletions(-) diff --git a/include/simplydt/calendar/abstract_calendar.hpp b/include/simplydt/calendar/abstract_calendar.hpp index 98b1633..29562e1 100644 --- a/include/simplydt/calendar/abstract_calendar.hpp +++ b/include/simplydt/calendar/abstract_calendar.hpp @@ -77,7 +77,7 @@ struct CalendricalSystem { * @brief * Tag indicating timepoint should be interpreted * without local timezone conversion. - * + * * @details * When passed to date conversion functions, this * tag specifies that the input timepoint should @@ -595,8 +595,7 @@ struct CalendricalSystem { if (fromNumericMonth > toNumericMonth) { const YearInt_t nextYear = from_date.year() + 1; return Date{nextYear, toNumericMonth, 1}; - } - else { // fromNumericMonth < toNumericMonth + } else { // fromNumericMonth < toNumericMonth return Date{from_date.year(), toNumericMonth, 1}; } } @@ -606,7 +605,7 @@ struct CalendricalSystem { if (from_date.day() != daysInMonth) return from_date + Days{1}; - + const YearInt_t nextYear = from_date.year() + 1; return Date{nextYear, fromNumericMonth, 1}; // NOTE: Check validity of above date values first before return? diff --git a/include/simplydt/calendar/concepts/calendar_api_contract.hpp b/include/simplydt/calendar/concepts/calendar_api_contract.hpp index 7574aa3..9331d8d 100644 --- a/include/simplydt/calendar/concepts/calendar_api_contract.hpp +++ b/include/simplydt/calendar/concepts/calendar_api_contract.hpp @@ -25,7 +25,7 @@ namespace simplydt::concepts * @brief * Concept of a type that meets the criteria to be * considered a useable calendar implementation. - * + * * @details * TODO: INCOMPLETE COMMENT!!! */ diff --git a/include/simplydt/calendar/concepts/calendar_concepts.hpp b/include/simplydt/calendar/concepts/calendar_concepts.hpp index dc226af..2b60275 100644 --- a/include/simplydt/calendar/concepts/calendar_concepts.hpp +++ b/include/simplydt/calendar/concepts/calendar_concepts.hpp @@ -71,7 +71,8 @@ concept has_calendar_name_arrays = requires { Calendar_Impl::DAY_OF_WEEK_ABBREVS } -> std::same_as>>&>; + std::tuple_size_v< + std::remove_cvref_t>>&>; }; template @@ -102,22 +103,19 @@ concept has_structure_query_methods = requires { { Calendar_Impl::getDaysInMonth( - std::declval(), - std::declval() + std::declval(), std::declval() ) } -> std::same_as; { Calendar_Impl::getWeeksInMonth( - std::declval(), - std::declval() + std::declval(), std::declval() ) } -> std::same_as; { Calendar_Impl::getWeeksMonthSpans( - std::declval(), - std::declval() + std::declval(), std::declval() ) } -> std::same_as; @@ -174,8 +172,7 @@ concept has_date_query_methods = requires { { Calendar_Impl::getDate( - std::declval(), - typename Calendar_Impl::NonLocal{} + std::declval(), typename Calendar_Impl::NonLocal{} ) } -> std::same_as; @@ -252,9 +249,7 @@ concept has_standard_date_conversion_methods = requires { template concept has_name_methods = requires { - { - Calendar_Impl::getMonthName(std::declval()) - } -> std::same_as; + { Calendar_Impl::getMonthName(std::declval()) } -> std::same_as; { Calendar_Impl::getMonthName(std::declval()) diff --git a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp index 3f7dc99..a1bc69b 100644 --- a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp @@ -290,14 +290,15 @@ struct GregorianCalendar : /*! * @brief * TODO: INCOMPLETE COMMENT!!! - * + * * @details * TODO: INCOMPLETE COMMENT!!! - * + * * @return * True if valid calendar week index */ - [[nodiscard]] inline static constexpr bool isValidWeekIndex(const uint8_t week_index) noexcept + [[nodiscard]] inline static constexpr bool isValidWeekIndex(const uint8_t week_index + ) noexcept { return week_index <= WEEKS_IN_YEAR; } @@ -315,7 +316,8 @@ struct GregorianCalendar : * @return * True if valid day-of-week index */ - [[nodiscard]] inline static constexpr bool isValidDOWIndex(const uint8_t dow_index) noexcept + [[nodiscard]] inline static constexpr bool isValidDOWIndex(const uint8_t dow_index + ) noexcept { return dow_index < DAYS_IN_WEEK; } diff --git a/include/simplydt/calendar/gregorian/helper_algorithms.hpp b/include/simplydt/calendar/gregorian/helper_algorithms.hpp index 57b5a39..5cad255 100644 --- a/include/simplydt/calendar/gregorian/helper_algorithms.hpp +++ b/include/simplydt/calendar/gregorian/helper_algorithms.hpp @@ -21,7 +21,7 @@ /*! * @brief * Algorithms from Howard Hinnant. - * + * * @note * https://howardhinnant.github.io/date_algorithms.html * for more details. @@ -32,7 +32,7 @@ namespace simplydt::gregorian::hinnant /*! * @brief * Days from 1970-01-01 to 0000-03-01. - * + * * @details * This value shifts the epoch from 1970-01-01 * to 0000-03-01 (March 1 of year 0) when @@ -51,7 +51,7 @@ constexpr int32_t EPOCH_SHIFT = 719'468; /*! * @brief * Total number of days in one Gregorian era. - * + * * @details * Represents the number of days in a 400-year * Gregorian cycle. The patterns of the Gregorian @@ -238,7 +238,7 @@ constexpr uint32_t DAYS_IN_ERA = YEARS_IN_ERA * DAYS_IN_YEAR + 97; // CREDITS: Howard Hinnant [Mr. Chrono] - (Ripple Labs) // Convert a serial count of days into a {year, month, day} triple. serial_days += EPOCH_SHIFT; - const int era = (serial_days >= 0 ? serial_days : serial_days - 146'096) / DAYS_IN_ERA; + const int era = (serial_days >= 0 ? serial_days : serial_days - 146'096) / DAYS_IN_ERA; const unsigned doe = static_cast(serial_days - era * DAYS_IN_ERA); const unsigned yoe = (doe - doe / 1'460 + doe / 36'524 - doe / 146'096) / DAYS_IN_YEAR; const Year_Type y = static_cast(yoe) + era * YEARS_IN_ERA; diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index 8607e9e..3cc4068 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -160,21 +160,19 @@ int main(int argc, char* argv[]) // Console calendar test: { - constexpr Date::YearInt_t year = 2025; + constexpr Date::YearInt_t year = 2'025; constexpr uint8_t month = simplydt::gregorian::September; - std::cout - << "\n\n\t[ ~ " << Calendar::getMonthName(month) - << ' ' << year << " ~ ]" - << std::endl; - + std::cout << "\n\n\t[ ~ " << Calendar::getMonthName(month) << ' ' << year << " ~ ]" + << std::endl; + for (const std::string_view& dowAbbrev : Calendar::DAY_OF_WEEK_ABBREVS) { std::cout << ' ' << dowAbbrev << " "; } std::cout << std::endl; Calendar::WeekDates week = Calendar::getWeek(Date{year, month, 1}); - const Date today = Calendar::getDate(SystemClock::now()); + const Date today = Calendar::getDate(SystemClock::now()); while (true) { for (const Date date : week) { @@ -187,7 +185,7 @@ int main(int argc, char* argv[]) std::cout << ">_"; else std::cout << "__"; - + std::cout << simplydt::toDoubleDigitStr(date.day()) << "_|"; } From 6e9a2359b458a9d2bc384d35a75e4e67d6c71974 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Thu, 25 Sep 2025 17:45:04 -0400 Subject: [PATCH 385/400] Update calendar_api_contract.hpp --- .../calendar/concepts/calendar_api_contract.hpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/include/simplydt/calendar/concepts/calendar_api_contract.hpp b/include/simplydt/calendar/concepts/calendar_api_contract.hpp index 9331d8d..fe2ff98 100644 --- a/include/simplydt/calendar/concepts/calendar_api_contract.hpp +++ b/include/simplydt/calendar/concepts/calendar_api_contract.hpp @@ -27,7 +27,16 @@ namespace simplydt::concepts * considered a useable calendar implementation. * * @details - * TODO: INCOMPLETE COMMENT!!! + * A valid calendar type must provide contextual + * nested types for library integration and utilize + * a date type that satisfies the date contract. + * It must include characteristic members defining + * calendar properties, name arrays for month and + * day identification, and comprehensive structure + * validation and query methods. The implementation + * must support date queries, standard date + * conversion operations, and calendar naming + * utilities, through static members. */ template concept contract_abiding_calendar = requires { From beec0a6abae216ef74d0be96cb8dd5d1e7b3a336 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Thu, 25 Sep 2025 17:45:13 -0400 Subject: [PATCH 386/400] Update gregorian_calendar.hpp --- .../calendar/gregorian/gregorian_calendar.hpp | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp index a1bc69b..9a2ebfd 100644 --- a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp @@ -289,10 +289,21 @@ struct GregorianCalendar : /*! * @brief - * TODO: INCOMPLETE COMMENT!!! - * - * @details - * TODO: INCOMPLETE COMMENT!!! + * Checks if week index is within valid range. + * + * @details + * Checks whether the given week index represents + * a valid calendar week, accounting for the fact + * that weeks are aligned to calendar boundaries + * rather than strictly contained within a single + * year. A week index is considered valid if it + * falls within the complete set of weeks that + * contain days from the current year, which may + * include partial weeks from adjacent years. + * This accommodates cases where the first week + * contains days from the previous December or + * the last week contains days from the following + * January. * * @return * True if valid calendar week index From 5b5c432a3a26001e2104070bc59e179d9510b7a7 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Thu, 25 Sep 2025 17:48:14 -0400 Subject: [PATCH 387/400] Time API Concepts Update Renamed concept for better context --- .../simplydt/time/concepts/time_api_contract.hpp | 16 +++++++++++++--- include/simplydt/time/concepts/time_concepts.hpp | 2 +- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/include/simplydt/time/concepts/time_api_contract.hpp b/include/simplydt/time/concepts/time_api_contract.hpp index 2f7f6e9..d4b053a 100644 --- a/include/simplydt/time/concepts/time_api_contract.hpp +++ b/include/simplydt/time/concepts/time_api_contract.hpp @@ -23,13 +23,23 @@ namespace simplydt::concepts /*! * @brief * Concept of a type that meets the criteria to be - * considered a useable calendar date implementation. + * considered a useable time standard implementation. + * + * @details + * A valid time standard type must provide contextual + * nested types (for library internal-use), time + * component accessors, and support for logical and + * arithmetic operators. It must include basic state + * management and sequential evaluation methods, as + * well as stream output and string conversion + * capabilities. Additionally, it must satisfy + * fundamental C++ type requirements including default + * initialization, copyability, and destructibility. */ template concept contract_abiding_time = requires { requires time::has_contextual_nested_types; - // NOTE: Perhaps enforcing v below v here is too specific? - requires time::has_time_component_methods; + requires time::has_standard_time_component_methods; requires time::has_logical_operators; requires time::has_arithmetic_operators; requires time::has_basic_state_methods; diff --git a/include/simplydt/time/concepts/time_concepts.hpp b/include/simplydt/time/concepts/time_concepts.hpp index ba09c87..db67fd5 100644 --- a/include/simplydt/time/concepts/time_concepts.hpp +++ b/include/simplydt/time/concepts/time_concepts.hpp @@ -35,7 +35,7 @@ concept has_contextual_nested_types = requires { }; template -concept has_time_component_methods = requires(const Time_Impl& t) { +concept has_standard_time_component_methods = requires(const Time_Impl& t) { { t.hour() } -> std::same_as; { t.minute() } -> std::same_as; { t.second() } -> std::same_as; From 237809084fcfbd64c1db221400079864991f74d2 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Fri, 26 Sep 2025 02:02:32 -0400 Subject: [PATCH 388/400] Update date_validation.hpp --- .../simplydt/calendar/gregorian/date_validation.hpp | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/include/simplydt/calendar/gregorian/date_validation.hpp b/include/simplydt/calendar/gregorian/date_validation.hpp index 03cb389..150bd64 100644 --- a/include/simplydt/calendar/gregorian/date_validation.hpp +++ b/include/simplydt/calendar/gregorian/date_validation.hpp @@ -48,7 +48,7 @@ struct DateValidationPolicy { * @return * True if leap year */ - [[nodiscard]] static constexpr bool isLeapYear(const Year_Type year) noexcept + [[nodiscard]] inline static constexpr bool isLeapYear(const Year_Type year) noexcept { return (year % 4) == 0 && (year % 100 != 0 || year % YEARS_IN_ERA == 0); } @@ -65,7 +65,7 @@ struct DateValidationPolicy { * @return * True if supported year */ - [[nodiscard]] static constexpr bool isValidYear(const Year_Type year) noexcept + [[nodiscard]] inline static constexpr bool isValidYear(const Year_Type year) noexcept { return year >= YEAR_MINIMUM && year <= YEAR_MAXIMUM; } @@ -83,7 +83,7 @@ struct DateValidationPolicy { * @return * True if valid numerical month */ - [[nodiscard]] static constexpr bool isValidMonth(const uint8_t month) noexcept + [[nodiscard]] inline static constexpr bool isValidMonth(const uint8_t month) noexcept { return month >= MIN_MONTH_OF_YEAR && month <= MAX_MONTH_OF_YEAR; } @@ -152,11 +152,8 @@ struct DateValidationPolicy { const Year_Type year, const uint8_t month, const uint8_t day ) noexcept { - if (!isValidYear(year)) - return false; - const uint8_t monthTotalDays = getDaysInMonth(year, month); - return day <= monthTotalDays; + return monthTotalDays != 0 && day != 0 && day <= monthTotalDays; } }; From e7af8cd142b40cf670636bfb19892562ad342567 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Fri, 26 Sep 2025 02:35:27 -0400 Subject: [PATCH 389/400] Hinnant Algorithm Namespace Update Namespace adjustment; moved from ::gregorian namespace to root simplydt namespace; definitions migrated to primary Gregorian definitions --- .../calendar/gregorian/gregorian_defs.hpp | 67 +++++++++++++++++-- .../calendar/gregorian/helper_algorithms.hpp | 58 +++------------- 2 files changed, 70 insertions(+), 55 deletions(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_defs.hpp b/include/simplydt/calendar/gregorian/gregorian_defs.hpp index 02f45ea..b3a2825 100644 --- a/include/simplydt/calendar/gregorian/gregorian_defs.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_defs.hpp @@ -78,13 +78,6 @@ constexpr Year_Type YEAR_MINIMUM = 1'601; */ constexpr Year_Type YEAR_MAXIMUM = 2'038; // TODO: Find real limitation... -/*! - * @brief - * Total number of calendar years in one Gregorian - * era. - */ -constexpr Year_Type YEARS_IN_ERA = 400; - /*! @brief The month of January (1). */ constexpr uint8_t January = 1; @@ -176,6 +169,30 @@ constexpr uint16_t DAYS_IN_YEAR = 365; */ constexpr uint16_t DAYS_IN_LEAP_YEAR = 366; +/*! + * @brief + * Total number of calendar years in one Gregorian + * era. + */ +constexpr Year_Type YEARS_IN_ERA = 400; + +/*! + * @brief + * Total number of days in one Gregorian era. + * + * @details + * Represents the number of days in a 400-year + * Gregorian cycle. The patterns of the Gregorian + * calendar repeat themselves over an era, + * consequently the number of days in a single era + * are the same for all others. This value is + * calculated by multiplying the number of days in + * a year by the number of years in one era, which + * is then increased by an additional 97 days to + * account for leap days within the era. + */ +constexpr uint32_t DAYS_IN_ERA = YEARS_IN_ERA * DAYS_IN_YEAR + 97; + /*! * @brief * Average amount of days per calendar year. @@ -347,4 +364,40 @@ inline constexpr uint8_t MONTH_KEY[gregorian::MONTHS_IN_YEAR] = { } // namespace simplydt::sakamoto +/*! + * @brief + * Howard Hinnant's Algorithm. + * + * @note + * https://howardhinnant.github.io/date_algorithms.html + * for more details. + * + * @details + * Algorithms sourced from Howard Hinnant for the + * Gregorian calendar. + */ +namespace simplydt::hinnant +{ + +/*! + * @brief + * Days from 1970-01-01 to 0000-03-01. + * + * @details + * This value shifts the epoch from 1970-01-01 + * to 0000-03-01 (March 1 of year 0) when + * converting to civil date components or + * vice-versa when calculating a serial count + * of days since the Unix epoch. This is crucial + * because it aligns the algorithm with all known + * implementations of `std::chrono::system_clock`, + * which count seconds from 1970-01-01, neglecting + * leap seconds. This value is what makes the + * serial date 0 equivalent to 1970-01-01 instead + * of 0000-03-01. + */ +constexpr int32_t EPOCH_SHIFT = 719'468; + +} // namespace simplydt::hinnant + #endif // SIMPLYDT_LIB_GREGORIAN_CALENDAR_DEFINITIONS_H_ diff --git a/include/simplydt/calendar/gregorian/helper_algorithms.hpp b/include/simplydt/calendar/gregorian/helper_algorithms.hpp index 5cad255..4d16496 100644 --- a/include/simplydt/calendar/gregorian/helper_algorithms.hpp +++ b/include/simplydt/calendar/gregorian/helper_algorithms.hpp @@ -18,53 +18,9 @@ #include "simplydt/calendar/gregorian/gregorian_defs.hpp" #include "simplydt/common/stl_chrono_defs.hpp" -/*! - * @brief - * Algorithms from Howard Hinnant. - * - * @note - * https://howardhinnant.github.io/date_algorithms.html - * for more details. - */ -namespace simplydt::gregorian::hinnant +namespace simplydt::hinnant { -/*! - * @brief - * Days from 1970-01-01 to 0000-03-01. - * - * @details - * This value shifts the epoch from 1970-01-01 - * to 0000-03-01 (March 1 of year 0) when - * converting to civil date components or - * vice-versa when calculating a serial count - * of days since the Unix epoch. This is crucial - * because it aligns the algorithm with all known - * implementations of `std::chrono::system_clock`, - * which count seconds from 1970-01-01, neglecting - * leap seconds. This value is what makes the - * serial date 0 equivalent to 1970-01-01 instead - * of 0000-03-01. - */ -constexpr int32_t EPOCH_SHIFT = 719'468; - -/*! - * @brief - * Total number of days in one Gregorian era. - * - * @details - * Represents the number of days in a 400-year - * Gregorian cycle. The patterns of the Gregorian - * calendar repeat themselves over an era, - * consequently the number of days in a single era - * are the same for all others. This value is - * calculated by multiplying the number of days in - * a year by the number of years in one era, which - * is then increased by an additional 97 days to - * account for leap days within the era. - */ -constexpr uint32_t DAYS_IN_ERA = YEARS_IN_ERA * DAYS_IN_YEAR + 97; - /*! * @brief * Converts a calendar date to serial number @@ -81,11 +37,12 @@ constexpr uint32_t DAYS_IN_ERA = YEARS_IN_ERA * DAYS_IN_YEAR + 97; * Days since January 1, 1970 */ [[nodiscard]] constexpr int32_t toDaysSinceEpoch( - Year_Type year, uint8_t month, uint8_t day + gregorian::Year_Type year, uint8_t month, uint8_t day ) noexcept { // CREDITS: Howard Hinnant [Mr. Chrono] - (Ripple Labs) // Convert {year, month, day} triple into a serial count of days. + using namespace simplydt::gregorian; year -= month <= February; const int era = year / YEARS_IN_ERA; const unsigned yoe = static_cast(year - era * YEARS_IN_ERA); @@ -115,6 +72,7 @@ constexpr uint32_t DAYS_IN_ERA = YEARS_IN_ERA * DAYS_IN_YEAR + 97; */ [[nodiscard]] constexpr int eraFromSerialDays(int32_t serial_days) noexcept { + using namespace simplydt::gregorian; serial_days += EPOCH_SHIFT; return (serial_days >= 0 ? serial_days : serial_days - 146'096) / DAYS_IN_ERA; } @@ -139,6 +97,7 @@ constexpr uint32_t DAYS_IN_ERA = YEARS_IN_ERA * DAYS_IN_YEAR + 97; */ [[nodiscard]] constexpr unsigned dayOfEraFromSerialDays(int32_t serial_days) noexcept { + using namespace simplydt::gregorian; const int era = eraFromSerialDays(serial_days); serial_days += EPOCH_SHIFT; return static_cast(serial_days - era * DAYS_IN_ERA); @@ -163,6 +122,7 @@ constexpr uint32_t DAYS_IN_ERA = YEARS_IN_ERA * DAYS_IN_YEAR + 97; */ [[nodiscard]] constexpr unsigned yearOfEraFromSerialDays(int32_t serial_days) noexcept { + using namespace simplydt::gregorian; const unsigned doe = dayOfEraFromSerialDays(serial_days); return (doe - doe / 1'460 + doe / 36'524 - doe / 146'096) / DAYS_IN_YEAR; } @@ -188,6 +148,7 @@ constexpr uint32_t DAYS_IN_ERA = YEARS_IN_ERA * DAYS_IN_YEAR + 97; */ [[nodiscard]] constexpr unsigned dayOfYearFromSerialDays(int32_t serial_days) noexcept { + using namespace simplydt::gregorian; const unsigned yoe = yearOfEraFromSerialDays(serial_days); return dayOfEraFromSerialDays(serial_days) - (DAYS_IN_YEAR * yoe + yoe / 4 - yoe / 100); } @@ -233,10 +194,11 @@ constexpr uint32_t DAYS_IN_ERA = YEARS_IN_ERA * DAYS_IN_YEAR + 97; * @return * Calendar date values tuple */ -[[nodiscard]] constexpr DateTuple fromDaysSinceEpoch(int32_t serial_days) noexcept +[[nodiscard]] constexpr gregorian::DateTuple fromDaysSinceEpoch(int32_t serial_days) noexcept { // CREDITS: Howard Hinnant [Mr. Chrono] - (Ripple Labs) // Convert a serial count of days into a {year, month, day} triple. + using namespace simplydt::gregorian; serial_days += EPOCH_SHIFT; const int era = (serial_days >= 0 ? serial_days : serial_days - 146'096) / DAYS_IN_ERA; const unsigned doe = static_cast(serial_days - era * DAYS_IN_ERA); @@ -249,6 +211,6 @@ constexpr uint32_t DAYS_IN_ERA = YEARS_IN_ERA * DAYS_IN_YEAR + 97; return DateTuple{y + (m <= February), m, d}; } -} // namespace simplydt::gregorian::hinnant +} // namespace simplydt::hinnant #endif // SIMPLYDT_LIB_GREGORIAN_HELPER_ALGORITHMS_H_ From 07355012a1360d402e57f774cde33082a90a1a28 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Fri, 26 Sep 2025 02:43:05 -0400 Subject: [PATCH 390/400] Update gregorian_defs.hpp --- include/simplydt/calendar/gregorian/gregorian_defs.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_defs.hpp b/include/simplydt/calendar/gregorian/gregorian_defs.hpp index b3a2825..0a9b0a6 100644 --- a/include/simplydt/calendar/gregorian/gregorian_defs.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_defs.hpp @@ -371,7 +371,7 @@ inline constexpr uint8_t MONTH_KEY[gregorian::MONTHS_IN_YEAR] = { * @note * https://howardhinnant.github.io/date_algorithms.html * for more details. - * + * * @details * Algorithms sourced from Howard Hinnant for the * Gregorian calendar. From 2ff302d146a8b017c2ed9831be663605d4567ff4 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Fri, 26 Sep 2025 02:44:23 -0400 Subject: [PATCH 391/400] Renamed Gregorian Algorithm Header --- .../gregorian/{helper_algorithms.hpp => hinnant_algorithms.hpp} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename include/simplydt/calendar/gregorian/{helper_algorithms.hpp => hinnant_algorithms.hpp} (100%) diff --git a/include/simplydt/calendar/gregorian/helper_algorithms.hpp b/include/simplydt/calendar/gregorian/hinnant_algorithms.hpp similarity index 100% rename from include/simplydt/calendar/gregorian/helper_algorithms.hpp rename to include/simplydt/calendar/gregorian/hinnant_algorithms.hpp From ce423ab75005eacdec946679e54b1f65a9334160 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Fri, 26 Sep 2025 02:48:50 -0400 Subject: [PATCH 392/400] Update Gregorian Algorithm Header Refs --- include/simplydt/calendar/gregorian/gregorian_date.hpp | 2 +- .../simplydt/calendar/gregorian/hinnant_algorithms.hpp | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_date.hpp b/include/simplydt/calendar/gregorian/gregorian_date.hpp index c2a8cfa..090545c 100644 --- a/include/simplydt/calendar/gregorian/gregorian_date.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_date.hpp @@ -19,7 +19,7 @@ #include "simplydt/calendar/date/abstract_date.hpp" #include "simplydt/calendar/gregorian/date_validation.hpp" #include "simplydt/calendar/gregorian/gregorian_defs.hpp" -#include "simplydt/calendar/gregorian/helper_algorithms.hpp" +#include "simplydt/calendar/gregorian/hinnant_algorithms.hpp" #include "simplydt/common/string_utils.hpp" namespace simplydt::gregorian diff --git a/include/simplydt/calendar/gregorian/hinnant_algorithms.hpp b/include/simplydt/calendar/gregorian/hinnant_algorithms.hpp index 4d16496..ce71196 100644 --- a/include/simplydt/calendar/gregorian/hinnant_algorithms.hpp +++ b/include/simplydt/calendar/gregorian/hinnant_algorithms.hpp @@ -5,15 +5,15 @@ // [ISJTB-CXX-XL20230401-000001] /*! - * @file helper_algorithms.hpp + * @file hinnant_algorithms.hpp * * @brief * Gregorian calendar helper algorithms. */ -#ifndef SIMPLYDT_LIB_GREGORIAN_HELPER_ALGORITHMS_H_ -#define SIMPLYDT_LIB_GREGORIAN_HELPER_ALGORITHMS_H_ +#ifndef SIMPLYDT_LIB_HOWARD_HINNANT_GREGORIAN_ALGORITHMS_H_ +#define SIMPLYDT_LIB_HOWARD_HINNANT_GREGORIAN_ALGORITHMS_H_ #include "simplydt/calendar/gregorian/gregorian_defs.hpp" #include "simplydt/common/stl_chrono_defs.hpp" @@ -213,4 +213,4 @@ namespace simplydt::hinnant } // namespace simplydt::hinnant -#endif // SIMPLYDT_LIB_GREGORIAN_HELPER_ALGORITHMS_H_ +#endif // SIMPLYDT_LIB_HOWARD_HINNANT_GREGORIAN_ALGORITHMS_H_ From ca5327a6466e2fc430d21dc53f45a1a2406d29a5 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Fri, 26 Sep 2025 02:50:03 -0400 Subject: [PATCH 393/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 3 --- 1 file changed, 3 deletions(-) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index 3cc4068..8d835ed 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -5,8 +5,6 @@ * * ~ CLI Debug Executable Notes / TO-DO List ~ * -* -> [] Remove CRTP from time setup? -* * -> [] :: Datetime Output Styles :: * -> [] StandardStyle ----> 2004-09-17:00:00:00.000 * -> [] UnixStyle --------> 2004-09-17T00:00:00.000 @@ -20,7 +18,6 @@ \* /// \\\ /// \\\ /// | END | \\\ /// \\\ /// \\\ */ // Includes... -#include "simplydt/calendar/gregorian/gregorian_date.hpp" #include "simplydt/calendar/gregorian/gregorian_calendar.hpp" #include "simplydt/time/utc/utc_time.hpp" From c44221f99daa5c6f6f8343d46e4358dbed858043 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Fri, 26 Sep 2025 14:41:25 -0400 Subject: [PATCH 394/400] Bug and Semantic Fixes --- .../simplydt/calendar/abstract_calendar.hpp | 26 ++----------------- 1 file changed, 2 insertions(+), 24 deletions(-) diff --git a/include/simplydt/calendar/abstract_calendar.hpp b/include/simplydt/calendar/abstract_calendar.hpp index 29562e1..580950e 100644 --- a/include/simplydt/calendar/abstract_calendar.hpp +++ b/include/simplydt/calendar/abstract_calendar.hpp @@ -132,9 +132,6 @@ struct CalendricalSystem { */ [[nodiscard]] static constexpr const char* getMonthName(const Month month_repr) noexcept { - if (month_repr < 0 || month_repr > std::numeric_limits::max()) - return INVALID_LITERAL; - const uint8_t monthIndex = static_cast(month_repr); if (!Calendar_Impl::isValidMonth(monthIndex + 1)) @@ -205,9 +202,6 @@ struct CalendricalSystem { [[nodiscard]] static constexpr std::string_view getMonthAbbrev(const Month month_repr ) noexcept { - if (month_repr < 0 || month_repr > std::numeric_limits::max()) - return std::string_view{INVALID_LITERAL}; - const uint8_t monthIndex = static_cast(month_repr); if (!Calendar_Impl::isValidMonth(monthIndex + 1)) @@ -251,7 +245,7 @@ struct CalendricalSystem { */ [[nodiscard]] static constexpr Month getMonthEnumRepr(const uint8_t month) noexcept { - if (!Calendar_Impl::isValidMonth(month)) + if (month == 0 || !Calendar_Impl::isValidMonth(month)) return static_cast(0); // TODO: Fallback value not acceptable here... const uint8_t monthIndex = month - 1; @@ -298,9 +292,6 @@ struct CalendricalSystem { [[nodiscard]] static constexpr const char* getDayOfWeekName(const DayOfWeek dow_repr ) noexcept { - if (dow_repr < 0 || dow_repr > std::numeric_limits::max()) - return INVALID_LITERAL; - const uint8_t dowIndex = static_cast(dow_repr); if (!Calendar_Impl::isValidDOWIndex(dowIndex)) @@ -354,9 +345,6 @@ struct CalendricalSystem { [[nodiscard]] static constexpr std::string_view getDayOfWeekAbbrev(const DayOfWeek dow_repr ) noexcept { - if (dow_repr < 0 || dow_repr > std::numeric_limits::max()) - return std::string_view{INVALID_LITERAL}; - const uint8_t dowIndex = static_cast(dow_repr); if (!Calendar_Impl::isValidDOWIndex(dowIndex)) @@ -427,13 +415,10 @@ struct CalendricalSystem { * @return * Calendar date */ - [[nodiscard]] static constexpr Date getDate( + [[nodiscard]] inline static constexpr Date getDate( const YearInt_t year, const uint8_t month, const uint8_t day ) noexcept { - if (!Calendar_Impl::isValidDate(year, month, day)) - return Date{}; - return Date{year, month, day}; } @@ -457,9 +442,6 @@ struct CalendricalSystem { const YearInt_t year, const Month month, const uint8_t day ) noexcept { - if (month < 0 || month >= std::numeric_limits::max()) - return Date{}; - const uint8_t numericMonth = static_cast(month) + 1; return Date{year, numericMonth, day}; } @@ -608,8 +590,6 @@ struct CalendricalSystem { const YearInt_t nextYear = from_date.year() + 1; return Date{nextYear, fromNumericMonth, 1}; - // NOTE: Check validity of above date values first before return? - // (wrap around to valid?) } /*! @@ -697,8 +677,6 @@ struct CalendricalSystem { const YearInt_t previousYear = from_date.year() - 1; daysInMonth = Calendar_Impl::getDaysInMonth(previousYear, toNumericMonth); return Date{previousYear, toNumericMonth, daysInMonth}; - // NOTE: Check validity of above date values first before return? - // (wrap around to valid?) } private: From ca19b94fb137dac7a367001226a364f052f73a7d Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Fri, 26 Sep 2025 14:41:43 -0400 Subject: [PATCH 395/400] Update gregorian_calendar.hpp Small documentation update --- include/simplydt/calendar/gregorian/gregorian_calendar.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp index 9a2ebfd..06073f8 100644 --- a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp @@ -431,7 +431,7 @@ struct GregorianCalendar : * or if the provided year is unsupported. * * @return - * Number of weeks in month + * Number of full 7-day weeks in month */ [[nodiscard]] static constexpr uint8_t getWeeksInMonth( const YearInt_t year, const uint8_t month From 2e82ddea080edb541c11346c1c7ca64a6b39980d Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Fri, 26 Sep 2025 15:17:02 -0400 Subject: [PATCH 396/400] Bug and Semantic Fixes --- include/simplydt/time/utc/utc_time.hpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/include/simplydt/time/utc/utc_time.hpp b/include/simplydt/time/utc/utc_time.hpp index 17864b2..231cbd8 100644 --- a/include/simplydt/time/utc/utc_time.hpp +++ b/include/simplydt/time/utc/utc_time.hpp @@ -115,7 +115,8 @@ struct UTCTime : public SerialTimeStandard { */ [[nodiscard]] constexpr uint8_t hour12() const noexcept { - return Base::hourFromSerialSecs(this->serialUnits) % 12; + const uint8_t hour24 = Base::hourFromSerialSecs(this->serialUnits); + return (hour24 % 12) + ((hour24 == 12 || hour24 == 0) * 12); } /*! @@ -127,7 +128,7 @@ struct UTCTime : public SerialTimeStandard { */ [[nodiscard]] constexpr const char* hourPhaseStr() const noexcept { - if (this->hour() >= 12) + if (Base::hourFromSerialSecs(this->serialUnits) >= 12) return MeridiemPhases[PM]; return MeridiemPhases[AM]; @@ -142,7 +143,7 @@ struct UTCTime : public SerialTimeStandard { */ [[nodiscard]] constexpr MeridiemPhase hourPhaseEnumRepr() const noexcept { - if (this->hour() >= 12) + if (Base::hourFromSerialSecs(this->serialUnits) >= 12) return MeridiemPhase::PM; return MeridiemPhase::AM; From ee0422ad2c7539a61f219e1b19c6721a9d23fb66 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Fri, 26 Sep 2025 19:27:07 -0400 Subject: [PATCH 397/400] Bug and Semantic Fixes --- .../calendar/gregorian/gregorian_calendar.hpp | 26 +++++++++---------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp index 06073f8..b3ffb9b 100644 --- a/include/simplydt/calendar/gregorian/gregorian_calendar.hpp +++ b/include/simplydt/calendar/gregorian/gregorian_calendar.hpp @@ -440,10 +440,16 @@ struct GregorianCalendar : const uint8_t monthTotalDays = DatePolicy::getDaysInMonth(year, month); if (monthTotalDays == 0) - return 0; // Unsupported or invalid - - return static_cast(monthTotalDays / DAYS_IN_WEEK); - // NOTE: This is useless, instead make it number of whole weeks? + return 0; // Unsupported year or invalid month + + uint8_t disqualifiedDays = ( + (SATURDAY - getDayOfWeekIndex(year, month, 1)) + + (getDayOfWeekIndex(year, month, monthTotalDays)) + 2 + ); + const uint8_t fullWeeks = static_cast( + (monthTotalDays - disqualifiedDays) / DAYS_IN_WEEK + ); + return fullWeeks; } /*! @@ -837,12 +843,8 @@ struct GregorianCalendar : */ [[nodiscard]] static constexpr Date getNextWeekend(const Date from_date) noexcept { - const uint8_t dowDiff = SATURDAY - getDayOfWeekIndex(from_date); - - if (dowDiff == 0) - return from_date + Days{DAYS_IN_WEEK}; - - return from_date + Days{dowDiff}; + const uint8_t dowIndex = getDayOfWeekIndex(from_date); + return from_date + Days{((SATURDAY - dowIndex + DAYS_IN_WEEK - 1) % 7) + 1}; } /*! @@ -864,10 +866,6 @@ struct GregorianCalendar : [[nodiscard]] static constexpr Date getLastWeekend(const Date from_date) noexcept { const uint8_t dowDiff = SATURDAY - getDayOfWeekIndex(from_date); - - if (dowDiff == 0) - return from_date - Days{DAYS_IN_WEEK}; - return from_date - Days{DAYS_IN_WEEK - dowDiff}; } From 3eaf9d79d0b45c3f76555c4a00b5a5f7a3320ace Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Fri, 26 Sep 2025 19:28:32 -0400 Subject: [PATCH 398/400] Update abstract_calendar.hpp --- include/simplydt/calendar/abstract_calendar.hpp | 3 --- 1 file changed, 3 deletions(-) diff --git a/include/simplydt/calendar/abstract_calendar.hpp b/include/simplydt/calendar/abstract_calendar.hpp index 580950e..4efda67 100644 --- a/include/simplydt/calendar/abstract_calendar.hpp +++ b/include/simplydt/calendar/abstract_calendar.hpp @@ -317,9 +317,6 @@ struct CalendricalSystem { */ [[nodiscard]] static constexpr const char* getDayOfWeekName(const Date date) noexcept { - if (!Calendar_Impl::isValidDate(date)) - return INVALID_LITERAL; - const uint8_t dowIndex = Calendar_Impl::getDayOfWeekIndex(date); return Calendar_Impl::DAY_OF_WEEK_NAMES[dowIndex]; } From 913d9b36bb0b0c4373103f0534bdcd7cc5886a12 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Fri, 26 Sep 2025 19:28:38 -0400 Subject: [PATCH 399/400] Update dev_exe.cpp --- tests/cli/dev_exe.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/cli/dev_exe.cpp b/tests/cli/dev_exe.cpp index 8d835ed..f3b74ca 100644 --- a/tests/cli/dev_exe.cpp +++ b/tests/cli/dev_exe.cpp @@ -141,9 +141,11 @@ int main(int argc, char* argv[]) constexpr Date rtc2 = Calendar::fromUnixTimestamp(ts); constexpr Date next = Calendar::getNextWeekday(jtb); constexpr Date last = Calendar::getLastWeekday(next); + constexpr Date mvv = Calendar::getNextWeekend(jtb); constexpr Date weekend = Calendar::getLastWeekend(jtb); constexpr Calendar::WeekDates week = Calendar::getWeek(2'025, 0); constexpr uint8_t wkIndex = Calendar::getWeekIndex(2'025, 9, 22); + constexpr uint8_t wks = Calendar::getWeeksInMonth(2025, 9); constexpr Date today = Calendar::getDate(2'025, 9, 23); const Date rightNow = Calendar::getDate(SystemClock::now()); constexpr Date nxt = Calendar::getNextDate(jtb, simplydt::gregorian::MONDAY); From 72c09d4ddc7d134cf9ab22665f291402cc3dc0b1 Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Fri, 26 Sep 2025 19:42:17 -0400 Subject: [PATCH 400/400] Library Version Update Official first version; lacks all functionality --- CMakeLists.txt | 2 +- README.md | 2 +- docs/Doxyfile | 2 +- lib/metadata/version.h | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ce2306d..e418f57 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,7 +20,7 @@ set(PRJ_CXX_STANDARD 20) project( ${PRJ_NAME} - VERSION 0.0.0.0 + VERSION 0.1.0.0 LANGUAGES C CXX ASM ) diff --git a/README.md b/README.md index 0f2496f..8b403dc 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@


    diff --git a/docs/Doxyfile b/docs/Doxyfile index 49bdb9b..c7f91b5 100644 --- a/docs/Doxyfile +++ b/docs/Doxyfile @@ -48,7 +48,7 @@ PROJECT_NAME = "Simply Datetime" # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = v0.0.0.0 +PROJECT_NUMBER = v0.1.0.0 # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a diff --git a/lib/metadata/version.h b/lib/metadata/version.h index e3a6b15..c92ddd1 100644 --- a/lib/metadata/version.h +++ b/lib/metadata/version.h @@ -32,7 +32,7 @@ const uint8_t SIMPLYDT_VERSION_MAJOR = 0; * @brief * Software version minor. */ -const uint8_t SIMPLYDT_VERSION_MINOR = 0; +const uint8_t SIMPLYDT_VERSION_MINOR = 1; /*! * @brief

    7nN`44?dVPW9*#eH8~2uh(ryO|5NZ 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 Mk3vr`uc`3A0Cr!tpa1{> From 3302883af328d056bea2ef7d3f1c25c2946a117e Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Wed, 23 Jul 2025 20:53:52 -0400 Subject: [PATCH 058/400] Create diagrams-Design_Markup.pdf --- docs/prj/design/diagrams-Design_Markup.pdf | Bin 0 -> 247001 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/prj/design/diagrams-Design_Markup.pdf diff --git a/docs/prj/design/diagrams-Design_Markup.pdf b/docs/prj/design/diagrams-Design_Markup.pdf new file mode 100644 index 0000000000000000000000000000000000000000..a842ac7755d8de22c2e2c9ae08ba49cbf3a53e47 GIT binary patch literal 247001 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%0A3;+QX>&BDvy})G5MgqDQ`$i;%O>-BR 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

    8iO5)Q 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

  • t?D3i(utZu(|U&dBmR*#cf3o|NXPsmrKIRiw4R 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�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 literal 0 HcmV?d00001 From 36282c1210541aa8bfd2114a743a7e30b0c8e1bb Mon Sep 17 00:00:00 2001 From: Jamon Bailey Date: Fri, 18 Jul 2025 17:50:13 -0400 Subject: [PATCH 012/400] Delete gregorian-Date_clsd.png --- docs/prj/gregorian-Date_clsd.png | Bin 676537 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 docs/prj/gregorian-Date_clsd.png diff --git a/docs/prj/gregorian-Date_clsd.png b/docs/prj/gregorian-Date_clsd.png deleted file mode 100644 index 899ff7754e19b1f35de3ebb88ac0f24a63a468c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 676537 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 WK5x85Y2p~A&iz@ZdYNRCdhDvX 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�$= zz#ulBjgdywsd9QSCZIjG`>17#Sdh>DxWT1}*zVGyC1(^wII38|f>eu4T(yFP}lQlOy#>0{xXF7h(Fmjt)d%W`Ogc682_YuYZ$aj-r^WXpiVjUQH) zs>a``GC!S$xvO_zAr*sd_Fb^mlO5}vZKk9iy;!N(wKnx8e9~FbJ!L_SrruZ0MBc@; zD7|h7)>(JOgi_PpI^$A&|l& zHXdNpw1c#=yp)w0r;Xt~y-l?_LMa%k$GT`Vwv2=3rfW{umTcOXzR#sx)&6x%r)_XE zE>Qgn6q%}#kZKgJM^;m4m~ItR6)|X^vRrOq{ri(gc@su4j>Fw=A|sZ~Pg6oV%Z`?u zggCSidID&Klk+wz8)?q!B?tJ-@Pug#R7RY#2|IKj(W}Y&(oCfx*H=nLMn4a_(j`!8 zfZY;1ALZO{lAc7eW=I^lxRc-II=UDhzDMGQ@HDejE__g_M=HcxVK1eYI3h0hM8C>R zp-We~h@H06Xr02t`iH3ngx0}Sn1d)Tu$y7qnx(s&f9%4z{p0|99*s8a4A;py5rWhh zp5=4`Ek9d2lQ1hJEQa&uYEhkEJ#kbnU2Lz|rT!u>*P%FkG@<&ELbH>2nu|R*R~3(0 z-^nwVc_&`!rdQ%_%+9*6h+>b^db?{&si&sDHIF|MQ?fNVXjiI_Xib2na>=u#pS6GG zn3aEk+@*)@;l;E{*h62WISQI&5w7vDHRa-=d(bz}n~0I?HuZ+5oa#_uziPr2&Pe$e z8L#pxx)ySAN%d{!mm7ro}rz^Z%m6z_?gFam3`|=XQ0U2 zx3SlUtR$-^D2+Pw;yZ%&Om?^VUo~TroA#KLUyqfgja-X#;+d(7e;SPE#OW33P1-Xh z4@pgRr4*?Z1xBQbX3JefY@T2z{-|Q0_>n-YRw@+blhI@^wpDnf)uqnIE_9iX<^0Hb zeNJ<=@JM#vJ^OYX9Hy)>Z|!fX5rD-R$_f|5>rj`%vkC|^)TlfMrFrZ@iWd-H-RG$2VmX0MLI+u9D0CVQ+eslsE3Fv_OuZwS@p{(a<+6B+Ox1aQ5+Ifd7>|G zju|C1Xzq}WVBz8~Tg;P9C=;POg>xIC-*``5?Zmm1AEDq9-=4K(i)KSsd6McKzDYxj zZb3V7zRn{2{XMPjJrHq3X{0xEbhdL*&Pet$8R}GPQKK_Yf6B?+zS7=de56K8eFhg5 z`J@M&IBnhfCOC)G5y2)?uR7XcClqa^Lt|fL7lR>no14@z)8`%SgL89OV<*yw%dl>Q zp5hw&u`R_|veIRh-*3C()%F(T<=D1f;a3z{>*?rr!iOfFOE7zt5tXQZUA)A9d?BgH zjE2v|H2xYJGKe$Zy}Xa5X%CiQ8cN(^uD{5z^nBYA0}Nh&Ik9BSP`6hg$|9uEN8^Dm zdSLKv7_@WKLDcU5|jQrGKU%S;nlJM2HnCc~wIw%n9qfzHdfXK{b6yt#8f>dF*&n!DCNMy-I85#jbw0 zIDQMHZmY{^-gXC__gYfjhta(0=Y+rN>U&2zf7B;<)xP-r6oV^VV;-h8V2vJlddn(= zd@RbjekEMG<({Ua89j3vOpp^3`mDnTnwF5=o@MkR%tBkx2NNQXW@kE|_OoMkSEOAyly##n zb8Rdw){oTA$cG{-O=kzUMwEFJJ>?SwP2gpEK7$x3nOuApUY>mnseb&xRCUP-Rr508 zcj`?kRN|)Q8d*JxwJO}*kTJY>b{xZLL}{DiZ^f;WSjy6FX-}TEE{jQPHR2}U!-TAX z>AUeL+{4zD*BR3pjLqZi^Rq~miHX^#3cB^Tc$iR>rRu+m>JKrY;cw_Ca<`U6p=H+C zw^ovp^UZ}(j-lM<6K%1^?}{{jHP6~FO79!wO@)riK!itH<+bB@c;HainXII1Y@-5d z*sZ88Wl9M}2DW`W8D?OOC;EN!%wO`Go#r%8l4)Z-db#L01)Oq96XULLu}Y;tQ zO)IWVsE8YkaFX&dcbw0O^}dqGWJK*zIF3R0Jrwc$?RXYyEgOq8u}pp1x**AHRb0#v zCv(m8G5m@rgON?a0Ivg$7Lk@BtmZsO|} zW7kWchGid65bHB8MG=a+{mbT`QOja!X@%nv{vZz(2#tqAez9c6` z=c$dG1Z{M5v?$APs!Gw3N=44%?1%=Hk+&I_Y;es5Qt?5J3UXA;76*NNJge6YGIZ-9 zYCYxd(-ju!bgmXz$B-waoz6Bn##e6sZdyE-A>N&qm)><{z{5#Yl)7(av^_`3W7i7( z`;Hv77W0hk%yKe|BkvO8e68i5@dq_^$_%S;#I*J~aH;en^k)=CYoZPWkXm4t6Vz+` z7L3Ai%*?_nsN~i4dVA?`Av!jQ@p+D*7QcWn$iqkNl#!7>q8O=0m}2%}#?w^RM)7t~ zD5V+C-1SsDx<_I$f_ExI8b^K&yc^~-DjeVW>TaJ zk_|yXUlgMo(`I1IQjg;dR_1oQUcxDCfpaLa#?lDPQg5ORxr;bj!b_EVg4wv8%BGMM z&JI}Dy|+waZ8RbZCrx-9$31+~WKYw^tg2r}uMyEkDvVZ%cVXEL&((mT<7tJGYVV{M zIv3a}M!N_X3y|ZLzV2A|b-!snVpHn8&%7HXma=myu4m*#ckx8t9qP5e@1%nJ`Ta z=llJ-=2Qe}_{)j3gjmA!`Qy4 zCM^ZEXV=rM^!gv%HO?gs-J_G>YtDv9QHPm2dAj`0_a*}RQ9IDcYQs;r8EeiZm@5Jt2O;3E3dA+#O z6lL3*l&IRL##;r~twH0R&^09s@hG&1&GjLM__nlj$2$BS`4T%^C{m4T{U@8FHE?^f zs-sdw^-jJs=e2c%-fVupG@03TdRc37bAYB~Nki}Wc!_N|PM!SY@W2V@@T{)RZri)A zNy{ZF*nlyYjB2qon3zYm?jh$(xu&gUuXWSf0bd zPqMvi%8VG0HmKaxRxLf#nM6p(;lk&>0p+5ijw%BxdxE=1-npmYHxC_N?Qvj(cx>q` z&U0%hD7voMDiNa3$VsV6Mx{NE3OA33%R>~Y(wK6(@;w}>A5dV+v6dwWhE<((NJzxM zQ)Q>Rw9?tc#NfEHV5N@~GW_Uw z9PJ~nMtYNY*(}tAU%}U_h`2Jl%i)Efxmp>8Bf}6x3YSI$wDIIT8Ka!8RRH(+syRGc-P-18mT&AYsM9|nrp%&kTamSV)Gs+ zrNic`fqFjs)X#LOliryERaayUfTZE;nC_QZqrk%H?tI(gmX>F)l(zD^fq8Rnouci%mm$8g0 zy?_v&$2H4S`i`Q#+5F)&&pKvZ6d!fo$ViUKMv}9!V1I+OGEtY%#9nu@xg?yx7f(q%&4KGvHTAAJC` zw!xJ*7)~SfLQjj_eDm%63#)5^t#aeOB;r9_ecs-Eu@REB@>XYQ%~R38PumctH8Rei z$kC4@<5hSt{^KKedycEkaeC!>s|_|D8*%nvjcQ@|%dqN0+P(vOde%HmQ_L)0-MHD| zO?NnkLfUR+%#EVq+@pts+Q#Q5L~iIEWP>FYwU;?WHb-d?3Ujd)m#kAuQ$`JscMi** zhx*7D-x?y~XzU}7vWIlan_rOaR#pi(uiuz$t}yCiGx3(b+lSZk?I8Q==5_D)#OY5b z&tmtd1x}c>wdFOvYtKwV_+^I;gKALgQKPPc6ETf#3Z9#OK7Kxi*!CVa8fh8oNTCr} z;)J0p*G+@VXLN8urrLX_z4C^7+ezG;#PvD%>~ML;tR-9e-t&CAkxIYUhzde4BR)1F zxDIY_IGiZ%vT}QGtaXo0dEXoagURr!<9a-G)Mr%-qpc*WOPK4Xi(GwyD`S)&mw;W& z&@DXW(aUR<|IB$g-MA?|J%av)O--W93pJFs?pv(|b>r0@*}_z+%OtN)9?`rbQ@nbi z&v1mi=H_Nb7%B^enXbO@7)O)libxsBSJKgT&}Hchv**mknT^Hb)NjHrBHYT?ZD%Xz zv|mJCBkmE$W}>W4j`mDz(x4=v55B5=St?xbI`0O@UWlh-2ML)OmdTd?k%h#qIv-xC zT3b#VTV-eBl#`Lo#M86I{CbWTwjN(%s)sSea7iVf65|j~*{^5%tCbqc?8qK%Qy3Gu zy_^BcvpgkvLni_g>&KR>oV$ctmQd{K?N~{~l-R+8t)F9Fs09_2QL~w;IeE^-v^*mT zq7fQi+9V+2ZVKwx@eMrTY`B!+Bv1K3yyenSxx0GT;qfwdjo0;ay1FBqW0@uA9yT>z zjD}&5ksMwA?7!@Z?|RB@{^kUqdG*1iF2=aro0^Gf*~z81%f+G2{eC9r^9s2!wz_c( zoC^D8C>9K8wL-_GU+9Q0zO0t*J44e|imKzvMtQuI+^g?FCUYy8pEHMZH$0ok*E!WL zqrulMF5mZ19wfPqqsfEMx-xxP(>iTSmpG8aq2|#dG$^_yfny{U+t@%$sXDWFrCc0u z)5_@eCSbMt^V=MPGfid(%k`HYcq=rG_^s%@ieAoeh!JvEqETDN)2TBcu4KJpX~?!t zPorMFRmYQO#|0Jz>-Z>&RE0phZV3jdS*@exOefneH*zW}I#F@#)UDL!%pX;-L^)lagD)ifKA;%8F}oO$IG3vYx$h?COC6+^67 z3~(M4bT@TuR9dL~0$l_x2j^>^^A=XJFKVma%$rPrH+`Bp6uc>RsWTvj{qjVhBDad< zsx>0mhtV~OzrO3l0bvUD6Oi#v*%n{Suq}JZrWH` zgO*yMU}jB$rPJO1eP*&!L4JqSAGJC$57H?hWxEYye$(Z7Ry?~fG)gchW~ol8u3e)u zQCWW%s zb9_TW*mw~W{rj6mr>$!Iazkn~b2J-*1X_BsY;m4*0VjpBZ(S`d7xTlkTf`ow25Gr9dri2BjdJH-Re871mEtEuc#3Gb&ja%QW$ zlj}|s=c8{e5fc5vfv-BrTO&QnDSW=l%qpiVr86D+P_LX~eehy` zb`OkzJ+08Zm8mgMfK}zXSKcFnN+b+xt!Mt%OgYU>4&Ax4Gc!KYiW7wOT3A+(*LYL< zrPd-HG3W@{>DjyW)ygLkWs&VpZsLdKg*gTk&aO78)HoWazQnb1pe6g1iPfoDCY?$= zQ)7{)7_^O~$e^~*!_uW>`Vg(igg>n)TgtvGc*#J8v;qP*iG5_&Y&z_$;}3Lq$lXBR z51;7>w@Bh3kVy&l@bf>DTH1)d70?*TYh`wvCe%J9Yc`Ah&_U;<&X>no(%o+?Khw6Z zSBw^!QWrZ5ai6fx%J;Z)i3dHRJ}wL={xEN9mP+WOCEvlya}s$yUh=lZFH~6Dd>lR8 z5SpDIx|}RoEehCs&D|;74f1?fcXd}O3m=^nY-96n-Y~UHdwt5SDdl1aaTO#5&U|Qy zFsHC=n{b@9oBs}PSENFU#r&`a6%V>S_Nny&TQ^RN0+N(yT#8vO`_kt1^Z+6h)Oixv zdmp*Skj{FYprcabjOiK~VJ7IP@bn!zK4v4c>hINO7IKW5f|;Ktt* zRQW(n&+!o*@+qN0rbf+R=|H)hvteGjGb?vl*~22OIXveiSJ3IjhcJj3H{ty|;U-Zs z@x1t9)OiuE;k$Kwk>M7z5sf!vUSc7cSr_vfi7x)!RAV}_M6s(xKzjp)d##DIoeBw* z^P-w1?GK!t>F&y=Iurwgz2`}FCS;MOuP$FbDs9l*C@W*C%*o%^SB*`n?kbG(Ij{XB z+mf@sk{V{ucYa->dYQfHk-1`Nq*EvbrUZ{Y8YoT?NF8=P!_u(`wzZ46qL-_5CEZ3P z_)G*PyD|K9r-^Oy5(-ayxrNL1b;=!j-Fy>|k5gzKnR&Ol z>5#I7<;l>y7TFxcpAkK%G-^lht%Xdq$gWE~OYY_5>=obDd86Ikq&j`1y-7H*uBPjz zrdZ4V{76={OanS)D?6R;>FibX_&`t3P62Luu??~st=XKp2%?&AzOw2nTDNH>5u@AY zwCRrfOZ!WvJ&U{g?^~=ck+A=!nu1vDxgIN^NA(y-&2ODyZs)w`RZT6{Zft>@F8P-O zHm8W|Omy7_SM{q<-n#)wAbjI9b#V>Se6wcflpZ$0J9XMg zJDc{z_$PUJ-O0luaTp`PR2L+SrwGY8aZ@m(-C7cD7&rV(nf?v+=Cl1POS|^b=Ta5O zbH*qk2XwlTcI}C9QrFbkLMZ7B(@-&S<_uQp^Na)0vArt0MeU=j zVQDw8Xon1yAK}V6NSP8Y;Iqe$6U(t~VVg(nst%@JFFAJepe`0=nN^s3PB05P_@u~5 zytGSHVJjzH4^JGu%hBxW))jcsU-c_I7bi^YM9(6%Kr-x%Ou?o&iNU%t$`DZ`jIeIb zL1B{4Kabifd9ndH%*rtyYHU4DJ$QD|c06fnL`zk{On0dz40g7iIEd6sZ2uAsE$gx= zhrY4MH{2?YwohL~-i&uFiEc$b>9(#B%Mmy6B&B;6C#y7(8S~1_Jj|MRe^E}#3z%cw zsErm!{x~(RiThJ80M~STWged#yI2cp`KwK|o{n~vn8b$DE=3J-+W^`baVY81gZDnJ zVS`OD2gaIb_-%I6l3jQ|M&6V8wyCl6K76i_gp{QfkDvR^etlvCLMv91pr58!WQB1a zT(Y};F2m1ka3Lm-J0^?PXG{@uZY4s$OSp`^G#yHj zPBMh3@|5 zUYwZ$OBI+^osQRYG0w-Wt}BV)=$YHp`nsd)e0d6OxUaC;+IpBIE#5wnoSS+&_xz>) z-&}ut^l&tVCUWK+t;XZa<0;)lPZy>+Lu8D_$YSEdeUUw65#ci8-$XeP0W30S4l{f~bN;w#w?^mgVTe6+`F!2+} zC@Y~B8#V)-%+fU1(Gxz+g}!?hwOLIX0$mc(g3m0&F-M?FLI z$2h)MXr;jo7dM1QP(m0_a~4=>!TunP6LBmI5weg%uuPZzbn$ID>Ww_&EvvKFEd4qC zn;G|O37(O`MnwvheN-yw6^Xv%%>@G2W&T#@d5-zysXQ+BKr^0*&SXyoTg?MTf=dD`O;|9k&n8grk8L8ks!+eaTwzBYx#3| z&Lf@z%Qq{hw%xx=>Pk}qJ$+H>BFPB5lVcf`s9II8dBaqr5(=mp}j3=toVGB zXUHWDGkseIo|e&u6|rOSV?YFQ@0^r0|D(42eNi zD?RF&v3VWsf~z+**;>Q|gp`lw+U36LZECc$v@xEni@H=S%6-Swe)P$U^Xa*>kO-p1VnfzE8L}s6 z8-$1pPh1E+k_b)_vgDV?#?ZNSc2gU67x(9w^;s%28?&^YTJx{yBDst0d>6;klm;CP z=HeSxw&;NAC1G^N?VZ#1H+Yf9k#m&Irln8xC?SNy;qR*dWR(@+`MlTmZu8@Js!*gl zHJ#gTx`Xg%Fy6oatN+P)r>)I);*i5*;kI55bzOvS?+BbmO@2X-l?HX$Os;w@|9p{o zyWMFUw}hO=F6hVQWh%_ZH*RxE?YIvkd6e1ib%dqKwm#a0o|-0*x1X_P=J1H8G?OXM zVJnwzuZ~b2H8^wU>eAE|Yt?eiUmeQ7Oa&KyY~HLRDvG#hH90| zI_4?((5cAFq9AD@_Nd|}FLN`jNvS#o6~fl2sHbRswqGSaq(AGP9TC&{I;S4N{b`PH z*ocKuXfwwoD#vX+xvOp0AT3W##U5%`V&&D`se-)KfvcK{DPPZ5l`2tbfI7ylUibkZ z?6^{d~;_fh7xGlCA&J(G#i0Sj3(l*~LHI@3lLe*Q+-w06yL7l-Rq z{lyLn=+SyaPL*epL;*KrMe%3F+>U#ssuLy5y!sXGpPFKyT0zWS7Ry|*{26XbDI@ll zBq|mZ@$YTTh8g12p!&umQCw#%;!}dGTVOASav6=~PM@A_Iz*Qs-{21yu{(J`O!>VH z4AGv@o|RQ*U3Vso=T1s&TdVSm)!lz5y~n;1TxO z#Kv8?$l4;!pZBZI{5IpMO>5FMnbXXi%`@Ke@s|*03I&YFehmuZfX?TtzNXJ(`fV(P z=kNo?l*)0#-DEvi?{BWbhTrUSHMuF}2WQur*S-D6kkqkX6!log1Qx3td4A-f@7%3U zPkibW*L6Nqmh2<|tc zV?L~iuLwRV>a@r_xQmodY(TqsudtP8;ERLXd5V8N@`@HpVvy(5#-RReB&ay?tKNwd zf-aMA|K-i#_Z24$9FK2%)zqg8SNMPU)Hu(WmTk8u{8Jl4rYn(_Rxw$>6O*%ldVib8 zravq&hB&QEiu~{w`77M}Wr=>je4IqU%D6aXf zeriX*5HvbS@9GLxs z`~8r+5KjgU_t|9mc#|`qdI3Hk+|~;a^MH1L;(wd*2f}V!f%UaDL8yUH1EKaQ+59>_ z{(1yJ20-QqGeUq@fLDN5fY-mu$k!18garr-5SDF@wg5@}8X(&_0w4n*10Vw+^PN#` zfYvKS;flvdX2C5fOy@2ZF3v~dJ`h`KhE^Ytu2#{1DsX$VJqyk9= zlKO>$07?DAApa-82(@on z=HFuuI2>>|kiG8w1-kTb=~FMjwmbp=2LJ~wq63TQfV}=QEc<|;NrmS-xv@B z4)+BbL8t-9d?P5n1rdPPZ&~KwB{D2G|Z}9sWM3 z|L-FVf4CS3H4th)kaYvd0LTEyY#$i_uiLlPU*!r^sh~;)RVt`bztIi*-#73N>hqrf zG*GplFd9gmLFx=r=j{g$fXw!71ybh^{oemgMT2DDk-$&A0N@dT!J$vd=3j&CYrpt! za=x!WcsobH#X-3Y%4JY4gL3&B88%2Jw<9B8p96#i2n!GvAS^&wfUta_4nR`BFv!2x zho4Udk_sdhNGgz2AgMr7Ka0X2FMyxiHQh}rbNd=M$Bo#>N7c%i5m(*8A&$B=E0{nls zDZ)p0{Et5ZVD=vrM`GFqQYw&A{h-%?IR8R>K=tySA4CC=0gwTZ`PsVdZ<}@1kpJjr zT^D34dXsWIn7&gqeG6jgzed5+(Hha;*iG#_j}=@TnEe~IDsZ?jRTG37fXqK_-}UWu z6W|r#72x&T@$omF0KERq9NSDsFWdu=0gwTZ0g(9)Jpf+6W1w#U7vL4(72p-%^*i(c zc>Run{s-Z8*2=`;Q!l{hy9S&GoCll-oc|1je|`Zt|Ic>$2HroP4Dbr@3h)Z>`WXoS z`~u+hpX~zh`Yn6{VfmJ2zT-(C)V^b&Z^RsMIN)#~lL48`cjy7|`W*uSynew^AS_=P zWV;RoLT$U2`g_a)hXW1=G8vG`e1{$Yuir7y->LffWPn$ISAf_5;ds@&w95af7vN)a zKcL-bfc?-5Ks!J?K)e6pv;%|#i)DWTQ-JM1VYCnG36hB)${{|V3>*$P97rZWGVvJ* z|NH{r^`GtXjRC38Cj-0!yaK!eynY74KfeHY{b#!XynYLx|09LvewG9FqJ7MgW5wX$ zSX53*=-ITFu(P$l4N?1@Y-Q@HdU@r%`g3v#m9|Hj&zYFx%gBE3xx8yva7Q?jgGQqL zj>)~AH#J#TB%d4!R8jKVmvE4rS5m9y;gK7d6Ww)T^7-A*-WuZv+`^Wx@0||WE$QMo zh94<+=@ngf5pP`+7sZi(xsT94y3fxu| z;X&zx^WS=~-wA}_!{_Y15hQY7eC&2_hKb|Gbch|npXFPdPW}7mk_8ZLC!%{v;>UL9 z`ShJmne8+}yu>(&Z1;BmzNy;%ySshi!;=!^Kd7jmzLOluF$lA6`N+P%f9!T|<_+VG z>7z-7R|h=#w#j>|-vp5#3g<8+-RBZ8yL77^J%W zr#H_FqC96WU*uMMWLqKnm2*CkCE6~Ulj&!7j|3qPLjEhK+J-BFkOv|EGeQki{@+!; z6=LA^sTbhi^b9CIQ2ZaubN=)ukmQ3Te;fM#bt(@OA1FRh{2vS*P}hUH{%6W7GEmop zp}bF{b3a5~Fq8*|@_uF{^8y&X2c!2tQ&ED^doX(cb+x#SBVfV~OxXRDQh^COFh~Dy zW8>eNwgz+bV2*wpy7YC~1?K2MTh0#^;eVbCCh5Q=-OrR%r@$l~n4~*(;Z1`G;ZrZb zPq-17umclzKc!lr5f?P#eyfK1x5=zipb-}|;{Kb1d`rYY?>*?f|GMhl#u3na50=~f zlv07^Hek8Ux76t0h6w*7Z8;TQtaHT*=-T;m;X};C#Nd7%afu%T*Cml3oc4)6d(N>l>A(e?JBFMz$SHD2=qq!D=GmfK`Y?)0rMvXyKDuZ$D{+0BseBiDd#gAakg8!KYm>nbC)0-pRqdLd*TV@F8FyDqEGn}Q} zM2D_8tv6$Nm=+j{Z7_^9A!@-?ha#@(5wCK9KI*)uTjuOdrY)Klr==8JRz@UKA-KT@bZVknnsqM!0=ZL%r-=bW9AiWOh-Pa=7v1GRBJb zvp1#}c^|F`{;0PdzYi^&>Y&s}cOQL$oH2J`gZ5i%j%!la!0L)&e4Gp6`7{2ww5Ka;gsk~ z>Q5DquFtPJGS>8ONM^%jr$!`CsqbkmoA