设为首页 加入收藏

TOP

C 语言 时间函数使用技巧(汇总)(一)
2023-07-23 13:27:18 】 浏览:108
Tags:语言 时间函 汇总

time.h 头文件 是 C 语言中 有关 时间的函数所储存的头文件

#include <time.h>

在介绍时间函数用法之前,我们首先要了解在 time.h 头文件中已经声明了的一个结构: struct tm
该结构在time.h 头文件内声明如下:

#ifndef _TM_DEFINED
#define _TM_DEFINED
  struct tm {
    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;
  };
#endif

该结构内个成员所代表的意思:

struct tm 
   {
       int tm_sec;        //秒(0~61)
       int tm_min;        //分(0~59)
       int tm_hour;       //小时(0~23)
       int tm_mday;       //日(1~31)
       int tm_mon;        //月份(0~11)
       int tm_year;       //年,从1970年至今经过的年数
       int tm_wday;       // 星期:(0~6)
       int tm_yday;       // 天数(0~365)
       int tm_isdst;      //夏令时 daylight-saving time
   }

下面来介绍几种时间函数的用法:

//函数名称:
time();
//函数原型:
time_t __cdecl time(time_t *_Time) 
{ 
	return _time64(_Time);
}
//函数功能:得到机器的日历时间或设置日历时间
//函数返回机器日历时间
//用法:
参数说明: timer = NULL 时得到机器日历时间, timer = 时间数值值,用于设置日历时间, time_t  是一个long 类型
#include <stdio.h>
#include <time.h>

int main(void)
{
    time_t timer;
    timer = time(NULL);
    printf("%ld\n", timer);
}

运行结果是 秒数:在这里插入图片描述
将这个秒数通过时间戳在线转换网站转换为年月日,转换网址为: https://tool.lu/timestamp/ 转换结果如下
在这里插入图片描述

//函数名称:
localtime();
//函数原型:
struct tm *__cdecl localtime(const time_t *_Time) 
{
	return _localtime32(_Time); 
}
//函数功能: 返回一个以 tm结构表达的机器时间信息
//函数返回:以 tm 结构表达的时间
//用法:
#include <stdio.h>
#include <time.h>

int main(void)
{
    time_t timer;
    struct tm *tblock;
    timer = time(NULL);
    tblock = localtime(&timer);
    printf("当地时间是 %s", tblock);
}

直接使用 tblock的值 输出结果是有问题的:
在这里插入图片描述
想要获取日常使用的时间格式 要多使用一个函数:

//函数名称:
asctime();
//函数原型:
char *__cdecl asctime(const struct tm *_Tm) 
//函数功能:获取机器时间(日期时间转换成ASCII码)
//函数返回:返回的时间字符串格式为: 星期,月,日,小时:分:秒,年
//用法:
#include <stdio.h>
#include <time.h>

int main(void)
{
    time_t timer;
    struct tm *tblock;
    timer = time(NULL);
    tblock = localtime(&timer);
    printf("当地时间是 %s", asctime(tblock));
}
//另一种用法:
//结合 struct tm 结构
#include <stdio.h>
#include <time.h>
#include <string.h>

int main(void)
{
    struct tm t;
    char str[80];

    t.tm_sec = 1;
    t.tm_min = 3;
    t.tm_hour = 7;
    t.tm_mday = 22;
    t.tm_mon = 11;
    t.tm_year = 56;
    t.tm_wday = 4;
    t.tm_yday = 0;
    t.tm_isdst = 0;
    strcpy(str, asctime(&t));
    printf("%s", str);
}

运行结果:
用法1:
在这里插入图片描述
用法2:
在这里插入图片描述
同样使用 时间格式输出时间的还有:

//函数名称:
ctime();
//函数原型:
char *__cdecl ctime(const time_t *_Time)
 { 
 	return _ctime64(_Time); 
 }
//函数功能:得到日历时间
//函数返回:返回字符串格式: 星期,月,日,小时:分:秒,年
//用法:
#include <stdio.h>
#include <time.h>

int main(void)
{
    time_t t;
    time(&t);
    printf("当地时间是 %s", ctime(&t));
}

运行结果:
在这里插入图片描述
两次机器时间差的获取方法:

//函数名称:
difftime();
//函数原型:double __cdecl difftime(time_t _Time1,time_t _Time2)
//函数功能:得到两次机器时间差,单位为秒
//函数返回:时间差,单位为秒
//用法:
//参数说明: time1 - 机器时间一, time2 - 机器时间二,该参数应使用 time函数获得
#include <stdio.h>
#include <time.h>
#include <windows.h>

int main(void)
{
    time_t first, second;
    first = time(NULL);
    Sleep(2000);
    second = time(NULL);
    printf("两者之间差了 %f 秒", difftime(second, first));
}

运行结果:
在这里插入图片描述
另一个 结构 时间信息 函数:

//函数名称:
gmtime();
//函数原型:struct tm *__cdecl gmtime(const time_t *_Time) { return _gmtime64(_Time); }
//函数功能:得到以结构 tm 表示的时间信息
//函数返回:以结构 tm 表示的时间信息指针
//用法:
//参数说明: t 函数用 time()得到的时间信息
#include <stdio.h>
#include <time.h>
#include <windows.h>

int main(void)
{
    char *tzstr = "TZ = PST8PDT";
    time_t t;
    struct tm *gmt, *a
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇JSX简介 下一篇win10激活

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目