发布网友 发布时间:2022-04-22 18:47
共3个回答
热心网友 时间:2023-10-19 01:35
#include <stdio.h>
#include <time.h>
int main()
{
time_t rawtime;
struct tm * timeinfo;
time ( &rawtime );
timeinfo = localtime ( &rawtime );
printf ( "当前系统时间: %s", asctime (timeinfo) );
return 0;
}
说明:
time_t // 时间类型(time.h 定义)
struct tm { // 时间结构,time.h 定义如下:
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year;
int tm_wday;
int tm_yday;
int tm_isdst;
}
time ( &rawtime ); // 获取时间,以秒计,从1970年1月一日起算,存于rawtime
localtime ( &rawtime ); //转为当地时间,tm 时间结构
asctime() // 转为标准ASCII时间格式:
//就是直接打印tm,tm_year 从1900年计算,所以要加1900,月tm_mon,从0计算,所以要加1
热心网友 时间:2023-10-19 01:35
附上库文件中的定义
typedef
long
time_t;
就是说time_t就是一个long的类型
附上库文件中time()的定义
time_t
_Cdecl
time
(time_t
*timer);
他接受一个time_t类型的指针,返回一个time_t类型的数据
他的功能是得到机器的日历时间或者设置日历时间
例:t=time(NULL)
tm确实是一个机构体,附上库文件中的定义
struct
tm
{
int
tm_sec;
int
tm_min;
int
tm_hour;
int
tm_mday;
int
tm_mon;
int
tm_year;
int
tm_wday;
int
tm_yday;
int
tm_isdst;
};直观明了的看出来结构体里面的成员都是int类型
热心网友 时间:2023-10-19 01:36
下面的例子是计算两个时间点的差:
=========================================
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <memory.h>
int main(void)
{
time_t aa;
time_t bb;
struct tm *pTS;
time(&aa);
/*随便循环一段时间*/
for ( unsigned long i = 0 ; i < 0x25ffffff ; i++ )
{
int k = i * i;
}
time(&bb);
/*时间大小可以直接通过两个time_t的值来比较*/
if ( bb > aa )
{
time_t sp = bb - aa;
printf("bb 比 aa 时间上大 %d 秒\n",sp);
}
//将time_t转换为tm
pTS = localtime(&bb);
printf("bb 时间点为: %d年%d月%d日\n",pTS->tm_year + 1900,pTS->tm_mon + 1,pTS->tm_mday);
tm OldTime;//下面表示 1998年4月20日
memset(&OldTime,0x0,sizeof(tm));
OldTime.tm_year = 98;// 1998 年表示为 1998 - 1900 = 98
OldTime.tm_mon = 3;
OldTime.tm_mday = 20;
//将tm转换为time_t
time_t OldTime_t = mktime(&OldTime);
time_t BbTime_t = mktime(pTS);
if ( OldTime_t < BbTime_t )
{
printf("1998年4月20日小于 bb 时间点\n");
}
getchar();
return 0;
}