C语言中调用系统时间

发布网友 发布时间: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;
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com