转:QT时间相关的使用(日期相减问题)
https://blog.csdn.net/qq_18286031/article/details/78538769
Qt两个日期相减的问题
首先,由日期与时间戳的相互转换
QDateTime time = QDateTime::currentDateTime(); //获取当前时间
int timeT = time.toTime_t(); //将当前时间转为时间戳
将一定格式的日期转换为时间戳
QString starttime ="2017-11-11 12:00:00";
QString endtime = "2017-11-13 12:00:01";
QDateTime start = QDateTime::fromString(starttime, "yyyy-MM-dd hh:mm:ss");
QDateTime end = QDateTime::fromString(endtime, "yyyy-MM-dd hh:mm:ss");
uint stime = start.toTime_t();
uint etime = end.toTime_t();
与toTime_t()功能相反的是fromTime_t(),把时间戳转为QDateTime类型。因为这个方法是静态的,所以使用方法为
QDateTime time = QDateTime::fromTime_t(timeT);
两个日期相隔的天数由时间戳来相减得到
int ndaysec = 24*60*60;
qDebug() << "Day = " << (etime - stime)/(ndaysec) + ((etime - stime)%(ndaysec)+(ndaysec-1))/(ndaysec) - 1;
注意:上面的计算中,天数相隔时间差24小时内为0天,可以这样理解,26小时大于24小时(一天),那么他们相差1天了,如果24小时内为1天计算,26小时大于24小时,那么就将后面的减一去掉就可以了。
Qt获取前几天的时间
QDateTime time = QDateTime::currentDateTime();//获取系统现在的时间
QString str = time.toString("yyyy-MM-dd"); //设置显示格式
QString BeforeDaystr=time.addDays(-1).toString("yyyy-mm-dd");//获取前一天时间
具体上代码:
#include <QCoreApplication>
#include <QString>
#include <QDateTime>
#include <QTime>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QString starttime ="2017-11-11 12:00:00";
QString endtime = "2017-11-13 12:00:01";
QDateTime start = QDateTime::fromString(starttime, "yyyy-MM-dd hh:mm:ss");
QDateTime end = QDateTime::fromString(endtime, "yyyy-MM-dd hh:mm:ss");
uint stime = start.toTime_t();
uint etime = end.toTime_t();
qDebug() << "starttime" << starttime;
qDebug() << "endtime" << endtime;
qDebug() << "......................";
qDebug() << "etime" << etime;
qDebug() << "stime" << stime;
qDebug() << "etime - stime" << etime - stime;
int ndaysec = 24*60*60;
qDebug() << "Day = " << (etime - stime)/(ndaysec) + ((etime - stime)%(ndaysec)+(ndaysec-1))/(ndaysec) - 1;
return a.exec();
}
结果如下:
---------------------
作者:逝水流年丶轻染尘
来源:CSDN
原文:https://blog.csdn.net/qq_18286031/article/details/78538769
版权声明:本文为博主原创文章,转载请附上博文链接!
转载于:https://www.cnblogs.com/umbrella-panda/articles/10570470.html
转:QT时间相关的使用(日期相减问题)相关推荐
- QT时间相关的使用(日期相减问题)
原文地址::https://blog.csdn.net/qq_18286031/article/details/78538769 Qt两个日期相减的问题 首先,由日期与时间戳的相互转换 QDateTi ...
- trunc怎么进行日期相减_【PL/SQL】 关于日期操作的常见需求
需求1: 统计一年内所有是星期三的日期.思路: 枚举法,将整年所有日期都罗列出来,然后再用Where条件筛选.Step1: 求出当年的起初日期1/1和最后一天12/31(可省略) SELECT ADD ...
- oracle日期相减工作日_Oracle 计算两个日期间隔的天数、月数和年数
在Oracle中计算两个日期间隔的天数.月数和年数: 一.天数: 在Oracle中,两个日期直接相减,便可以得到天数: select to_date('08/06/2015','mm/dd/yyyy' ...
- 日期相减计算年_函数 | Excel有个“秘密”函数,计算年龄工龄特方便
工作中经常会遇到涉及日期间隔的计算问题,比如计算两个日期之间的天数.月数.年数,这时需要用到Excel中一个秘密函数. 说到"秘密",是因为你在微软Excel提供的的函数列表里是找 ...
- android 日期相减得天数_Excel日期计算方法大全
关注回归线 Excel变简单 日期数据是Excel中很重要的一类数据,很多分析都依赖于日期的计算.但是,大多数Excel使用者都对日期计算的方法不太熟悉. 本文总结了日常工作中常见的日期计算场景和相 ...
- oracle日期相减工作日_oracle 日期相减 转载
转自 http://hi.baidu.com/juanjuan_66/blog/item/cf48554c9331fbe6d62afc6a.html oracle日期相减 2012-02-10 12: ...
- C#.Net工作笔记008---c# 日期时间大小比较_日期相减
技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 /// <summary> /// 比较两个日期大小 ...
- mysql中日期相减_解放双手!用这3个日期函数解决入职、工龄等天数的计算
人事部门员工的入职天数.财务部门合同的到期剩余天数等等,可以通过Excel表格来实现自动计算功能. 今天小编分享三个与日期有关的函数 一.EDATE函数 很多公司新员工入职会有3个月试用期,根据入职日 ...
- mysql时间相减得到天数保留两位_[转]Mysql日期函数-日期相减返回天数
MySQL datediff(date1,date2):两个日期相减 date1 - date2,返回天数. select datediff('2008-08-08', '2008-08-01'); ...
最新文章
- 深入redis内部---网络编程
- element-ui table表格内容相同自动合并
- xstart连不上linux_Xstart远程连接Linux图形用户界面
- 新手网管升级之路(三)
- C/C++[codeup 1907]吃糖果
- dnf红眼补丁在哪下载_dnf狂战士技能血色补丁-DNF狂战士技能红色补丁下载 v3.23完全版--pc6下载...
- 指纹匹配算法matlab,指纹识别算法matlab程序
- win10找回BitLocker密钥的方法
- 武汉大学计算机学院周维,研究生院
- 电脑小知识:如何选择合适的内存条?如何查看自己电脑内存条的内存大小和主频呢?
- CVPR 2022 | End-to-End Referring Video Object Segmentation with MultimodalTransformers
- C++——NOIP模拟题——零件加工
- vs2012 visual studio 2012安装失败管道正在关闭解决方法
- SCOI2016酱油记
- java 过滤关键字 自定义字典库
- MongoDB使用用户登录访问
- mysql从库有张表不同步_mysql主从数据库不同步的2种解决方法
- https://github.com/Trinea/android-open-project
- java 执行js脚本_java中调用js脚本
- [转帖]Photoshop将照片制作成素描效果