C语言 timer函数 和time函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言 timer函数 和time函数相关的知识,希望对你有一定的参考价值。

看百度上讲的 好像都差不多、、
这两个函数有什么差别?

  Timer()函数
  语法:Timer ( interval , windowname )
  参数:指定两次触发Timer事件之间的时间间隔,有效值在0到65之间。如果该参数的值指定为0,那么关闭定时器,不再触发指定窗口的Timer事件。windowname:窗口名,指定时间间隔到时要触发哪个窗口的Timer事件。省略该参数时,触发当前窗口的Timer事件返回值Integer。函数执行成功时返回1,发生错误时返回-1。如果任何参数的值为NULL,Timer()函数返回NULL。用法使用Timer()函数可以周期性地触发指定窗口的Timer事件,这样,每当时间间隔过去时,应用程序都可以完成一些周期性的工作,比如绘制简单动画等。将Timer()的interval参数设置为非0值时启动定时器并开始计时;将该函数的interval参数设置为0时关闭定时器,终止计时任务。需要注意的是,在Microsoft Windows系统中,该函数能够计时的最小时间间隔为0.055秒(约1/18秒),如果把interval参数的值设置小于0.055,那么该定时器将每隔0.055秒触发一次窗口的Timer事件。Microsoft Windows 3.x最多只支持系统中同时启动16个定时器。
  用法:
  启动定时器。
  启动定时器就需要使用CWnd类的成员函数SetTimer。CWnd::SetTimer的原型如下:

  UINT_PTR SetTimer(
  UINT_PTR nIDEvent,
  UINT nElapse,
  void (CALLBACK* lpfnTimer)(
  HWND,
  UINT,
  UINT_PTR,
  DWORD
  )
  );
  

  参数nIDEvent指定一个非零的定时器ID;参数nElapse指定间隔时间,单位为毫秒;参数lpfnTimer指定一个回调函数的地址,如果该参数为NULL,则WM_TIMER消息被发送到应用程序的消息队列,并被CWnd对象处理。如果此函数成功则返回一个新的定时器的ID,我们可以使用此ID通过KillTimer成员函数来销毁该定时器,如果函数失败则返回0。
  通过SetTimer成员函数我们可以看出,处理定时事件可以有两种方式,一种是通过WM_TIMER消息的消息响应函数,一种是通过回调函数。
  如果要启动多个定时器就多次调用SetTimer成员函数。另外,在不同的CWnd中可以有ID相同的定时器,并不冲突。

  time函数
  返回某一特定时间的小数值。如果在输入函数前,单元格的格式为“常规”,则结果将设为日期格式。
  函数 TIME 返回的小数值为 0(零)到 0.99999999 之间的数值,代表从 0:00:00 (12:00:00 AM) 到 23:59:59 (11:59:59 P.M.) 之间的时间。
  语法:
  TIME(hour, minute, second)
  TIME 函数语法具有以下参数:
  Hour 必需。0(零)到 32767 之间的数值,代表小时。任何大于 23 的数值将除以 24,其余数将视为小时。例如,TIME(27,0,0) = TIME(3,0,0) = .125 或 3:00 AM。
  Minute 必需。0 到 32767 之间的数值,代表分钟。任何大于 59 的数值将被转换为小时和分钟。例如,TIME(0,750,0) = TIME(12,30,0) = .520833 或 12:30 PM。
  Second 必需。0 到 32767 之间的数值,代表秒。任何大于 59 的数值将被转换为小时、分钟和秒。例如,TIME(0,0,2000) = TIME(0,33,22) = .023148 或 12:33:20 AM。
  例子:
  <?php$t=time();echo($t . "<br />");echo(date("D F d Y",$t));?>
  输出:
  1138618081Mon January 30 2006
参考技术A timer是计时器或延时器从现在开始多少时间, time是时间函数给出系统时间本回答被提问者采纳

c语言 时间函数

我在自学C语言 最近在时间函数上卡住了 怎么搞都搞不懂
有哪位大大能给我讲解一下C当中的时间函数
CLOCK()
CLOCKS_PER_SEC()
time()
这几个函数的功能与用法
最好能详细一点 容易点
在此献上本人所有的分数 虽然只有15分 谢谢

  c语言时间函数:
  1、获得日历时间函数:
  可以通过time()函数来获得日历时间(Calendar Time),其原型为:time_t time(time_t * timer);
  如果已经声明了参数timer,可以从参数timer返回现在的日历时间,同时也可以通过返回值返回现在的日历时间,即从一个时间点(例如:1970年1月1日0时0分0秒)到现在此时的秒数。如果参数为空(NUL),函数将只通过返回值返回现在的日历时间,比如下面这个例子用来显示当前的日历时间:
  2、获得日期和时间函数:
  这里说的日期和时间就是平时所说的年、月、日、时、分、秒等信息。从第2节我们已经知道这些信息都保存在一个名为tm的结构体中,那么如何将一个日历时间保存为一个tm结构的对象呢?
  其中可以使用的函数是gmtime()和localtime(),这两个函数的原型为:
  struct tm * gmtime(const time_t *timer);
  struct tm * localtime(const time_t * timer);
  其中gmtime()函数是将日历时间转化为世界标准时间(即格林尼治时间),并返回一个tm结构体来保存这个时间,而localtime()函数是将日历时间转化为本地时间。比如现在用gmtime()函数获得的世界标准时间是2005年7月30日7点18分20秒,那么用localtime()函数在中国地区获得的本地时间会比世界标准时间晚8个小时,即2005年7月30日15点18分20秒。
参考技术A 废话少说!对于CLOCKS_PER_SEC()简单地理解就是用来计算程序本身的执行时间
以下程序可以验证如:
#include
<stdio.h>
#include
<time.h>
#include
<windows.h>
void
main()

Sleep(1000);//让程序休眠一秒钟
printf("Elapsed
time:
%u
secs.\n",
clock()/CLOCKS_PER_SEC);

//很显然从本程序来说主函数体里用到了Sleep函数并且让它休眠了一秒钟,所以这个程序执行的时间就是1秒
参考技术B C语言的建时间函数是
mktime(),原型在

调用有点繁。
下面,用我的程序输入
年月日时分秒,调用mktime(),
就得
C语言
可直接使用的
时间,
存放在
t
里。
例如
输入年月日时分秒:
2008
8
16
9
55
25
time_t
t;

就有了
各种时间信息,例如星期几...
#include
#include
void
main()
struct
tm
*target_time;
time_t
rawtime,
t;
int
year,month,mday,hh,mm,ss;
time
(
&rawtime
);
target_time
=
localtime
(
&rawtime
);
printf("Please
enter
year
month
day
hour
minute
second\n");
printf("For
example:
\n");
printf("2008
8
16
9
55
25\n");
scanf("%d
%d
%d
%d
%d
%d",
&year,
&month,
&mday,
&hh,&mm,&ss);
target_time->tm_year
=
year
-
1900;
target_time->tm_mon=
month
-
1;
target_time->tm_mday
=
mday
;
target_time->tm_hour
=
hh
;
target_time->tm_min
=
mm
;
target_time->tm_sec
=
ss
;
//
t
=
mktime
(target_time);
//
t
is
ready
to
use
printf("%s
",ctime(&t));
参考技术C 这个试看看应该可以的
#include
<stdio.h>;
#include
<time.h>;
time_t
scanf_time(char
*
timestr)

struct
tm
t;
if(!timestr)
return
0;
memset(&t,
0,
sizeof(t));
sscanf(timestr,
"%02d%02d%02d
%02d:%02d:%02d",
&(t.tm_mday),
&(t.tm_mon),
&(t.tm_year),
&(t.tm_hour),
&(t.tm_min),
&(t.tm_sec));
t.tm_year
+=
100;
t.tm_mon
-=1;
return
mktime(&t);

int
main(int
argc,
char
*argv[])

time_t
x
=
0;
time_t
y
=
0;
x
=
scanf_time("160312
00:00:00");
y
=
time(NULL);
if(x>y)
//0=1970-00-01
08:00:00
struct
tm
t;
memcpy(&t,
localtime(&x),
sizeof(struct
tm));
printf("\n%d年-%d月-%d日\t%d时:%d分:%d秒\n",
t.tm_year
+
1900,
t.tm_mon+1,
t.tm_mday,
t.tm_hour,
t.tm_min,
t.tm_sec);
memcpy(&t,
localtime(&y),
sizeof(struct
tm));
printf("\n%d年-%d月-%d日\t%d时:%d分:%d秒\n",
t.tm_year
+
1900,
t.tm_mon+1,
t.tm_mday,
t.tm_hour,
t.tm_min,
t.tm_sec);
time_t
result
=
x
-
y;
memcpy(&t,
localtime(&result),
sizeof(struct
tm));
printf("\n%d年-%d月-%d日\t%d时:%d分:%d秒\n",
t.tm_year
-70,
t.tm_mon,
t.tm_mday-1,
t.tm_hour-8,
t.tm_min,
t.tm_sec);

system("PAUSE");
return
0;
参考技术D 早就不用TC了,不清楚。
不知道你想要干什么,如果只是想简单地用字符串格式来输出现在的时间,用下面的代码就可以了。如果要自定格式,才需要用到struct
tm结构,不过不是你写的样子。
#include
<time.h>
#include
<stdio.h>
int
main()

time_t
lt;
lt
=
time(NULL);
printf("The
Calendar
Time
now
is
%s\n",
ctime(&
lt));
return
0;

以上是关于C语言 timer函数 和time函数的主要内容,如果未能解决你的问题,请参考以下文章

C语言计算时间函数

c语言 时间函数

C语言获取系统时间

请问c语言里面的系统时钟是哪个函数来着?

C语言 ctime()

c语言如何计时