MT Core (C++)
Core library for replacing C++ standard in project usage
Loading...
Searching...
No Matches
Calendar Systems

Calendaring systems and utilities for processing dates on various calendars. More...

Classes

class  mtcore::calendars::AstronomicalYear
 Astronomical Year. More...
 
struct  mtcore::calendars::CalDate< Calendar >
 Represents a date without a time component. More...
 
struct  mtcore::calendars::CalDateTime< C >
 Wrapper for a date with a time component. More...
 
struct  mtcore::calendars::CalDateTimeZoned< Calendar >
 Wrapper for a date with a time component and timezone. More...
 
struct  mtcore::calendars::Range< DateType >
 Range of dates with start and end. More...
 
struct  mtcore::calendars::Fixed
 Base calendar system tracking the number of days since its epoch. More...
 
struct  mtcore::calendars::Moment
 Base calendar system tracking the number of days (and fraction of days) since its epoch. More...
 
struct  mtcore::calendars::Segments
 Represents time in segments (hour, minute, etc.). More...
 

Typedefs

using mtcore::GregorianDate = calendars::CalDate<calendars::systems::Gregorian>
 Date using the Gregorian calendar system.
 
using mtcore::GregorianDateTime = calendars::CalDateTime<calendars::systems::Gregorian>
 Date time using the Gregorian calendar system.
 
using mtcore::GregorianDateTimeZoned = calendars::CalDateTimeZoned<calendars::systems::Gregorian>
 Zoned date time using the Gregorian calendar system.
 
using mtcore::GregorianMonth = calendars::systems::Gregorian::Month
 Month using the Gregorian calendar system.
 
using mtcore::EgyptianDate = calendars::CalDate<calendars::systems::Egyptian>
 Date using the Egyptian calendar system.
 
using mtcore::EgyptianDateTime = calendars::CalDateTime<calendars::systems::Egyptian>
 Date time using the Egyptian calendar system.
 
using mtcore::EgyptianDateTimeZoned = calendars::CalDateTimeZoned<calendars::systems::Egyptian>
 Zoned date time using the Egyptian calendar system.
 
using mtcore::EgyptianDateMonth = calendars::systems::Egyptian::Month
 Month using the Egyptian calendar system.
 
using mtcore::Date = GregorianDate
 Default date (uses Gregorian calendar).
 
using mtcore::DateTime = GregorianDateTime
 Default date time (uses Gregorian calendar).
 
using mtcore::DateTimeZoned = GregorianDateTimeZoned
 Default zoned date time (uses Gregorian calendar).
 
using mtcore::Month = GregorianMonth
 Default month (uses Gregorian calendar).
 
using mtcore::calendars::YearBase = i32
 Year base type.
 

Enumerations

enum class  mtcore::calendars::DayOfWeek {
  mtcore::calendars::DayOfWeek::Sunday , mtcore::calendars::DayOfWeek::Monday , mtcore::calendars::DayOfWeek::Tuesday , mtcore::calendars::DayOfWeek::Wednesday ,
  mtcore::calendars::DayOfWeek::Thursday , mtcore::calendars::DayOfWeek::Friday , mtcore::calendars::DayOfWeek::Saturday
}
 Enum class for the day of week. More...
 
enum class  mtcore::calendars::TimeValidationError {
  mtcore::calendars::TimeValidationError::INVALID_HOUR , mtcore::calendars::TimeValidationError::INVALID_MINUTE , mtcore::calendars::TimeValidationError::INVALID_SECOND , mtcore::calendars::TimeValidationError::INVALID_NANOSECOND ,
  mtcore::calendars::TimeValidationError::INVALID_FRACTION
}
 Common try_validate errors for time. More...
 

Variables

constexpr i32 mtcore::calendars::NANOS_PER_SECOND = 1e9
 Number of nanoseconds per second.
 
constexpr i64 mtcore::calendars::NANOS_PER_DAY = static_cast<i64>(NANOS_PER_SECOND) * 60 * 60 * 24
 Number of nanoseconds per day.
 

Detailed Description

Calendaring systems and utilities for processing dates on various calendars.

Typedef Documentation

◆ Date

Default date (uses Gregorian calendar).

Definition at line 48 of file mtcore_calendars.hpp.

◆ DateTime

Default date time (uses Gregorian calendar).

Definition at line 50 of file mtcore_calendars.hpp.

◆ DateTimeZoned

Default zoned date time (uses Gregorian calendar).

Definition at line 52 of file mtcore_calendars.hpp.

◆ EgyptianDate

Date using the Egyptian calendar system.

Definition at line 39 of file mtcore_calendars.hpp.

◆ EgyptianDateMonth

Month using the Egyptian calendar system.

Definition at line 45 of file mtcore_calendars.hpp.

◆ EgyptianDateTime

Date time using the Egyptian calendar system.

Definition at line 41 of file mtcore_calendars.hpp.

◆ EgyptianDateTimeZoned

Zoned date time using the Egyptian calendar system.

Definition at line 43 of file mtcore_calendars.hpp.

◆ GregorianDate

Date using the Gregorian calendar system.

Definition at line 30 of file mtcore_calendars.hpp.

◆ GregorianDateTime

Date time using the Gregorian calendar system.

Definition at line 32 of file mtcore_calendars.hpp.

◆ GregorianDateTimeZoned

Zoned date time using the Gregorian calendar system.

Definition at line 34 of file mtcore_calendars.hpp.

◆ GregorianMonth

Month using the Gregorian calendar system.

Definition at line 36 of file mtcore_calendars.hpp.

◆ Month

Default month (uses Gregorian calendar).

Definition at line 54 of file mtcore_calendars.hpp.

◆ YearBase

Year base type.

Definition at line 29 of file calendars/mtcore_calendars/core.hpp.

Enumeration Type Documentation

◆ DayOfWeek

◆ TimeValidationError

Variable Documentation

◆ NANOS_PER_DAY

i64 mtcore::calendars::NANOS_PER_DAY = static_cast<i64>(NANOS_PER_SECOND) * 60 * 60 * 24
constexpr

Number of nanoseconds per day.

Definition at line 37 of file calendars/mtcore_calendars/time.hpp.

◆ NANOS_PER_SECOND

i32 mtcore::calendars::NANOS_PER_SECOND = 1e9
constexpr

Number of nanoseconds per second.

Definition at line 35 of file calendars/mtcore_calendars/time.hpp.