NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
date类 参考

日期类 更多...

#include <datetime.hpp>

类 date 继承关系图:
[图例]

Public 类型

using date_type = int32_t
 日期分量类型

Public 成员函数

constexpr date () noexcept=default
 默认构造函数,创建1970-01-01
constexpr date (date_type year, const date_type month, const date_type day) noexcept
 构造函数
NEFORCE_NODISCARD constexpr date_type year () const noexcept
 获取年份
NEFORCE_NODISCARD constexpr date_type month () const noexcept
 获取月份
NEFORCE_NODISCARD constexpr date_type day () const noexcept
 获取日期
constexpr bool is_valid () const noexcept
 检查日期是否有效
NEFORCE_NODISCARD constexpr date_type days_of_week () const noexcept
 获取星期几
NEFORCE_NODISCARD constexpr date_type days_of_year () const noexcept
 获取一年中的第几天
constexpr int64_t to_julian_day () const noexcept
 转换为儒略日
constexpr void clear () noexcept
 重置为纪元起始日期
constexpr bool operator== (const date &rhs) const noexcept
 相等比较
constexpr bool operator< (const date &rhs) const noexcept
 小于比较
constexpr dateoperator+= (const date_type day) noexcept
 日期加天数
constexpr dateoperator-= (const date_type day) noexcept
 日期减天数
constexpr date operator+ (const date_type day) const noexcept
 日期加天数
constexpr date operator- (const date_type day) const noexcept
 日期减天数
constexpr dateoperator++ ()
 前置递增(加1天)
constexpr date operator++ (int)
 后置递增(加1天)
constexpr date_type operator- (const date &other) const noexcept
 日期差(天数)
NEFORCE_NODISCARD constexpr size_t to_hash () const noexcept
 计算哈希值
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 string to_string () const
 转换为字符串
constexpr void swap (date &other) noexcept
 交换两个日期
Public 成员函数 继承自 iobject< date >
NEFORCE_CONSTEXPR20 bool try_parse (const string_view str) noexcept
 尝试从字符串解析对象
Public 成员函数 继承自 istringify< date >
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 string to_string () const
 转换为字符串
Public 成员函数 继承自 icomparable< date >
NEFORCE_NODISCARD constexpr bool operator== (const date &rhs) const noexcept(noexcept(derived()==rhs))
 相等比较运算符
NEFORCE_NODISCARD constexpr bool operator!= (const date &rhs) const noexcept(noexcept(!(*this==rhs)))
 不等比较运算符
NEFORCE_NODISCARD constexpr bool operator< (const date &rhs) const noexcept(noexcept(derived()< rhs))
 小于比较运算符
NEFORCE_NODISCARD constexpr bool operator> (const date &rhs) const noexcept(noexcept(rhs< derived()))
 大于比较运算符
NEFORCE_NODISCARD constexpr bool operator<= (const date &rhs) const noexcept(noexcept(!(derived() > rhs)))
 小于等于比较运算符
NEFORCE_NODISCARD constexpr bool operator>= (const date &rhs) const noexcept(noexcept(!(derived()< rhs)))
 大于等于比较运算符
Public 成员函数 继承自 ihashable< date >
NEFORCE_NODISCARD constexpr size_t to_hash () const noexcept(noexcept(derived().to_hash()))
 获取对象的哈希值

静态 Public 成员函数

static constexpr bool is_valid (date_type year, date_type month, date_type day) noexcept
 检查日期是否有效
static constexpr date epoch () noexcept
 获取纪元起始日期(1970-01-01)
static constexpr bool is_leap_year (const date_type year) noexcept
 检查是否为闰年
static constexpr date_type days_of_month (const date_type year, const date_type month) noexcept
 获取指定年月的天数
static constexpr date from_julian_day (const int64_t julian_day) noexcept
 从儒略日转换
NEFORCE_NODISCARD static constexpr date parse (const string_view view)
 从字符串解析
静态 Public 成员函数 继承自 iobject< date >
static NEFORCE_NODISCARD constexpr date parse (const string_view str)
 从字符串解析对象

静态 Public 属性

static constexpr int32_t month_days [12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}
 每月天数表(非闰年)

详细描述

日期类

表示公历日期,支持日期间隔计算、儒略日转换、日期验证等功能。 年份范围:1900-9999

在文件 datetime.hpp91 行定义.

构造及析构函数说明

◆ date()

date::date ( date_type year,
const date_type month,
const date_type day )
inlineexplicitconstexprnoexcept

构造函数

参数
year年份
month月份
day日期

如果日期无效,将保持默认值1970-01-01。

在文件 datetime.hpp122 行定义.

引用了 date(), day(), is_valid(), month() , 以及 year().

成员函数说明

◆ day()

NEFORCE_NODISCARD constexpr date_type date::day ( ) const
inlineconstexprnoexcept

获取日期

返回
日期

在文件 datetime.hpp151 行定义.

被这些函数引用 date(), days_of_month(), from_julian_day(), is_valid(), operator+(), operator+=(), operator-(), operator-=(), parse(), to_hash() , 以及 to_string().

◆ days_of_month()

constexpr date_type date::days_of_month ( const date_type year,
const date_type month )
inlinestaticconstexprnoexcept

获取指定年月的天数

参数
year年份
month月份
返回
天数

在文件 datetime.hpp212 行定义.

引用了 day(), is_leap_year(), month(), month_days , 以及 year().

被这些函数引用 days_of_year(), is_valid(), operator+=() , 以及 operator-=().

◆ days_of_week()

NEFORCE_NODISCARD constexpr date_type date::days_of_week ( ) const
inlineconstexprnoexcept

获取星期几

返回
0=周日,1=周一,...,6=周六

在文件 datetime.hpp195 行定义.

◆ days_of_year()

NEFORCE_NODISCARD constexpr date_type date::days_of_year ( ) const
inlineconstexprnoexcept

获取一年中的第几天

返回
天数(1-366)

在文件 datetime.hpp224 行定义.

引用了 days_of_month().

◆ epoch()

constexpr date date::epoch ( )
inlinestaticconstexprnoexcept

获取纪元起始日期(1970-01-01)

返回
纪元起始日期

在文件 datetime.hpp180 行定义.

引用了 date().

◆ from_julian_day()

constexpr date date::from_julian_day ( const int64_t julian_day)
inlinestaticconstexprnoexcept

从儒略日转换

参数
julian_day儒略日数
返回
对应的日期

在文件 datetime.hpp248 行定义.

引用了 date(), day(), month() , 以及 year().

被这些函数引用 operator+=().

◆ is_leap_year()

constexpr bool date::is_leap_year ( const date_type year)
inlinestaticconstexprnoexcept

检查是否为闰年

参数
year年份
返回
是否为闰年

在文件 datetime.hpp187 行定义.

引用了 year().

被这些函数引用 days_of_month().

◆ is_valid() [1/2]

bool date::is_valid ( ) const
inlineconstexprnoexcept

检查日期是否有效

返回
是否有效

在文件 datetime.hpp174 行定义.

引用了 is_valid().

被这些函数引用 is_valid().

◆ is_valid() [2/2]

constexpr bool date::is_valid ( date_type year,
date_type month,
date_type day )
inlinestaticconstexprnoexcept

检查日期是否有效

参数
year年份
month月份
day日期
返回
是否有效

在文件 datetime.hpp160 行定义.

引用了 day(), days_of_month(), month() , 以及 year().

被这些函数引用 date().

◆ month()

NEFORCE_NODISCARD constexpr date_type date::month ( ) const
inlineconstexprnoexcept

获取月份

返回
月份

在文件 datetime.hpp145 行定义.

被这些函数引用 date(), days_of_month(), from_julian_day(), is_valid(), parse(), to_hash(), to_julian_day() , 以及 to_string().

◆ operator+()

date date::operator+ ( const date_type day) const
inlineconstexprnoexcept

日期加天数

参数
day天数
返回
新日期

在文件 datetime.hpp360 行定义.

引用了 date() , 以及 day().

◆ operator+=()

date & date::operator+= ( const date_type day)
inlineconstexprnoexcept

日期加天数

参数
day要加的天数
返回
自身引用

在文件 datetime.hpp300 行定义.

引用了 date(), day(), days_of_month(), from_julian_day() , 以及 to_julian_day().

◆ operator-() [1/2]

date_type date::operator- ( const date & other) const
inlineconstexprnoexcept

日期差(天数)

参数
other另一个日期
返回
相差的天数

在文件 datetime.hpp399 行定义.

引用了 date() , 以及 to_julian_day().

◆ operator-() [2/2]

date date::operator- ( const date_type day) const
inlineconstexprnoexcept

日期减天数

参数
day天数
返回
新日期

在文件 datetime.hpp371 行定义.

引用了 date() , 以及 day().

◆ operator-=()

date & date::operator-= ( const date_type day)
inlineconstexprnoexcept

日期减天数

参数
day要减的天数
返回
自身引用

在文件 datetime.hpp339 行定义.

引用了 date(), day() , 以及 days_of_month().

◆ parse()

NEFORCE_NODISCARD static constexpr date date::parse ( const string_view view)
inlinestaticconstexpr

从字符串解析

参数
view格式为 YYYY-MM-DD 的字符串
返回
解析得到的日期
异常
value_exception格式错误时抛出

在文件 datetime.hpp426 行定义.

引用了 date(), day(), month(), basic_string_view< CharT, Traits >::size(), basic_string_view< CharT, Traits >::substr() , 以及 year().

被这些函数引用 datetime::parse(), datetime::parse_ISO() , 以及 datetime::parse_ISO_UTC().

◆ swap()

void date::swap ( date & other)
inlineconstexprnoexcept

交换两个日期

参数
other另一个日期

在文件 datetime.hpp440 行定义.

引用了 date() , 以及 swap().

◆ to_hash()

NEFORCE_NODISCARD constexpr size_t date::to_hash ( ) const
inlineconstexprnoexcept

计算哈希值

返回
哈希值

在文件 datetime.hpp407 行定义.

引用了 day(), month() , 以及 year().

◆ to_julian_day()

int64_t date::to_julian_day ( ) const
inlineconstexprnoexcept

转换为儒略日

返回
儒略日数

在文件 datetime.hpp236 行定义.

引用了 month() , 以及 year().

被这些函数引用 operator+=() , 以及 operator-().

◆ to_string()

NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 string date::to_string ( ) const
inline

转换为字符串

返回
格式为 YYYY-MM-DD 的字符串

在文件 datetime.hpp416 行定义.

引用了 day(), format(), month() , 以及 year().

◆ year()

NEFORCE_NODISCARD constexpr date_type date::year ( ) const
inlineconstexprnoexcept

获取年份

返回
年份

在文件 datetime.hpp139 行定义.

引用了 year().

被这些函数引用 date(), days_of_month(), from_julian_day(), is_leap_year(), is_valid(), parse(), to_hash(), to_julian_day(), to_string() , 以及 year().


该类的文档由以下文件生成: