times.h 提供了查询系统时间的通用方法
class::times
你可以通过声明一个 class::times 变量来调用查询系统时间
times a;
cout<<a.year(); //2024
times 返回的任何数据都是 std::string 类型的,你可以利用 hdk::tool::to_number(std::string) [tool.h] 来将其转为数字类型
下面是 times 的所有可调用方法
times_t short_weekname() 例: Mon
times_t weekname() 例: Monday
times_t short_monthname() 例: Nov
times_t monthname() 例:April
times_t date_and_time() 根据系统设置变化
times_t date_of_month() 返回日期,如 11 月 7 日时返回 7
times_t hours_24() 返回二十四小时制下小时数
times_t hours_12() 返回十二小时制下小时数
times_t date_of_year() 返回今天是本年第几天
times_t month() 返回此月是本年第几月
times_t minute() 返回分钟
times_t times_12() 返回 “PM“ “AM“ 的其中之一
times_t second() 返回秒数
times_t date_of_week() 返回今天是本周第几天
times_t week_of_year() 返回本周是本年第几周
times_t week_of_year_start_from_sunday() 同上,星期以星期日开始
times_t date() 返回日期
times_t time() 返回时间 时/分/秒
times_t short_year() 返回年份后两位
times_t year() 返回年份
times_t short_time_zone() 返回时区,形如 +0800
times_t time_zone() 返回时区,形如 CST
此外,times 外置了 std::strftime 接口,你可以自行寻找 std::strftime 的格式控制符,借助它你可以实现自定义返回内容
接口名称为
std::string get_format(std::string x)
其中 x 是传入的格式控制符
class times_table
times_table 是一个时间表类,支持存储时间表,查询特定时刻所处活动内容
声明时需要构造函数,定义后不支持修改
构造函数为
times_table(const vector<time_area>&x)
其中 time_area 是 class::time_table 下一个类型,含有活动名称,起始时间,结束时间等
time_area 提供了如下构造函数
time_area(const string a,const hm_times_t b,const hm_times_t c);
其中 a 为名称,b 为起始时间,c 为结束时间
hm_times_t 可以使用形如 (int,int) (pair<int,int>) (int(,0)) 的任意一种方式构造,其中第一个参数为时,第二个参数为分钟
time_area(const string a,int b,int c,int d,int e);
其中 a 为名称,b,c 为起始时间的时,分,c,d 为结束时间的时,分
对于查询,times_table 提供了 operator []
const string operator[](const hm_times_t x);
关于 hm_times_t 的构造方式详见上文
该函数调用后会寻找所在活动,并返回一个带有活动名称,活动详细信息的字符串
否则会返回 “No activity”
下面实现了一个对机房内作息表的实时活动查询程序
#include<bits/stdc++.h>
using namespace std;
#include"include/hdk/times.h"
#include"include/hdk/tool.h"
using namespace hdk;
using namespace hdk::tool;
int main(){
times_table day(
{
{"早读",6,15,7,04},
{"早饭",7,05,7,24},
{"上午第一节",7,25,8,25},
{"讨论",8,26,8,45},
{"上午第二节",8,46,9,45},
{"讨论",9,46,10,05},
{"上午第三节",10,06,11,05},
{"讨论",11,06,11,25},
{"上午第四节",11,26,12,15},
{"午休",12,16,13,59},
{"下午第一节",14,00,14,50},
{"讨论",14,51,15,10},
{"下午第二节",15,11,16,10},
{"讨论",16,11,16,30},
{"下午第三节",16,31,17,30},
{"讨论",17,31,17,50},
{"下午第四节",17,51,18,14},
{"晚饭",18,15,18,34},
{"讨论",18,35,18,55},
{"晚间第一节",18,56,20,10},
{"讨论",20,11,20,30},
{"晚间第二节",20,31,21,40}
}
);
times a;
cout<<"Now "<<day[{(int)to_number(a.hours_24()),(int)to_number(a.minute())}]<<endl;
}
标签:返回,11,const,Fileheader,int,times,time,2.0
From: https://www.cnblogs.com/HaneDaCafe/p/18533650