ALib C++ Library
Library Version: 2402 R1
Documentation generated by doxygen
Loading...
Searching...
No Matches
CalendarDateTime Class Reference

Description:


This class represents a point in time as a set of calendar and clock values (year, month, day, hour, ...). It provides methods to convert to and from objects of type DateTime . In addition, a method to format the date and time into human readable string value is available.

Note
The conversion from and into objects of type Ticks is intentionally not supported. In the case that such objects should be used with this class, an additional conversion step has to be performed using class TickConverter . In other words, conversion can be performed as follows:
   CalendarDateTime <=> DateTime <=> Ticks
This class is using system specific calendar methods and relies on the locale and time zone settings of the machine.
Note
This class is part of sub-namespace alib::lang::format of module ALib BaseCamp . While it is a pure utility class for type DateTime found in module ALib Time , the class was located there to keep module Time lean and free from dependencies to module ALib BaseCamp .

Definition at line 58 of file calendar.hpp.

#include <calendar.hpp>

Public Field Index:

int Day
 
int DayOfWeek
 
int Hour
 
int Millisecond
 
int Minute
 
int Month
 
int Second
 
int Year
 

Public Method Index:

 CalendarDateTime (const DateTime &timeStamp, lang::Timezone timezone=lang::Timezone::Local)
 
 CalendarDateTime (int year, int month=1, int day=1, int hour=0, int minute=0, int second=0, int millisecond=0)
 
 CalendarDateTime (lang::Initialization init=lang::Initialization::Perform)
 
ALIB_API void Clear ()
 
ALIB_API AStringFormat (Substring format, AString &target, lang::CurrentData targetData=lang::CurrentData::Keep) const
 
ALIB_API DateTime Get (lang::Timezone timezone=lang::Timezone::Local) const
 
ALIB_API void Set (const DateTime &timeStamp, lang::Timezone timezone=lang::Timezone::Local)
 

Field Details:

◆ Day

int Day

The calendar day (1..31).

Definition at line 68 of file calendar.hpp.

◆ DayOfWeek

int DayOfWeek

The calendar day of week (0==Sunday..6==Saturday).

Attention
This value is only set when constructed with a DateTime object and set to -1 if constructed with single values, or if method Clear is invoked.

Definition at line 86 of file calendar.hpp.

◆ Hour

int Hour

The calendar hour (0..23).

Definition at line 71 of file calendar.hpp.

◆ Millisecond

int Millisecond

The calendar millisecond (0..999).

Definition at line 80 of file calendar.hpp.

◆ Minute

int Minute

The calendar minute (0..59).

Definition at line 74 of file calendar.hpp.

◆ Month

int Month

The calendar month (1..12).

Definition at line 65 of file calendar.hpp.

◆ Second

int Second

The calendar second (0..59).

Definition at line 77 of file calendar.hpp.

◆ Year

int Year

The calendar year (e.g. 2022).

Definition at line 62 of file calendar.hpp.

Constructor(s) / Destructor Details::

◆ CalendarDateTime() [1/3]


Constructs an unset object.

Parameters
initIf Initialization::Perform, Clear is invoked. Otherwise fields are not initialized. Defaults to Initialization::Perform.

Definition at line 93 of file calendar.hpp.

Here is the call graph for this function:

◆ CalendarDateTime() [2/3]

CalendarDateTime ( const DateTime & timeStamp,
lang::Timezone timezone = lang::Timezone::Local )
inline

Constructs the object according to the given timestamp object and time zone.

Parameters
timeStampThe point in time to use for setting the public fields
timezoneDenotes if the time that is calculated should be local or UTC. Defaults to TimeZone::Local.

Definition at line 105 of file calendar.hpp.

Here is the call graph for this function:

◆ CalendarDateTime() [3/3]

CalendarDateTime ( int year,
int month = 1,
int day = 1,
int hour = 0,
int minute = 0,
int second = 0,
int millisecond = 0 )
inline

Constructs the object according to the given date and time values.

Parameters
yearThe year of the calendar time.
monthThe month of the calendar time.
dayThe day of the calendar time.
hourThe hour of the calendar time.
minuteThe minute of the calendar time.
secondThe second of the calendar time.
millisecondThe millisecond of the calendar time.

Definition at line 120 of file calendar.hpp.

Method Details:

◆ Clear()

void Clear ( )

Sets all public values to 0.

Definition at line 53 of file calendar.cpp.

◆ Format()

AString & Format ( Substring format,
AString & target,
lang::CurrentData targetData = lang::CurrentData::Keep ) const

Formats the date using a given pattern string. Within the pattern string, different symbols are interpreted as tokens. The format is compatible with C# time format strings, as well as with class SimpleDateFormat of the Java APIs.
Strings within the format text that should not be interpreted as tokens may be surrounded by single quotes. Two single quotes in a row, will be replaced by one single quote.
The following tokens are supported:

Token
Description
y The year with as many digits as it has (for current dates this is 4).
yy The year, truncated to 2 digits (modulo 100).
yyy...y The year with a minimum amount of digits as amount of y-characters given.
M The month as numbers from 1..12.
MM The month as numbers from 01..12.
MMM The month as abbreviated, 3-digit word defined by resourced strings (defaults to English language).
MMMM The month as word defined by resourced strings (defaults to English language).
d The day as numbers from 1..31.
dd The day as numbers from 01..31.
ddd The day as abbreviated, 3-digit word defined by resourced strings (defaults to English language).
dddd The day as word defined by resourced strings (defaults to English language).
H The hour as numbers from 0..23.
HH The hour as numbers from 00..23.
K The hour as numbers from 0..11 am/pm.
KK The hour as numbers from 00..11 am/pm.
m The minute as numbers from 0..59.
mm The minute as numbers from 00..59.
s The second as numbers from 0..59.
ss The second as numbers from 00..59.
Parameters
formatThe format pattern string.
targetA reference to an AString that gets the result of the format processing appended.
targetDataIf CurrentData::Keep (the default) the string is appended to target . if CurrentData::Clear, target is cleared.
Returns
target (for convenience).

Definition at line 1114 of file basecamp.cpp.

Here is the call graph for this function:

◆ Get()


Creates a DateTime object from this calendar date.

Attention
The resolution and possible time range of class DateTime is platform dependent. This method must not be used if inconsistent values are stored.
Parameters
timezoneDenote if the time that is calculated should be local or UTC. Defaults to TimeZone::Local.
Returns
The point in time represented by the public fields of this class.

Definition at line 107 of file calendar.cpp.

Here is the call graph for this function:

◆ Set()

void Set ( const DateTime & timeStamp,
lang::Timezone timezone = lang::Timezone::Local )

Sets the public fields according to the given timestamp object.

Parameters
timeStampThe point in time to use for setting the public fields
timezoneDenotes if the time that is calculated should be local or UTC. Defaults to TimeZone::Local.

Definition at line 65 of file calendar.cpp.

Here is the call graph for this function:

The documentation for this class was generated from the following files: