您的位置: 首页 > Word技巧 >

C语言获取的几种

时间:2013-08-18 整理:docExcel.net

  C语言获取的几种

  C语言中如何获取?精度如何?

  1 利用time_t time( time_t * timer ) 准确到秒

  2 利用clock_t clock() 的是CPU 准确到1/CLOCKS_PER_SEC秒

  3 计较差利用double difftime( time_t timer1, time_t timer0 )

  4 利用DWORD GetTickCount() 准确到毫秒

  5 假如利用MFC的CTime类,可以用CTime::GetCurrentTime() 准确到秒

  6 要获取高精度,可以利用

  BOOL QueryPerformanceFrequency(LARGE_INTEGER *lpFrequency)

  获取的计数器的

  BOOL QueryPerformanceCounter(LARGE_INTEGER *lpPerformanceCount)

  获取计数器的值

  然后用两次计数器的差除以Frequency就。

  7 Multimedia Timer Functions

  The following functions are used with multimedia timers.

  timeBeginPeriod/timeEndPeriod/timeGetDevCaps/timeGetSystemTime

  //*********************************************************************

  //用C实现获取当前的函数

  一.time()函数

  time(&rawtime)函数获取当前距1970年1月1日的秒数,以秒计数单元,存于rawtime 中。

  #include "time.h"

  void main ()

  {

  time_t rawtime;

  struct tm * timeinfo;

  time ( &rawtime );

  timeinfo = localtime ( &rawtime );

  printf ( "\007The current date/time is: %s", asctime (timeinfo) );

  exit(0);

  }

  =================

  #include -- 必需的函数头文件

  time_t -- 范例(time.h 界说是typedef long time_t; 追根溯源,time_t是long)

  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名目:

  礼拜 月 日 时:分:秒 年

  -----------------------------------------------------------------------------

  二.clock()函数,用clock()函数,启动今后的毫秒级,,然后除以CLOCKS_PER_SEC,就可以换成“秒”,c函数。

  clock_t clock ( void );

  #include

  clock_t t = clock();

  long sec = t / CLOCKS_PER_SEC;

  他是记录时钟周期的,实现看来不会很准确,需要试验验证;

  ---------------------------------------------------------------------------

  三.gettime(&t); 听说tc2.0的time布局含有毫秒信息

  #include

  #include

  int main(void)

  {

  struct time t;

  gettime(&t);

  printf("The current time is: %2d:%02d:%02d.%02d\n",

  t.ti_hour, t.ti_min, t.ti_sec, t.ti_hund);

  return 0;

  }

  time 是一个布局体,, 个中成员函数 ti_hund 是毫秒。。。

  --------------------------------------------------------------------------------

  四.GetTickCount(),这个是windows内里常用来计较措施运行的函数;

  DWORD dwStart = GetTickCount();

  //这里运行你的措施代码

  DWORD dwEnd = GetTickCount();

  则(dwEnd-dwStart)就是你的措施运行, 以毫秒为单元

  这个函数只准确到55ms,1个tick就是55ms。

  --------------------------------------------------------------------------------

  五.timeGetTime()t,imeGetTime()根基便是GetTickCount(),可是精度更高

  DWORD dwStart = timeGetTime();

  //这里运行你的措施代码

  DWORD dwEnd = timeGetTime();

  则(dwEnd-dwStart)就是你的措施运行, 以毫秒为单元

  固然返回的值单元应该是ms,但传说精度只有10ms。

  =========================================

  //*****************************************************************Unix

  ##unix相关,也是库的

  //*********************************************************************

  1.timegm函数只是将struct tm布局转成time_t布局,不利用时区信息;

  time_t timegm(struct tm *tm);

  2.mktime利用时区信息

  time_t mktime(struct tm *tm);

  timelocal 函数是GNU扩展的与posix函数mktime相当

  time_t timelocal (struct tm *tm);

  3.gmtime函数只是将time_t布局转成struct tm布局,不利用时区信息;

  struct tm * gmtime(const time_t *clock);

  4.localtime利用时区信息

  struct tm * localtime(const time_t *clock);

  1.time获取,stime配置

  time_t t;

  t = time(&t);

  2.stime其参数应该是GMT,按照当地时区配置为当地;

  int stime(time_t *tp)

  3.UTC=true 暗示回收夏时制;

  4.文件的修改等信息全部回收GMT存放,差异的在修改后通过localtime转换成当地;

  5.配置时区推荐利用setup来配置;

  6.配置时区也可以先更变/etc/sysconfig/clock中的配置 再将ln -fs /usr/share/zoneinfo/xxxx/xxx /etc/localtime 才气重效

  time_t只能暗示68年的范畴,即mktime只能返回1970-2038这一段范畴的time_t

  看看你的是否有time_t64,它能暗示更大的范畴

  //***************************************************************windows

  ##Window内里的一些纷歧样的

  //*********************************************************************

  一.CTime () 类

  VC编程一般利用CTime类 当前日期和

  CTime t = GetCurrentTime();

  SYSTEMTIME 布局包括毫秒信息

  typedef struct _SYSTEMTIME {

  WORD wYear;

  WORD wMonth;

  WORD wDayOfWeek;

  WORD wDay;

  WORD wHour;

  WORD wMinute;

  WORD wSecond;

  WORD wMilliseconds;

  } SYSTEMTIME, *PSYSTEMTIME;

  SYSTEMTIME t1;

  GetSystemTime(&t1)

  CTime curTime(t1);

  WORD ms = t1.wMilliseconds;

  SYSTEMTIME sysTm;

  ::GetLocalTime(&sysTm);

  在time.h中的_strtime() //只能在windows顶用

  char t[11];

  _strtime(t);

  puts(t);

  //*****************************

  当前日期和

  CTime tm=CTime::GetCurrentTime();

  CString str=tm.Format("%Y-%m-%d");

  在VC中,我们可以借助CTime类,获取当前日期,详细利用如下:

  CTime t = CTime::GetCurrentTime(); //获取日期,存储在t内里

  int d=t.GetDay(); //当前日期

  int y=t.GetYear(); //获取当前年份

  int m=t.GetMonth(); //获取当前月份

  int h=t.GetHour(); //获取当前为几时

  int mm=t.GetMinute(); //获取当前分钟

  int s=t.GetSecond(); //获取当前秒

  int w=t.GetDayOfWeek(); //获取礼拜几,留意1为礼拜天,7为礼拜六

  二.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();//获取总共有几多秒

  ------------------------------------------------------------------------------

  三._timeb()函数

  _timeb界说在SYS\TIMEB.H,有四个fields

  dstflag

  millitm

  time

  timezone

  void _ftime( struct _timeb *timeptr );

  struct _timeb timebuffer;

  _ftime( &timebuffer );

  取当前:文档讲可以到ms,有人测试,好象只能到16ms!

  四.配置计时器

  界说TIMER ID

  #define TIMERID_JISUANFANGSHI 2

  在适当的处所配置时钟,需要开始其浸染的处所;

  SetTimer(TIMERID_JISUANFANGSHI,200,NULL);

  在不需要按时器的时候的时候销毁掉时钟

  KillTimer(TIMERID_JISUANFANGSHI);

  对应VC措施的动静映射

  void CJisuan::OnTimer(UINT nIDEvent)

  {switch(nIDEvent)}

  ---------------------------------------------------------------------------------------

  ##如何设定当前---------------------------------------windows

  SYSTEMTIME m_myLocalTime,*lpSystemTime;

  m_myLocalTime.wYear=2003;

  m_myLocalTime.wM;

  m_myLocalTime.wDay=1;

  m_myLocalTime.wHour=0;

  m_myLocalTime.wMinute=0;

  m_myLocalTime.wSec;

  m_myLocalTime.wMillisec;

  lpSystemTime=&m_myLocalTime;

  if( SetLocalTime(lpSystemTime) ) //此处换成 SetSystemTime( )也不可

  MessageBox("OK !");

  else

  MessageBox("Error !");

  SYSTEMTIME m_myLocalTime,*lpSystemTime;

  m_myLocalTime.wYear=2003;

  m_myLocalTime.wM;

  m_myLocalTime.wDay=1;

  lpSystemTime=&m_myLocalTime;

  if( SetDate(lpSystemTime) ) //此处换成 SetSystemTime( )也不可

  MessageBox("OK !");

  else

  MessageBox("Error !");

设置Word2003的自动语言检测功能 问题:设置Word2003的自动语言检测功能
回答:...试自动安装。 如果 Word 无法安装正确的文件,可能需要获取“Microsoft Office 2003 校对工具”。 此外,若要使用 Word 检测语言,必须打开自动语言检测。如果使用频率最高的语言不是默认的编辑语言,可以在 Normal 模板 (No...
Word2003“自动编写摘要”功能没有为部分或所有文 问题:Word2003“自动编写摘要”功能没有为部分或所有文
回答:...班牙语版本的 Office 中为葡萄牙语的文本编写摘要。若要获取语言文件,请与当地的 Microsoft 分支机构联系并索取所需语言的校对工具。 3、文本可能被标记为错误的语言或“不作校对”格式。如果您使用了“语言”...
如何使用EXCEL读取通达信股票日线数据 问题:如何使用EXCEL读取通达信股票日线数据
回答:...:电脑常识网 【】【】【】 定量阐明的第一步,是获取数据。 获取股票汗青行情数据最利便的途径,就是直接读取股票行情软件留在你电脑中的日线数据文件。 但假如不是措施员,电脑里一般不会有VB、VC之类的编程语言...
与离岸外包开发团队合作的八项须知 问题:与离岸外包开发团队合作的八项须知
回答:...然是难免的,你必须确保时刻了解开发进度,最好每天都获取开发团队的最新动态,确保项目按照预定的方向发展。 3. 必须明确定义所有的可交付成果(与上一条有关)。你首先需要非常明确地定义双方的角色和责任。按照成...
为什么气味难以用语言描述 问题:为什么气味难以用语言描述
回答:...味确实很难用语言来形容。 最近,研究者们就这个现象获取了一些有趣的新进展。一项新研究指出,大脑掌管嗅觉的区域和语言区之间可能存在“交流障碍”。而与此同时,研究东南亚土著居民的语言学家则发现,“...
王巍访谈:关于Swift学习和Apple Watch开发的一些建 问题:王巍访谈:关于Swift学习和Apple Watch开发的一些建
回答:...得更多了(举个例子,Objective-C 中总会使用 NSError 指针来获取错误信息,而 Swift 中我们还可以有 Tuple 这样的选项)。 现在可能在工
相关知识:

下面内容对您也许有用

      话题:c语言分几种分别是什么
      问:最近想学,主要是哪一个证,不是说生多一个证多一点竞争力吗
      答:我学的c++。当时我也是报着你这样的心理去学的,结果一年的时间什么也没学到最后还是买的,其实这些东西真没什么用。建议你别学了。
      话题:c语言分哪几种
      答:vc是编译工具,编译环境。vc能提供一些像mfc之类的框架,只是方便win编程而以。c++是C的超集,C中语法可以直接用在c++中。注:C用结构也可以体现面向对象的思想
      话题:电脑有几种语言?各语言都是用于哪方面的用途?各有何优缺点呢?
      答:电脑只能识别的是机器语言,也就是2进制的码,其他语言是人给抽象出来的, 汇编语言,越的语言 就是抽象的程度 越高, vc vb delphi c# java php 计算机各种语言用处及优缺点 计算机2级C语言,VB,VFP,Java
      话题:C语言有哪几种?我该学哪一种?知道
      问:有人介绍说什么C++ 什么vb 什么java 它们之间的我都搞混了!我现在就是一个
      答:你想学计算机语言,看来你是想学编程了,我告诉你,你去学学C吧,关于各种语言的种类和别你不要去管,你可以记住一句话,它们就像我们说的各种语言(中文、 C语言有那几种学项目? 对于C语言只是入门阶段 可以直接
      话题:C语言里有几种格式?有“.c”格式吗?知道
      答:这个问题我很无语,C语言程序里肯定有.c C语言中的格式*.dsp,*. 怎么把文本文档转换成C语言
      话题:C语言中输入输出函数有几种格式?知道
      答:格式输入输出函数:scanf()sscanf()fscanf()以及它们的宽字符版本 printf()sprintf()fprintf()以及它们的宽字符版本 字符输入输出函数:getchar()fgetc()以及它们
      话题:C语言的语句有几种?说说!知道
      C语言的语句有几种?说说!有以下5种:1、控制语句 2、函数调用语句 3、表达式语句 4、空语句 5、复
      话题:C语言里函数的调用有几种?知道
      答:stdcall,cdecl,fastcall这三种,C++中有thiscall c语言中函数的调用有几种方式 C语言中输入输出函数有几种格式
      话题:c语言有哪几种流程结构?具体在程序中用什么体现?知道
      答:顺序,选择(条件),循环三种 顺序的实现方式就是一条一条的罗列语句,每条语句后面用分号分隔 选择就是if(条件表达式){}else{}或者switch语句 循环有while语句 1,2,5组成100有几种组合方式,每 1.在VC+6.0环境下编写并运行C
      话题:C语言的算法通过哪几种方法来实现
      答:最基本的为判断和循环基本方法 1.递推法 2.递归法 3.穷举法 4.心算法 5.分治法 6.动态划法 7.迭法 8.分枝界限法 用c语言实现二叉排序树的各种 用C语言实现如下算法: