`
Fecoly
  • 浏览: 7468 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

c 获得毫秒

 
阅读更多
Linux系统

使用gettimeofday接口:gettimeofday能得到微秒数,比毫秒还要更精确。
#include <stdio.h>
#include <sys/time.h>
int main() {
    struct timeval start, end;
    gettimeofday( &start, NULL );
    sleep(3);
    gettimeofday( &end, NULL );
    int timeuse = 1000000 * ( end.tv_sec - start.tv_sec ) + end.tv_usec - start.tv_usec;
    printf("time: %d us\n", timeuse);
    return 0;
}

使用ftime接口:
#include <stdio.h>
#include <sys/timeb.h>
long long getSystemTime() {
    struct timeb t;
    ftime(&t);
    return 1000 * t.time + t.millitm;
}
int main() {
    long long start=getSystemTime();
    sleep(3);
    long long end=getSystemTime();

    printf("time: %lld ms\n", end-start);
    return 0;
}





Windows系统

使用GetTickCount接口:
#include <windows.h>
#include <stdio.h>
int main() {
    DWORD start, stop;
   start = GetTickCount();
    Sleep(3000);
    stop = GetTickCount();
    printf("time: %lld ms\n", stop - start);
    return 0;
}
Windows系统下有些编译器使用printf输出64位整数参数要使用%I64d,比如VC。

使用QueryPerformanceX接口:
#include <windows.h>
#include <stdio.h>
int main(){
    LARGE_INTEGER li;
    LONGLONG start, end, freq;
    QueryPerformanceFrequency(&li);
    freq = li.QuadPart;
    QueryPerformanceCounter(&li);
    start = li.QuadPart;
    Sleep(3000);
    QueryPerformanceCounter(&li);
    end = li.QuadPart;
    int useTime =(int)((end - start) * 1000 / freq);
    printf("time: %d ms\n", useTime);
    return 0;
}

使用GetSystemTime接口:
#include <windows.h>
#include <stdio.h>
int main(){
    SYSTEMTIME currentTime;
    GetSystemTime(&currentTime);
    printf("time: %u/%u/%u %u:%u:%u:%u %d\n",           
    currentTime.wYear,currentTime.wMonth,currentTime.wDay,
    currentTime.wHour,currentTime.wMinute,currentTime.wSecond,
    currentTime.wMilliseconds,currentTime.wDayOfWeek);
    return 0;
}


分享到:
评论

相关推荐

    C/C++获取(毫秒/微秒/纳秒级)系统时间差方法大全

    在C/C++编程中,获取系统的毫秒、微秒或纳秒级时间差是常见的需求,特别是在性能测试、定时任务或者高精度计时场景中。本文将详细介绍四种常用的方法。 ### 方法一:利用 `SYSTEMTIME` `SYSTEMTIME` 结构体是...

    C++获取当前时间精确到毫秒Ms

    在C++编程中,获取当前时间并精确到毫秒是一个常见的需求,特别是在处理高精度的时间戳或者性能测试等场景。本文将深入探讨如何在C++中实现这一功能,以及涉及的相关知识点。 首先,C++标准库提供了一个名为`...

    php生成毫秒时间戳的实例讲解

    但`time()`函数返回的是当前时间的秒数,并不能直接获得毫秒数。为了得到当前时间的毫秒数,通常有以下两种方法: 第一种方法是使用`microtime()`函数。这个函数返回当前时间的微秒数和秒数,格式为"msec sec"。秒...

    单片机c语言延时程序

    ### 单片机C语言中的延时程序设计与...通过合理地选择和配置循环次数以及循环变量的类型,可以在不牺牲精度的同时获得更宽泛的延时范围。此外,对于极端高精度的要求,可以考虑使用硬件定时器等其他技术手段来实现。

    C语言计时和随机数的获取

    在C语言中,可以使用GetTickCount函数来获取系统运行的时间,该函数返回从系统启动到现在的毫秒数。下面是一个简单的示例代码: ```c #include "stdafx.h" #include #include void main(){ long t1=GetTickCount...

    C语言延时函数

    本文将基于给定的信息,详细介绍C语言中延时函数的设计原理、实现方法以及如何获得较为精确的延时效果。 #### 二、延时函数的重要性与应用场景 在单片机应用中,延时函数主要用于以下几种场景: - **定时操作**:...

    用C语言写的计时器(精确到秒)

    为了精确到秒,我们可以直接使用这个函数,但要注意的是,`time()`返回的时间戳是基于秒的,并不包括毫秒或微秒级别的精度。 要提高计时器的精度,可以使用`&lt;sys/time.h&gt;`头文件中的`gettimeofday()`函数。这个函数...

    C语言时间函数的应用

    在C语言中,暂停功能可以通过`Sleep()`函数实现,该函数在Windows环境下可用,接收毫秒数作为参数。此外,也可以通过`clock()`函数实现自定义的暂停逻辑,通过循环检查当前时间和起始时间的差值来达到目的。例如: ...

    进程调度 时间片轮转调度算法源代码(C语言)

    在操作系统设计中,进程调度是核心功能之一,它负责决定哪个进程应该在什么时候获得CPU的执行权。时间片轮转调度算法是一种常见的进程调度策略,尤其适用于多用户环境,如分时系统。本文将深入探讨时间片轮转调度...

    基于AT89C52单片机的万年历(12864液晶显示) 源代码C语言

    该系统采用C语言编写,通过定时器中断的方式更新时间,并能够根据不同的月份调整日期。项目主要包括硬件设计、软件编程两大部分。 #### 二、关键技术点解析 ##### 2.1 硬件部分 1. **AT89C52单片机**: AT89C52是一...

    贪吃蛇(C语言)

    贪吃蛇游戏是一款经典的休闲娱乐小游戏,玩家通过控制蛇头移动方向,使蛇身增长并获得分数。在本游戏中,蛇在一个由字符构成的矩形区域内移动,吃到食物后蛇身会变长,碰到墙壁或自己则游戏结束。 #### 二、程序...

    告别AV画质:实时把动画变成4k高清,延时仅3毫秒,登上GitHub趋势榜Anime4K-master20200304_0820.zip

    最后,尽管已经获得了精湛的画质提升技能,团队也没有就此抛弃机器学习的力量。 因为在拯救静止画作 (而非动画) 的时候,Anime4K的短板显现了。这时候,让机器学习选手waifu2x和它并肩作战,更加成功一些: ...

    51单片机C语言编程,一本介绍51单片机C语言编程的书

    由于其强大的功能和丰富的外部接口,如I2C总线、ADC、看门狗、PWM等,8051单片机成为许多制造商的首选平台。 书中提到,虽然主要针对的是C语言编程,但也需要读者具备一定的8051汇编语言基础,因为部分章节会涉及到...

    C语言字符动画制作.docx

    为了实现这一点,可以使用C库中的`clock()`函数(需要包含`time.h`头文件)来获取当前时间,并根据目标帧率计算每帧之间的间隔时间。例如,30FPS意味着每帧之间需要等待大约33.3毫秒。 #### 三、高级技巧 ##### 1. ...

    Linux/Ubuntu时间计时器 C++

    精确到微秒级、毫秒级、秒级、分钟级;、 还可获取当前时间戳

    C语言制作简单计算器.pdf

    C语言制作简单计算器 本文介绍了使用C语言制作一个简单计算器的过程,实现基本的加、减、乘、除操作。程序的主要步骤包括:获得用户输入、检查输入、执行计算和显示结果。 一、项目介绍 本项目的目的是使用C语言...

    51单片机c语言教程

    例如,在11.059MHz的时钟频率下,每秒可执行约921,583条指令,每条指令大约需要1.085毫秒来完成。 #### 四、存储器结构 - **CODE区**:代码段用于存储可执行代码,16位寻址,容量可达64KB。通常使用EEPROM作为外接...

    PIC16F877_C语言仿真实例

    - 设置TMR2定时器预分频器以获得合适的定时周期。 - 在中断服务程序中改变RB0的状态,实现方波的输出。 - 在主循环中初始化TMR2定时器和中断。 - **关键代码片段:** ```c #pragma config oscillator=INTOSCIO_...

    如何获得系统时间

    在Linux或Unix系统中,C语言提供了`time()`函数,可以获取自1970年1月1日以来的秒数。为了达到毫秒级精度,可以使用`gettimeofday()`函数,它返回包含秒和微秒的结构体。而在C++环境中,可以使用`&lt;chrono&gt;`库与上述...

Global site tag (gtag.js) - Google Analytics