c语言log_C语言和时间有关的函数示例

6f53e42d4d54570bd35c18a97ac1c0b8.png

C语言中和时间相关的函数,通常有两种用法:

  • 显示当前时间,用于记log、时间和日期的可视化等;
  • 记录程序耗时,用于分析、比较某段函数的运行所消耗的时间。

本篇介绍第一种用法,第二种用法可参见:

C函数time和clock的计时区别

首先来认识下库函数的两种数据类型:

  • time_t,long型
  • struct tm
ce89c63a8535c81a1c248b7c12a82547.png

struct tm

其中,每个变量的含义如下:

  • tm_sec:秒,取值范围 [0, 59]
  • tm_min:分,取值范围 [0, 59]
  • tm_hour:时,取值范围 [0, 23]
  • tm_mday:日期,取值范围 [1, 31]
  • tm_mon:月份,取值范围 [0, 11],0代表一月,11代表十二月
  • tm_year:年份,其值等于实际年份减去1900
  • tm_wday:星期,取值范围 [0, 6],0代表星期天,1代表星期一
  • tm_yday:从每年的1月1日开始的天数,取值范围 [0, 365],0代表1月1日,1代表1月2日

1、获取当前的时间的秒数

time_t time(time_t *seconds) 返回自纪元 Epoch(1970-01-01 00:00:00 UTC)起经过的时间,以秒为单位。

time_t now;

在使用时,一般可以通过 now = time(NULL) 获取当前的时间(秒数),也可以通过 time(&now) 获取。

2、获取当前时间的日期

若想直观的得到现在的 年-月-日 时-分-秒 信息,就需要用 struct tm 来显示。

将 time_t 和 struct tm 转换的函数就是 localtime(time_t*) 和 gmtime(time_t*),其返回一个struct tm* 类型,注意是指针类型。

gmtime()函数是将日历时间转化为世界标准时间(即格林尼治时间),并返回一个tm结构体来保存这个时间。而localtime()函数是将日历时间转化为本地时间。

程序示例如下:

e295b31fe0d9b4cedf60898ca51fed6d.png

程序示例

运行结果如下:

15aa241296d59c8e0ea5c20f9621c974.png

运行结果


http://www.niftyadmin.cn/n/1516720.html

相关文章

intel RDT (Resource Director Technology) 管理LLC和内存带宽

问题: 在虚拟化环境中,宿主机的资源(包括CPU cache和内存带宽)都是共享的。但是如果有一个消耗cache的应用快速消耗了L3缓存,或者一个应用消耗了系统大量内存带宽,那么如何保证其他虚拟机应用呢&#xff1f…

WinCE6.0 R3的安装步骤

很早以前装过一次R3,装完以后直接导致编译不过,当时也没找到解决办法,最后只能放弃,一直没再动它。这两天ZWF在调试程序的过程中发现了一个BUG,应用程序无法正确设置文件夹的隐藏属性。起初我以为是NAND驱动或者是注册…

经典笔试题目分析

1、 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 1) #define 语法的基本知识(例如:不能以分号结束,括号的使用&#xff…

python opencv图像处理函数_Python+OpenCV图像处理(十二)—— 图像梯度

简介:图像梯度可以把图像看成二维离散函数,图像梯度其实就是这个二维离散函数的求导。 Sobel算子是普通一阶差分,是基于寻找梯度强度。拉普拉斯算子(二阶差分)是基于过零点检测。通过计算梯度,设置阀值&…

基于OpenCV的三维重建python实现

第一部分:简要概述立体三维重建所需的步骤 https://ai.yanxishe.com/page/TextTranslation/1412 第二部分:相机校正 https://ai.yanxishe.com/page/TextTranslation/1413 第三部分:3D重建 https://ai.yanxishe.com/page/TextTranslation/1414…

itoa函数实现

自己随便写的,实现了最基本的itoa功能。 /* 将整形数字转换为字符串 */ char *itoa(int num) //没考虑负数 {int len, temp;char *res;len 0;temp num;while(temp ! 0){len;temp / 10; }res (char *)malloc(sizeof(char) * (len 1));if(res NULL){printf("…

WINCE6.0下NK大于32MB下载失败的解决方法

原文地址:http://www.cnblogs.com/feishanm/archive/2009/08/04/1538284.htmlCSDN相关讨论:http://topic.csdn.net/u/20100104/08/bbdadd2d-3b43-41cb-9e39-51880108e438.html?46447 通常情况,wince系统默认的image大小是32M,一…

helloworld代码_“c#逆向工程学习之路”之hello world程序代码解释

.为了对ILasm有一个大体的感受,我们考虑以上这个简单的案例-Hello World!本案例是通过调用WriteLine完成的,WriteLine是Class System.Console(属于标准程序集mscorlib)中的Static Method。有关mscorlib的内容请参考ECM…