用c语言如何获取系统当前时间的函数?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用c语言如何获取系统当前时间的函数?相关的知识,希望对你有一定的参考价值。

方法一,#include<time.h>

int main()

time_t timep;

struct tm *p;

time (&timep);

p=gmtime(&timep);

printf("%d\\n",p->tm_sec); /*获取当前秒*/

printf("%d\\n",p->tm_min); /*获取当前分*/

printf("%d\\n",8+p->tm_hour);/*获取当前时,这里获取西方的时间,刚好相差八个小时*/

printf("%d\\n",p->tm_mday);/*获取当前月份日数,范围是1-31*/

printf("%d\\n",1+p->tm_mon);/*获取当前月份,范围是0-11,所以要加1*/

printf("%d\\n",1900+p->tm_year);/*获取当前年份,从1900开始,所以要加1900*/

printf("%d\\n",p->tm_yday); /*从今年1月1日算起至今的天数,范围为0-365*/

方法二.#include <stdio.h>

#include <time.h>

int main ()

time_t t

struct tm * lt;    time (&t);//获取Unix时间戳。    

lt = localtime (&t);//转为时间结构。    

printf ( "%d/%d/%d %d:%d:%d\\n",lt->tm_year+1900, lt->tm_mon, lt->tm_mday, 

lt->tm_hour, lt->tm_min, lt->tm_sec);//输出结果    

return 0;

扩展资料

1、CTimeSpan类

如果想计算两段时间的差值,可以使用CTimeSpan类,具体使用方法如下:

CTime t1( 1999, 3, 19, 22, 15, 0 );

CTime t = CTime::GetCurrentTime();

CTimeSpan span=t-t1; //计算当前系统时间与时间t1的间隔

int iDay=span.GetDays(); //获取这段时间间隔共有多少天

int iHour=span.GetTotalHours(); //获取总共有多少小时

int iMin=span.GetTotalMinutes();//获取总共有多少分钟

int iSec=span.GetTotalSeconds();//获取总共有多少秒

2、timeb()函数

_timeb定义在SYS\\TIMEB.H,有四个fields

dstflag

millitm

time

timezone

void _ftime( struct _timeb *timeptr );

struct _timeb timebuffer;

_ftime( &timebuffer );

参考资料来源:百度百科:time函数

参考技术A 1、C语言中读取系统时间的函数为time(),其函数原型为:
#include <time.h>
time_t time( time_t * ) ;
time_t就是long,函数返回从1970年1月1日(MFC是1899年12月31日)0时0分0秒,到现在的的秒数。
2、C语言还提供了将秒数转换成相应的时间格式的函数:
char * ctime(const time_t *timer); //将日历时间转换成本地时间,返回转换后的字符串指针 可定义字符串或是字符指针来接收返回值
struct tm * gmtime(const time_t *timer); //将日历时间转化为世界标准时间(即格林尼治时间),返回结构体指针 可定义struct tm *变量来接收结果
struct tm * localtime(const time_t * timer); //将日历时间转化为本地时间,返回结构体指针 可定义struct tm *变量来接收结果
3、例程:
#include <time.h>
void main()

time_t t;
struct tm *pt ;
char *pc ;
time(&t);
pc=ctime(&t) ; printf("ctime:%s", pc );
pt=localtime(&t) ; printf("year=%d", pt->tm_year+1900 );


时间结构体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代表一月) - 取值区间为[0,11] */
int tm_year; /* 年份,其值等于实际年份减去1900 */
int tm_wday; /* 星期 – 取值区间为[0,6],其中0代表星期天,1代表星期一,以此类推 */
int tm_yday; /* 从每年的1月1日开始的天数 – 取值区间为[0,365],其中0代表1月1日,1代表1月2日,以此类推 */
int tm_isdst; /* 夏令时标识符,实行夏令时的时候,tm_isdst为正。不实行夏令时的进候,tm_isdst为0;不了解情况时,tm_isdst()为负。*/
;

C语言如何获取电脑实时时间

用什么函数可以获取电脑实时间,要求显示月日时分。如果要写入文件,那么变量 类型 是什么?

需要利用C语言的时间函数time和localtime,具体说明如下:

一、函数接口介绍:

1、time函数。

形式为time_t time (time_t *__timer);

其中time_t为time.h定义的结构体,一般为长整型。

这个函数会获取当前时间,并返回。 如果参数__timer非空,会存储相同值到__timer指向的内存中。 

time函数返回的为unix时间戳,即从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。

由于是秒作为单位的,所以这并不是习惯上的时间,要转为习惯上的年月日时间形式就需要另外一个函数了。

2、localtime函数。

形式为struct tm *localtime (const time_t *__timer);

其中tm为一个结构体,包含了年月日时分秒等信息。

这种结构是适合用来输出的。

二、参考代码:

#include <stdio.h>
#include <time.h>
int main ()

    time_t t;
    struct tm * lt;
    time (&t);//获取Unix时间戳。
    lt = localtime (&t);//转为时间结构。
    printf ( "%d/%d/%d %d:%d:%d\\n",lt->tm_year+1900, lt->tm_mon, lt->tm_mday, lt->tm_hour, lt->tm_min, lt->tm_sec);//输出结果
    return 0;

注意事项:

struct tm中的tm_year 值为实际年减去1900, 所以输出的时候要是lt->tm_year+1900。

参考技术A #include<stdio.h>
#include<time.h>
intmain()

time_tnowtime;
structtm*timeinfo;
time(&nowtime);
timeinfo=localtime(&nowtime);
intyear,month,day;
year=timeinfo->tm_year+1900;
month=timeinfo->tm_mon+1;
day=timeinfo->tm_mday;
printf("%d%d%d\n",year,month,day);
return0;

structtm--时间结构,time.h定义如下:
inttm_sec;
inttm_min;
inttm_hour;
inttm_mday;
inttm_mon;
inttm_year;
inttm_wday;
inttm_yday;
inttm_isdst;
tm_year从1900年计算,所以要加1900,
月tm_mon,从0计算,所以要加1
time(&nowtime);获取时间
localtime(&nowtime);转为当地时间
参考技术B HRESULT GetTime( FILETIME *pfCreationTime
);

typedef struct STRUCT tagFILETIME
DWORD dwLowDateTime;
DWORD dwHighDateTime;
FILETIME;
参考技术C #include <stdio.h>
#include <time.h>

int main ()

time_t rawtime;
struct tm * timeinfo;
char timE [80];
time ( &rawtime );
timeinfo = localtime ( &rawtime );
// strftime ( timE,80,"%Y-%m-%d %I:%M:%S",timeinfo);
strftime ( timE,80,"%m-%d %I:%M",timeinfo);
printf ("%s", timE);
return 0;


用 strftime, 填入不同的格式可以输出不同的项和形式,例如英文月份或数字月份度能做到。本回答被提问者采纳

以上是关于用c语言如何获取系统当前时间的函数?的主要内容,如果未能解决你的问题,请参考以下文章

在c语言中如何获取当前日期?

C语言如何获取电脑实时时间

如何用C语言获取当前系统时间?

用c语言如何获取内存地址?

在c语言中如何获取当前日期?

C语言中,如果获取当前时间加上n分钟后的时间?