C++怎样获取当前系统时间?
C++怎样获取当前系统时间?
- 1、调用cmd函数来获取当前时间
- 2、识别系统API来获取当前时间
- 3、直接获取系统时间
1、调用cmd函数来获取当前时间
这个模块并不是特别的麻烦,因为这种方法是直接使用cmd命令进行获取以及更改系统时间的一种方法,
但是并不建议大家使用,尤其是有杀毒软件的,因为这个程序涉及到系统的一些更改,当然就非常容易被误认为是一种木马病毒,就拿联想的扬天来说,装机自带迈克菲碰到要更改系统的一些程序直接关闭,并不像360杀毒先是列入程序的木马黑名单,但是自己可以强制使其运行,那废话不多说,先来看一下程序:
#include <stdlib.h>
using namespace std;int main()
{system("time");return 0;
}
当然,我在这里并不会多讲system的命令,大家有需要的话可以参考一下我的另外一篇博文:C++里的调用cmd命令的方法
那在这里我就先只展示这个程序的运行后的效果:
2、识别系统API来获取当前时间
使用系统内部的API来获取当前时间是我最喜欢用的,它不仅优秀,而且高大上! 咳咳,不好意思,说错了,应该是:它不仅好用,而且精确,更是因为,非常好理解这对于新手小白也是从未有过的福音!
那直接来看程序:
#include <stdio.h>
#include <windows.h>
using namespace std;int main()
{SYSTEMTIME sys;GetLocalTime(&sys);printf("%4d/%02d/%02d %02d:%02d:%02d.%03d 星期%1d\n",sys.wYear,sys.wMonth,sys.wDay,sys.wHour,sys.wMinute, sys.wSecond,sys.wMilliseconds,sys.wDayOfWeek);return 0;
}
这里我觉得有必要将一下,此处的sys.wYear是表示年的数字,sys.wDayOfWeek是表示一周里面的星期几,以此类推,每个英文单词的前面都加上一个小写的“w“就是这个函数的命令的调用
那我们再来看一张图片:
当然,细心的小伙伴会发现,printf里面有些空格和”/“这些东西大家都可以修改,因为这个是控制输出的样式的,并不影响程序最后的结果,就比如下面的这张图:
最后再多一句嘴:通过API命令获取到的时间是可以直接作为变量储存的,也就是说,可以直接可以用作判断变量
就例如前不久刚刚完工的一个程序,我就是用的API命令来获取的时间,并定义成int类型的变量,最后在实现判断的功能~~
3、直接获取系统时间
直接获取法是比较难理解的一种方法,但是一旦会用它,那就叫一个畅通无阻但是这种方法到底有多难理解呢?
打个比喻:有一棵100米的树,每天白天,你能上升2厘米,晚上,你要掉1厘米,也就是说,整整一天只能够上升1厘米,但是现在树的净高是100米,计算一下需要多少天,再想象一下自己如果真的在那种情况下的话,恐怕天数,不仅仅是一个数字那么简单
那对于爱挑战的小伙伴来说,这无疑是个大好的机会,那我们就来看一看代码吧!
#include<iostream>
#include<time.h>
using namespace std; int main()
{ //获取系统时间 time_t now_time=time(NULL); //获取本地时间 tm* t_tm = localtime(&now_time); //转换为年月日星期时分秒结果,如图: printf("local time is : %s\n", asctime(t_tm)); //将时间转换为秒 time_t mk_time = mktime(t_tm); //也可以自己定义一个时间 //定义截止时间 struct tm deadline_tm; deadline_tm.tm_sec=0;//[0~59] deadline_tm.tm_min=10;//[0~59] deadline_tm.tm_hour=13;//[0~23] deadline_tm.tm_isdst=0;//default deadline_tm.tm_mday=31;//[1~31] deadline_tm.tm_mon=2;//[0~11]
}
很多的小伙伴包括我看到这么多的代码和注释,脑壳痛,快用万通筋骨贴! Emm。。。(突然感觉这像是植入的广告)但是千万别抠脑壳,我们一起来解读一下这个代码:
首先是头文件:
#include<iostream>
#include<time.h>
这个应该不用过多的去解说,就是普普通通的两个头文件
其次是获取两种时间:
- 1、获取系统时间
- 2、获取本地时间
//获取系统时间
time_t now_time=time(NULL);
//获取本地时间
tm* t_tm = localtime(&now_time);
那获取这两种时间有什么用呢,其实在这里我尝试过只获取一种时间来获取当前时间,但是我的电脑上运行好似不行,但是大家也可以尝试一下,比如说注释一段,等等,但是这里想提醒大家的是:两种时间都是有关联性的,也就是说,没有这个时间,那么下一个时间就执行不了运算的功能
//转换为年月日星期时分秒结果,如图:
printf("local time is : %s\n", asctime(t_tm));
//将时间转换为秒
time_t mk_time = mktime(t_tm);
这一段就只是一个运算与转换的模块,后面方便输出的时候的可视化,不然。。。(大家可以试试没有转换与运算的模块是什么东东,我是看不懂~)
最后,来说一下最后的一个模块:
//定义截止时间
struct tm deadline_tm;
deadline_tm.tm_sec=0;//[0~59]
deadline_tm.tm_min=10;//[0~59]
deadline_tm.tm_hour=13;//[0~23]
deadline_tm.tm_isdst=0;//default
deadline_tm.tm_mday=31;//[1~31]
deadline_tm.tm_mon=2;//[0~11]
这个大家不用深入了解,只不过是一个告诉编译器这个时间是60进制的而已啦!突然感觉电脑是一个”聪明的傻子“
好了,以上就是今天的内容,之后我还会继续更新我的博客,欢迎大家关注我的博客,查看更多的文章!也欢迎大家在CSDN社区里面发布自己的一些发现和经验!拜拜!
C++怎样获取当前系统时间?相关推荐
- JAVA中获取当前系统时间
JAVA中获取当前系统时间 转自:http://www.cnblogs.com/Matrix54/archive/2012/05/01/2478158.html 一. 获取当前系统时间和日期并格式化输 ...
- python获取当前时间的函数_java/python中获取当前系统时间,并与字符串相互转换格式,或者转化成秒数,天数等整数...
java转换成秒数 Date类有一个getTime()可以换回秒数,例如: public classDateToSecond {public static voidmain(String[] args ...
- c语言编程获取当前系统时间包含年,月,日,时,分,秒.,C语言获取系统时间的几种方式...
核心提示:C语言中如何获取时间?精度如何?1使用time_ttime(time_t*timer)精确到秒2使用clock_tclock()得到的是CPU时间精确到1/CLOCKS_PER_SEC秒3计 ...
- Windows下C/C++获取当前系统时间
Windows下CC获取当前系统时间 方案一localtime 优点仅使用C标准库缺点只能精确到秒级 方案二GetLocalTime sys 优点能精确到毫秒级缺点使用了windows API 方 ...
- 关于Java中获取当前系统时间
一. 获取当前系统时间和日期并格式化输出: 1 import java.util.Date; 2 import java.text.SimpleDateFormat; 3 4 public class ...
- Perl获取当前系统时间
Perl获取当前系统时间 Perl 2010-12-06 10:41:57 阅读236 评论0 字号:大中小 订阅 perl有两个取得时间的函数:localtime和gmtime 两个函数的用法一 ...
- java怎么获取当前日期_JAVA中获取当前系统时间
一. 获取当前系统时间和日期并格式化输出: import java.util.Date; import java.text.SimpleDateFormat; public class NowStri ...
- js如何获取计算机当前时间,js获取当前系统时间
搜索热词 下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. var myDate = new Date(); myDate.getYear( ...
- java中取系统时间_JAVA中获取当前系统时间(示例代码)
一. 获取当前系统时间和日期并格式化输出: import java.util.Date;import java.text.SimpleDateFormat; public class NowStrin ...
- Js获取当前系统时间,24小时制
Js获取当前系统时间 var myDate = new Date(); myDate.getYear(); //获取当前年份(2位) myDate.getFullYear(); / ...
最新文章
- 安装SQL SERVER 2000时提示:以前的某个程序安装已在安装计算机上创建挂起的文件操作。...
- mysql8出现The MySQL server is running with the --skip-grant-tables option so it cannot execute
- (转)网站推广优化教程100条(SEO,网站关键字优化,怎么优化网站,如何优化网站关键字)...
- 前端开发攻城狮必须知道的开发环境和插件
- Axure元件库:ElementUI元件、蚂蚁金服元件
- yml的基本语法,以及java读取yml文件
- iPhone上传文件到ftp服务器,将文件上传到iPhone上的FTP服务器
- 实现弹出窗口提示_AX
- 利用 confluence 打造属于自己的知识库
- 双摄方案android,科普短文,各种手机双摄像头搭配方案及工作原理简介
- JAVA方式对接FIL节点钱包(也有离线)
- 让研发团队找准市场需求
- MySQL必知必会!!!看这一篇就足够了!!!
- 测相伪距观测方程、线性组合
- LPC1768 PWM1输出PWM示例
- 学透for循环-传统for循环与增强for循环
- CCMP之播放列表(高仿千千静听)
- mkdir创建目录失败的原因
- Exchange 2016的MAPI over HTTP简介
- 电力系统潮流计算(牛顿-拉夫逊法、高斯-赛德尔法、快速解耦法)【6节点 9节点 14节点 26节点 30节点 57节点】(Matlab代码实现)
热门文章
- Mac苹果电脑远程的方法和教程
- 士兵队列训练问题 (队列 c++)
- python multiprocessing_Python的multiprocessing模块详解
- 活在IT,半路捡起硌脚的石子
- (转)编程的三层境界——器、术、道
- 去哪儿网2023正式秋招啦,来这里可以内推
- 洛谷 [P1593 因子和] {快速幂+费马小定理求逆元+求解质因子} 奋斗的珂珂~
- xxljob默认登录_三千字带你搞懂XXL-JOB任务调度平台
- 云服务器购买与使用(学生优惠)
- 介词 before behind before beside between