ALib C++ Library
Library Version: 2412 R0
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 47 of file calendar.hpp.

#include <calendar.hpp>

Public Field Index:

int Day
 The calendar day (1..31).
 
int DayOfWeek
 
int Hour
 The calendar hour (0..23).
 
int Millisecond
 The calendar millisecond (0..999).
 
int Minute
 The calendar minute (0..59).
 
int Month
 The calendar month (1..12).
 
int Second
 The calendar second (0..59).
 
int Year
 The calendar year (e.g., 2022).
 

Public Method Index:

 CalendarDateTime (const DateTime &timeStamp, lang::Timezone timezone=lang::Timezone::Local)
 
 CalendarDateTime (Initialization init=Initialization::Default)
 
 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 ()
 Sets all public values to 0.
 
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 57 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 75 of file calendar.hpp.

◆ Hour

int Hour

The calendar hour (0..23).

Definition at line 60 of file calendar.hpp.

◆ Millisecond

int Millisecond

The calendar millisecond (0..999).

Definition at line 69 of file calendar.hpp.

◆ Minute

int Minute

The calendar minute (0..59).

Definition at line 63 of file calendar.hpp.

◆ Month

int Month

The calendar month (1..12).

Definition at line 54 of file calendar.hpp.

◆ Second

int Second

The calendar second (0..59).

Definition at line 66 of file calendar.hpp.

◆ Year

int Year

The calendar year (e.g., 2022).

Definition at line 51 of file calendar.hpp.

Constructor(s) / Destructor Details:

◆ CalendarDateTime() [1/3]

Constructs an unset object.

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

Definition at line 82 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 94 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 109 of file calendar.hpp.

Method Details:

◆ Clear()

void Clear ( )

Sets all public values to 0.

Definition at line 28 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. Strings within the format text that should not be interpreted as tokens may be given in single quotes. Two consecutive single quotes will be replaced to one single quote.

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 1106 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 82 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 40 of file calendar.cpp.

Here is the call graph for this function:

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