本帖最后由 兰闻天 于 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);
}
|