塑料瓶手工制作大全,泊头网站优化,品牌推广工作职责,长白山网站学做管理平台time.h包含C/C中用于获取时间#xff0c;和时间转换方面的函数。 1、time()
函数 time_t time(time_t *seconds) 返回自#xff08;1970-01-01 00:00:00 UTC#xff09;起经过的时间#xff0c;以秒为单位。如果 seconds 不为空#xff0c;则返回值也存储在变量 seconds …time.h包含C/C中用于获取时间和时间转换方面的函数。 1、time()
函数 time_t time(time_t *seconds) 返回自1970-01-01 00:00:00 UTC起经过的时间以秒为单位。如果 seconds 不为空则返回值也存储在变量 seconds 中。
例子
#include stdio.h
#include time.hint main ()
{time_t seconds;seconds time(NULL);printf(自 1970-01-01 起经过的小时数 %ldn, seconds/3600);return(0);
}
结果
自 1970-01-01 起的小时数 3757678 2、localtime()
struct tm *localtime(const time_t *timer) 使用 timer 的值来填充 tm 结构。timer 的值被分解为 tm 结构并用本地时区表示
struct tm 结构的细节
struct tm {int tm_sec; /* 秒范围从 0 到 59 */int tm_min; /* 分范围从 0 到 59 */int tm_hour; /* 小时范围从 0 到 23 */int tm_mday; /* 一月中的第几天范围从 1 到 31 */int tm_mon; /* 月份范围从 0 到 11 */int tm_year; /* 自 1900 起的年数 */int tm_wday; /* 一周中的第几天范围从 0 到 6 */int tm_yday; /* 一年中的第几天范围从 0 到 365 */int tm_isdst; /* 夏令时 */
};
例子 1
#include stdio.h
#include time.hint main ()
{time_t rawtime;struct tm *info;char buffer[80];time( rawtime );info localtime( rawtime );printf(当前的本地时间和日期%s, asctime(info));return(0);
}
结果
当前的本地时间和日期Thu Aug 23 09:12:05 2012
例子 2
// 将时间戳以时间字符串形式输出std::string timetToString(time_t tt) {auto tm localtime(tt);std::stringstream ss;ss tm-tm_year 1900 std::setw(2) std::setfill(0) tm-tm_mon 1 std::setw(2) std::setfill(0) tm-tm_mday std::setw(2) std::setfill(0) tm-tm_hour std::setw(2) std::setfill(0) tm-tm_min std::setw(2) std::setfill(0) tm-tm_sec;return ss.str();
} 3、mktime()
time_t mktime(struct tm *timeptr) 把 timeptr 所指向的结构转换为一个依据本地时区的 time_t 值。
例子
/* 输入日期判断是周几 */
#include stdio.h /* printf, scanf */
#include time.h /* time_t, struct tm, time, mktime */int main ()
{time_t rawtime;struct tm * timeinfo;int year, month ,day;const char * weekday[] { 周日, 周一,周二, 周三,周四, 周五, 周六};/* 用户输入日期 */printf (年: ); fflush(stdout); scanf (%d,year);printf (月: ); fflush(stdout); scanf (%d,month);printf (日: ); fflush(stdout); scanf (%d,day);/* 获取当前时间信息并修改用户输入的输入信息 */time ( rawtime );timeinfo localtime ( rawtime );timeinfo-tm_year year - 1900;timeinfo-tm_mon month - 1;timeinfo-tm_mday day;/* 调用 mktime: timeinfo-tm_wday */mktime ( timeinfo );printf (那一天是%sn, weekday[timeinfo-tm_wday]);return 0;
}结果
年: 2023
月: 8
日: 14
那一天是周一 4、gmtime()
struct tm *gmtime(const time_t *timer) 使用 timer 的值来填充 tm 结构并用协调世界时UTC也被称为格林尼治标准时间GMT表示。北京时间需要在此值的基础上加8小时。
例子
#include stdio.h
#include time.h#define BST (1)
#define CCT (8)int main ()
{time_t rawtime;struct tm *info;time(rawtime);/* 获取 GMT 时间 */info gmtime(rawtime );printf(当前的世界时钟n);printf(伦敦%2d:%02dn, (info-tm_hourBST)%24, info-tm_min);printf(中国%2d:%02dn, (info-tm_hourCCT)%24, info-tm_min);return(0);
}
结果
当前的世界时钟
伦敦14:10
中国21:10