关于Ctime库

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

本文来自 Fuko_Ibuki 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/qq_31908675/article/details/81233816?utm_source=copy

ctime

时间!关于日期和时间的计算在信息学竞赛中非常重要.
这一次我来介绍一下ctime中两个神奇的函数.
1:clock
这个东西可以算代码运行的时间.用法是这样的:

clock_t nowtime=clock();
...
cout<<clock()-nowtime<<endl;123

这时候输出了一个数字,单位是毫秒,表示运行的时间.
这样就可以判断你是不是tletletle了.
爆搜到时限之后直接输出?1?1-1其实也是用的这种方法.
2.difftime
这个函数用来算两个时间之间的时间差.
用法?
首先在c++中,时间是由一个叫tmtmtm的结构体储存的.
这个结构体有9个成员.

struct tm{
int tm_sec;//秒
int tm_min;//分钟
int tm_hour;//小时
int tm_mday;//(这个月的)哪一天
int tm_mon;//月
int tm_year;//年(这个年是以1900作为起始时间的,设置的时候要减去1900)
int tm_wday;//星期几,0表示星期天
int tm_yday;//今年从1月1日开始的第几天
int tm_isdst;//是否是夏令时
};1234567891011

然后有一个函数mktime(&t) 可以将结构体表示的时间变为秒表示的时间.
接下来用difftime函数可以算出两个日期之间差的秒数,除以864008640086400就是天数.
举例计算从今年7月22日(谁的生日?) 到今天 (7月27日) 的天数.应该是5天.

int main()
{
    tm t1= {0},t2= {0};
    t1.tm_year=2018-1900,t1.tm_mon=6,t1.tm_mday=22;
    t2.tm_year=2018-1900,t2.tm_mon=6,t2.tm_mday=27;
    cout<<difftime(mktime(&t2),mktime(&t1))/86400<<endl;
}//输出51234567

要注意的点:
1.年份从1900开始,月份以1月为准,要减掉1;
2.计算的时间的范围在[1900,3000]之间.别过界了.
这样我们再也不怕询问时间的问题了!

原文地址:https://www.cnblogs.com/cgjh/p/9751120.html

时间: 2024-10-17 21:52:53

关于Ctime库的相关文章

C++获取当前系统时间

在做银行系统的过程中,想到一个功能,记录每一位用户的操作,即用户的日志.此时需要用到ctime库来获取当前的系统时间. 获取时间的源码如下: time_t curtime=time(0); tm tim =*localtime(&curtime); int day,mon,year; int hour,min,sec; string time; hour=tim.tm_hour; min=tim.tm_min; sec=tim.tm_sec; day=tim.tm_mday; mon=tim.t

浅谈模拟退火

蒟蒻最近学习了模拟退火,与各位巨佬来分享一下自己的见解,不足之处望多指教 浅谈模拟退火 Part 1:何为模拟退火 首先,模拟退火=模拟 退火,它本质上是对冶金学中退火过程的一种模拟. 在某些问题中,我们可以把问题抽象成一个函数.这个函数的最大/最小值就是问题的解 有些问题很美妙,它在问题区间内是单峰函数,直接贪心/三分即可(问题都成这样了那还要模拟退火有什么用呢?) 但是有些问题比较鬼畜,它不是单峰函数,单纯的贪心算法很容易陷入局部最优解而忽略了全局最优解 那么解决办法,也就是模拟退火的思想:

csp的注意事项

第一届csp要来啦(此帖巨水) 这是给各位选手们的注意事项 普及组: 因为大部分人是第一次参加,所以有必要好好说一下 一.准备  在开考之前,首先要有充足的准备. 不要熬夜,不要暴饮暴食(尤其注意你的喂食问题,吃顿营养的).再看几遍板子,钻研几篇自己不熟练的算法(大概了解其思想即可),万一考到了呢?但是!不要把精力全部耗在代码提高上,更应放松心态,平稳心情,保持适度紧张. 二.心态 之所以把它单理出来说,是因为考试心态真的很重要(似乎大局已定). 能否保持一颗平稳的心,是决定胜负的关键. 考试前

时间相关库&lt;ctime&gt;解析

原创作品,转载请注明来源:http://www.cnblogs.com/shrimp-can/p/5649487.html 一.定义的类型 1.clock_t:时钟类型 2.size_t:unsigned int 3.time_t:时间类型 4.struct tm:结构,成员如下: Member Type Meaning Range tm_sec int seconds after the minute 0-60* tm_min int minutes after the hour 0-59 t

python库使用整理

1. 环境搭建 l  Python安装包:www.python.org l  Microsoft Visual C++ Compiler for Python l  pip(get-pip.py):pip.pypa.io/en/latest/installing.html n  pip install + 安装包          --安装包(.whl,.tar.gz,.zip) n  pip uninstall + 安装包        --卸载包 n  pip show --files +

C++标准库和标准模板库

C++强大的功能来源于其丰富的类库及库函数资源.C++标准库的内容总共在50个标准头文件中定义. 在C++开发中,要尽可能地利用标准库完成.这样做的直接好处包括: (1)成本:已经作为标准提供,何苦再花费时间.人力重新开发呢: (2)质量:标准库的都是经过严格测试的,正确性有保证: (3)效率:关于人的效率已经体现在成本中了,关于代码的执行效率要相信实现标准库的大牛们的水平: (4)良好的编程风格:采用行业中普遍的做法进行开发. 一.C++标准库 C++标准库的内容分为10类, 分别是:C1.语

标准IO的简单应用,动静态库,读取系统时间并打印,模拟ls -l功能

2015.2.27星期五,小雨 标准IO实现的复制功能: #include <stdio.h>#include <errno.h> #define N 64 int main(int argc, char *argv[]){ int n; char buf[N]; FILE *fps, *fpd; if(argc < 3) { printf("usage : %s <src_file><dst_file>\n",argv[0]);

【python标准库学习】thread,threading(二)多线程同步

继上一篇介绍了python的多线程和基本用法.也说到了python中多线程中的同步锁,这篇就来看看python中的多线程同步问题. 有时候很多个线程同时对一个资源进行修改,这个时候就容易发生错误,看看这个最简单的程序: import thread, time count = 0 def addCount(): global count for i in range(100000): count += 1 for i in range(10): thread.start_new_thread(ad

C++11 std::chrono库详解

所谓的详解只不过是参考www.cplusplus.com的说明整理了一下,因为没发现别人有详细讲解. chrono是一个time library, 源于boost,现在已经是C++标准.话说今年似乎又要出新标准了,好期待啊! 要使用chrono库,需要#include<chrono>,其所有实现均在std::chrono namespace下.注意标准库里面的每个命名空间代表了一个独立的概念.所以下文中的概念均以命名空间的名字表示! chrono是一个模版库,使用简单,功能强大,只需要理解三个