C 库函数 - mktime()

2023-12-19

描述

C 库函数 time_t mktime(struct tm *timeptr) 把 timeptr 所指向的结构转换为自 1970 年 1 月 1 日以来持续时间的秒数,发生错误时返回-1。

声明

下面是 mktime() 函数的声明。

time_t mktime(struct tm *timeptr)

参数

  • timeptr – 这是指向表示日历时间的 time_t 值的指针,该日历时间被分解为以下各部分。下面是 timeptr 结构的细节:
struct tm {
   int tm_sec;         /* 秒,范围从 0 到 59                */
   int tm_min;         /* 分,范围从 0 到 59                */
   int tm_hour;        /* 小时,范围从 0 到 23                */
   int tm_mday;        /* 一月中的第几天,范围从 1 到 31                    */
   int tm_mon;         /* 月份,范围从 0 到 11                */
   int tm_year;        /* 自 1900 起的年数                */
   int tm_wday;        /* 一周中的第几天,范围从 0 到 6                */
   int tm_yday;        /* 一年中的第几天,范围从 0 到 365                    */
   int tm_isdst;       /* 夏令时                        */    
};

返回值

该函数返回自 1970 年 1 月 1 日以来持续时间的秒数。如果发生错误,则返回 -1 值。

实例

下面的实例演示了 mktime() 函数的用法。

#include <stdio.h>
#include <time.h>

int main () {
    int ret;
    struct tm info;
    char buffer[80];

    info.tm_year = 2021 - 1900;
    info.tm_mon = 7 - 1;
    info.tm_mday = 4;
    info.tm_hour = 0;
    info.tm_min = 0;
    info.tm_sec = 1;
    info.tm_isdst = -1;

    ret = mktime(&info);
    if( ret == -1 ) {
        printf("Error: unable to make time using mktime\n");
    } else {
        strftime(buffer, sizeof(buffer), "%c", &info );
        printf(buffer);
    }

    return(0);
}

让我们编译并运行上面的程序,这将产生以下结果:

Sun Jul  4 00:00:01 2021
/* 输入日期判断是周几 */
#include <stdio.h>      /* printf, scanf */
#include <time.h>       /* time_t, struct tm, time, mktime */
 
int main ()
{
    time_t rawtime;
    struct tm * timeinfo;
    int year, month ,day;
    const char * weekday[] = { "周日", "周一","周二", "周三","周四", "周五", "周六"};
 
    /* 用户输入日期 */
    printf ("年: "); fflush(stdout); scanf ("%d",&year);
    printf ("月: "); fflush(stdout); scanf ("%d",&month);
    printf ("日: "); fflush(stdout); scanf ("%d",&day);
 
    /* 获取当前时间信息,并修改用户输入的输入信息 */
    time ( &rawtime );
    timeinfo = localtime ( &rawtime );
    timeinfo->tm_year = year - 1900;
    timeinfo->tm_mon = month - 1;
    timeinfo->tm_mday = day;
 
    /* 调用 mktime: timeinfo->tm_wday  */
    mktime ( timeinfo );
 
    printf ("那一天是:%s\n", weekday[timeinfo->tm_wday]);
 
    return 0;
}

让我们编译并运行上面的程序,这将产生以下结果:

: 2023: 12: 21
那一天是:周四
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C 库函数 - mktime() 的相关文章

随机推荐

  • Java爬虫采集房源信息解决朋友店铺选址难题

    昨天我帮朋友选择了适合的开店种类 今天同样的 利用爬虫技术采集店铺房源信息 为朋友店铺开店选址提供一份建议 数据筛查只是作为信息整理的一部分 重要的还是要看地点人流量还需要实地考察才行 我的数据只是做参考 废话不多说 连夜码出下列代码 以下
  • 专业、好用的跨网文件摆渡产品,需要具备哪些功能特性?

    为了确保内部核心资产的安全性 很多企业和机构都会选择将网络进行隔离划分 比如内外网隔离 办公网 研发网隔离等 但网络隔离后 在日常工作中 仍存在用户需求把文件数据从内网到外网 从办公网到研发网终端的文件摆渡业务需求 很多企业都会使用一些传输
  • 【XR806开发板试用】基于FreeRtos的XR806 WLAN测试

    作为一名在车机嵌入式耕耘多年的嵌入式工程师 此前我从未接触过蓝牙和无线相关的开发工作 前段时间参与了全志的开发板适用活动 幸运地被免费开发板砸中 到手发现这个板子具有蓝牙5 0和WLAN功能 兴奋之余立马尝试了一下 开发环境的搭建 受工作环
  • 说说 Dubbo 与 Spring Cloud 的区别?

    Dubbo 和 Spring Cloud 都是流行的分布式服务框架 但它们在设计和使用上有一些不同之处 以下是它们之间的一些主要区别 开发语言 Dubbo 主要基于 Java 而 Spring Cloud 是基于 Spring Boot 的
  • 第二部分相移干涉术

    典型干涉图 相移干涉术 相移干涉术的优点 1 测量精度高 gt 1 1000 条纹 边缘跟踪仅为 1 10 边缘 2 快速测量 3 低对比度条纹测量结果良好 4 测量结果不受瞳孔间强度变化的影响 独立于整个瞳孔的强度变化 5 在固定网格点获
  • centos开机自启动实战小案例

    1 编写一个我们需要做事的脚本 bin bash 打印 Hello echo Hello Mr Phor 为了更好的能看到效果 我们把这段文本放置到一个文件中 如果重启能够看到 a txt文件 我们实验成功 echo hahahahahah
  • C++ 字符串中最长的连续出现的字符

    采用双指针思想 include
  • 什么是SpringCloud

    SpringCloud是一个基于Spring Boot的开源框架 它可以帮助开发者快速搭建分布式系统 包括服务注册与发现 配置管理 负载均衡 容错处理等能力 SpringCloud提供了统一的开发接口 使得开发者可以自由选择不同的服务提供者
  • DHCP服务详解

    DHCP Dynamic Host Configuration Protocol 动态主机配置协议 是一种网络协议 用于自动分配IP地址 子网掩码 默认网关 DNS服务器等网络参数给连接到网络的设备 这个过程主要包括四个步骤 DHCP Di
  • 深入挖掘:Python中的Statsmodels库高级应用

    写在开头 随着数据科学的发展 解决更为复杂问题的关键往往在于深入了解数据并采用更高级的分析工具 本文将带您深入探讨Python中的Statsmodels库 并引入一些高级功能 为更深入的数据挖掘奠定基础 1 方差分析 1 1 方差分析概念
  • 成为NLP专家的最佳时间表:2024 年半年内的学习策略

    介绍 2023 年见证了自然语言处理 NLP 的突破性进展 以及 Bard 和 ChatGPT 等强大语言模型的兴起 这些奇迹不仅是人工智能发展的壮举 它们标志着一个新时代的到来 在这个时代 机器可以以前所未有的准确性和流畅度理解和生成人类
  • HttpUtils——助力高效网络通信

    使用HttpClient发送请求 接收响应很简单 一般需要如下几步即可 1 创建HttpClient对象 2 创建请求方法的实例 并指定请求URL 如果需要发送GET请求 创建HttpGet对象 如果需要发送POST请求 创建HttpPos
  • Dubbo 负载均衡策略?

    Dubbo是一款高性能 轻量级的开源Java RPC框架 它提供了一种灵活的负载均衡策略 以平衡服务调用时的负载 提高系统的可扩展性和稳定性 Dubbo支持多种负载均衡策略 其中包括 随机负载均衡 Random Dubbo使用随机负载均衡策
  • 基于SpringBoot+Vue的游戏交易系统设计实现(源码+lw+部署文档+讲解等)

    文章目录 前言 详细视频演示 具体实现截图 技术栈 后端框架SpringBoot 前端框架Vue 持久层框架MyBaitsPlus 系统测试 系统测试目的
  • 【深度学习】注意力机制(七)Agent Attention

    本文介绍Agent Attention注意力机制 Transformer中的Attention模块可以提取全局语义信息 但是计算量太大 Agent Attention是一种计算非常有效的Attention模块 论文 Agent Attent
  • 代码随想录算法训练营第42天| ● 01背包问题,你该了解这些! ● 01背包问题,你该了解这些! 滚动数组 ● 416. 分割等和子集

    416 分割等和子集 已解答 中等 相关标签 相关企业 给你一个 只包含正整数 的 非空 数组 nums 请你判断是否可以将这个数组分割成两个子集 使得两个子集的元素和相等 示例 1 输入 nums 1 5 11 5 输出 true 解释
  • 基于javaweb实现的家教系统

    一 系统架构 前端 jsp js css jquery 后端 spring springmvc spring orm 环境 jdk1 7 mysql 二 代码及数据库 三 功能介绍 01 管理后台 首页 02 管理后台 用户信息管理 03
  • Python数据分析之Jupyter Notebook安装教程

    一 简介 Jupyter Notebook是基于网页的交互编程工具 以网页的形式打开 可以在网页页面中直接编写代码和运行代码 代码的运行结果也会直接在代码块下显示 特点 Jupyter Notebook中所有交互计算 编写说明文档 数学公式
  • 基于SpringBoot+Vue的论文管理系统设计实现(源码+lw+部署文档+讲解等)

    文章目录 前言 详细视频演示 具体实现截图 技术栈 后端框架SpringBoot 前端框架Vue 持久层框架MyBaitsPlus 系统测试 系统测试目的
  • C 库函数 - mktime()

    描述 C 库函数 time t mktime struct tm timeptr 把 timeptr 所指向的结构转换为自 1970 年 1 月 1 日以来持续时间的秒数 发生错误时返回 1 声明 下面是 mktime 函数的声明 time