ALib C++ Library
Library Version: 2312 R0
Documentation generated by doxygen
Public Fields | Public Methods | List of all members
CalendarDateTime Class Reference

#include <calendar.hpp>

Class 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 module ALib System. While it is a pure utility class for type DateTime found in module ALib Time, the class was located in module System to keep module Time lean and free from dependencies to modules ALib Text and all its sub-dependencies.

Definition at line 58 of file calendar.hpp.

Public Fields

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

Public Methods

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

Constructor & Destructor Documentation

◆ 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,
Timezone  timezone = 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.

Member Function Documentation

◆ Clear()

void Clear ( )

Sets all public values to 0.

Definition at line 57 of file calendar.cpp.

◆ Format()

AString & Format ( Substring  format,
AString target,
CurrentData  targetData = 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 463 of file system.cpp.

Here is the call graph for this function:

◆ Get()

DateTime Get ( Timezone  timezone = Timezone::Local) const

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 111 of file calendar.cpp.

Here is the call graph for this function:

◆ Set()

void Set ( const DateTime timeStamp,
Timezone  timezone = 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 69 of file calendar.cpp.

Here is the call graph for this function:

Member Data Documentation

◆ 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.


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