ec date
Public 成员函数 | 静态 Public 成员函数 | Protected 成员函数 | 所有成员列表
ec::Date类 参考

日期类 更多...

#include <date.h>

Public 成员函数

 Date ()
 以当前时间构造
 
 Date (time_t stamp)
 以时间戳(秒)构造
 
 Date (const Time &time)
 以Time对象构造
 
 Date (const Date &date)
 以Date对象复制
 
 Date (int year, int month, int day, int hour=0, int minute=0, int second=0)
 以指定时间构造 更多...
 
Date clone () const
 克隆当前对象
 
Time toTime () const
 转换为Time对象
 
std::string toString () const
 转换为字符串,格式为1970-01-01 00:00:00
 
std::string format (const char *fmt="%Y-%m-%d %H:%M:%S") const
 格式化为字符串 更多...
 
time_t stamp () const
 获取时间戳
 
int year () const
 年,[1970, )
 
int month () const
 月,[1,12]
 
int day () const
 日,[1,31]
 
int hour () const
 时,[0,23]
 
int minute () const
 分,[0,59]
 
int second () const
 秒,[0,60]
 
int week () const
 星期,[1,7]
 
Dateset (time_t stamp)
 设置时间戳
 
DatesetDate (int year, int month, int day)
 统一设置年月日 更多...
 
DatesetYear (int year)
 设置年,[1970, ) 更多...
 
DatesetMonth (int month)
 设置月,[1,12] 更多...
 
DatesetDay (int day)
 设置日,[1,31] 更多...
 
DatesetHour (int hour)
 设置时,[0,23]
 
DatesetMinute (int minute)
 设置分,[0,59]
 
DatesetSecond (int second)
 设置秒,[0,60]
 
DatezeroSet (Duration::Period period)
 设置为某个时间的开始 更多...
 
Dateadd (int64 value, Duration::Period period)
 加/减 一段时间
 
Dateadd (const Duration &duration)
 加/减 一段时间
 
DateaddYear (int value)
 加/减 年
 
DateaddMonth (int value)
 加/减 月
 
int64 diff (const Date &other, Duration::Period period=Duration::Second)
 比较两时间之间的差异 更多...
 
int getYearDay () const
 获取一年中的天,[1,366]
 
int getUTCFullMonths () const
 距离1970-01-01 00:00:00的月数
 
int getUTCFullYears () const
 距离1970-01-01 00:00:00的年数
 
bool isLeapYear () const
 是否是闰年
 
bool isLastDayOfMonth () const
 是否是一月的最后一天
 
Date operator+ (const Duration &duration)
 
Date operator- (const Duration &duration)
 
Duration operator- (const Date &other)
 
Dateoperator+= (const Duration &duration)
 
Dateoperator-= (const Duration &duration)
 
bool operator< (const Date &other)
 
bool operator= (const Date &other)
 

静态 Public 成员函数

static time_t getTimeZoneOffset ()
 返回当前时区,以秒为单位,比如UTC+8的时区为-28800
 
static bool isLeapYear (int year)
 判断是否是闰年
 
static int yearMonthDays (int year, int month)
 某年某月一共有多少天
 

Protected 成员函数

void _update ()
 

详细描述

日期类

精确到秒,Windows下仅能表示1970-01-01 00:00:00之前的日期,Linux不受此限制。

构造及析构函数说明

ec::Date::Date ( int  year,
int  month,
int  day,
int  hour = 0,
int  minute = 0,
int  second = 0 
)

以指定时间构造

注解
Windows下最小为1970-01-01 00:00:00
参数
year年,取值范围[1970, )
month月,取值范围[1,12]
day日,取值范围[1,31]
hour时,取值范围[0,23],默认为0
minute分,取值范围[0,59],默认为0
second秒,取值范围[0,60],默认为0

成员函数说明

int64 ec::Date::diff ( const Date other,
Duration::Period  period = Duration::Second 
)

比较两时间之间的差异

参数
period结果时间类型
other要比较的对象
为Year表示两者相差年份,不是绝对差值,2015-01-01与2014-12-30相差1年
为Month表示两者相差说数,不是绝对差值,2015-01-01与2014-12-30相差1月
为Day表示两者相差天数,不是绝对差值,2015-01-01 23:59:59与2015-01-02 00:00:00相差1天
为Hour表示两者相差小时数,不是绝对差值,2015-01-01 23:59:59与2015-01-02 00:00:00相差1小时
为Minute表示两者相差分钟数,不是绝对差值,2015-01-01 23:59:59与2015-01-02 00:00:00相差1分钟
为Second表示两者相差秒数
为MilliSecond表示两者相差毫秒数,Date的精度为秒,所以只是将相差秒数*1000
为MicroSecond表示两者相差微秒数,Date的精度为秒,所以只是将相差秒数*1000000
返回
返回this - other的相应差值
std::string ec::Date::format ( const char *  fmt = "%Y-%m-%d %H:%M:%S") const

格式化为字符串

参数
fmt格式
%Y 用CCYY表示的年(如:2004)
%m 月份 (01-12)
%d 月中的第几天(01-31)
%H 小时, 24小时格式 (00-23)
%M 分钟(00-59)
%S 秒钟(00-59)
%X标准时间字符串(如:23:01:59)
%% 百分号
返回
如果发生错误返回空字符串
Date & ec::Date::setDate ( int  year,
int  month,
int  day 
)

统一设置年月日

注解
比单独设置年/月/日更高效
Date & ec::Date::setDay ( int  day)

设置日,[1,31]

注解
建议使用setDate统一设置年月日
参见
setDate
Date & ec::Date::setMonth ( int  month)

设置月,[1,12]

注解
建议使用setDate统一设置年月日
参见
setDate
Date & ec::Date::setYear ( int  year)

设置年,[1970, )

注解
建议使用setDate统一设置年月日
参见
setDate
Date & ec::Date::zeroSet ( Duration::Period  period)

设置为某个时间的开始

参数
period时间类型,
 为Year时置零为一年的开始,
 为Month时置零为一月的开始,
 为Day时置零为一天的开始,
 为Hour时置零为一小时的开始,
 为Minute时置零为一分钟的开始,
 为Second/MilliSecond/MicroSecond时无效果,

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