黑马程序员技术交流社区
标题: 一个关于时间的自带函数 [打印本页]
作者: 桑托尔 时间: 2014-4-28 08:30
标题: 一个关于时间的自带函数
本帖最后由 桑托尔 于 2014-4-30 09:40 编辑
听视频时听老师说过一句,所有计算机表示时间的方式,都是从历史上某一时点开始,算出现在距离那个时点一共过了多长时间,然后在通过已经过去的总时间算出当下的具体时期和时间。
这个函数是怎样的呢?我们能不能够自己来调用。求解答
作者: gaoxinglei123 时间: 2014-4-28 08:39
时间戳是自 1970 年 1 月 1 日(08:00:00 GMT)至当前时间的总秒数
C语言操作时间有个time.h的头文件
引用头文件后可以使用好多处理时间的函数。楼主可以百度下这些方法。
作者: 兰闻天 时间: 2014-4-28 08:43
本帖最后由 兰闻天 于 2014-4-28 08:46 编辑
具体时期和时间是通过time_t数据类型来表示的,用time_t表示的时间(日历时间)是从一个时间点(例如:1970年1月1日0时0分0秒)到此时的秒数。在time.h中,我们也可以看到time_t是一个长整型数:
typedef long time_t; /* 时间值 */ //即,time_t类型就是long int类型。
我们可以通过time()函数来获得到现在的秒数://即从1970年1月1日0时0分0秒到此时的秒数
time_t time(time_t * timer);
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
int main(void)
{
time_t lt;
lt =time(NULL);
printf("The Calendar Time now is %d\n",lt);
return 0;
}
获得日期和时间
其中可以使用的函数是gmtime()和localtime(),这两个函数的原型为:
struct tm * gmtime(const time_t *timer);
struct tm * localtime(const time_t * timer);
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
int main(void)
{
struct tm *local;
time_t t;
t=time(NULL);
local=localtime(&t);
printf("Local hour is: %d:%d:%d\n",local->tm_hour,local->tm_min,local->tm_sec);
local=gmtime(&t);
printf("UTC hour is: %d:%d:%d\n",local->tm_hour,local->tm_min,local->tm_sec);
return 0;
}我们可以使用strftime()函数将时间格式化为我们想要的格式。它的原型如下:
size_t strftime(
char *strDest,
size_t maxsize,
const char *format,
const struct tm *timeptr
);
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
void main( void )
{
struct tm *newtime;
char tmpbuf[128];
time_t localTime1;
time( &localTime1 );
newtime=localtime(&localTime1);
strftime( tmpbuf, 128, "Today is %A, day %d of %B in the year %Y.\n", newtime);
printf(tmpbuf);
}
| 欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |