iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >Qt QDateTime计算时间差的实现示例
  • 214
分享到

Qt QDateTime计算时间差的实现示例

Qt QDateTime计算时间差Qt 计算时间差 2023-05-17 17:05:09 214人浏览 泡泡鱼
摘要

目录前言一、QDateTime二、常用的函数1.示例代码2.日期与时间戳互转前言 如果一个程序比较耗时,我们又想知道性能的瓶颈在哪里,然后针对性的进行优化。这里暂时不考虑多线程的情况

前言

如果一个程序比较耗时,我们又想知道性能的瓶颈在哪里,然后针对性的进行优化。这里暂时不考虑多线程的情况。Qt中与时间相关的类大概有以下几个:
1.QDateTime
2.QTime
3.QDate
4.QTimeZone
5.QCalendar
是不是有点头大,反正我是懵圈了。。。。。。
这篇文章主要聊聊QDateTime

一、QDateTime

QDateTime官方文档

二、常用的函数

主要有以下常用函数

从官网描述来看大概意思:QDateTime 对象编码日历日期和时钟时间(“日期时间”)。它结合了QDate和QTime类的特性。它可以从系统时钟中读取当前日期时间。它提供了比较日期时间和通过添加秒数、天数、月数或年数来操作日期时间的函数。

1.示例代码

#include "MainWindow.h"

#include <QApplication>
#include <QTime>
#include <QDateTime>
#include <QDebug>

int main(int arGC, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
//    w.show();


//    int iCount[10000000] = {1};
    int *pAllocation = new int[10000000];
    int item = 0;
    QDateTime time1 = QDateTime::currentDateTime();
    QTime startTime = QTime::currentTime();
    for(quint64 i=0; i<9000000000; i++)
    {
        item = i;
    }

    QDateTime time2 = QDateTime::currentDateTime();
    int days = time1.daysTo(time2);
    qDebug() << "Cast days=" << days;

    quint64 sTime = time1.toTime_t();
    quint64 eTime = time2.toTime_t();

    quint64 costTime = eTime - sTime;
    qDebug() << "eTime - sTime=" << costTime;
    QDateTime elapseTime = QDateTime::fromTime_t(costTime);
    qDebug() << "Elapsed time=" << elapseTime;

    QTime endTime = QTime::currentTime();



    int elapsed = startTime.secsTo(endTime);
    qDebug() << startTime.secsTo(endTime);


//    int ndaysec = 24*60*60;
//    qDebug() << "Day = " << (etime - stime)/(ndaysec) + ((etime - stime)%(ndaysec)+(ndaysec-1))/(ndaysec) - 1;

    QDateTime dateTime;
    QString elapsedTime = dateTime.fromTime_t(elapsed).toString("yyyy-MM-dd hh:mm:ss[:zzz]");
    qDebug() << "Cast time=" << elapsedTime;

    return a.exec();
}

注意如果考虑毫秒、微秒、纳秒级在计算时间差的时候,建议使用quint64,否则很容易溢出。
另外boost当中的chrono也非常好用,而且精确度可以达到纳秒级,当然这里是考虑了cpu的时钟频率。

#include <iOStream>
#define BOOST_DATE_TIME_POSIX_TIME_STD_CONFIG		// 必须在头文件之前定义宏,否则无效!!!
#include <boost/date_time/posix_time/posix_time.hpp>
 
int main(int argc, char **argv) {
	// 第四个参数,如果精确度是微秒,单位就是微秒,如果精确度是纳秒,单位就是纳秒
	boost::posix_time::time_duration td(1, 10, 30, 1000);				// 01:10:30
	// 查看当前的精确度
	if (td.resolution() == boost::date_time::nano) printf("精确度:纳秒\n");
	else printf("精确度:微秒\n");
	// 返回秒的小数部分的位数(微秒6位,纳秒9位)
	std::cout << td.num_fractional_digits() << std::endl;
 
	// 对于以下输出,默认微秒精度输出:01:10:30.001000  纳秒精度输出:01:10:30.000001000
	std::cout << td << std::endl;
	// 对于以下输出,在纳秒精度下,微秒会被忽略(微秒:4230001 纳秒:4230000)
	std::cout << td.total_milliseconds() << std::endl;
	// 下面的这个方法,就是输出小数点后面的数值,单位随精确度变化
	std::cout << td.fractional_seconds() << std::endl;
	return 0;
}

2.日期与时间戳互转

QString starttime ="2022-11-11 12:00:00";
QString endtime = "2022-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();

QDateTime time = QDateTime::fromTime_t(timeT); 

到此这篇关于Qt QDateTime计算时间差的实现示例的文章就介绍到这了,更多相关Qt QDateTime计算时间差内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Qt QDateTime计算时间差的实现示例

本文链接: https://www.lsjlt.com/news/211339.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Qt QDateTime计算时间差的实现示例
    目录前言一、QDateTime二、常用的函数1.示例代码2.日期与时间戳互转前言 如果一个程序比较耗时,我们又想知道性能的瓶颈在哪里,然后针对性的进行优化。这里暂时不考虑多线程的情况...
    99+
    2023-05-17
    Qt QDateTime计算时间差 Qt 计算时间差
  • python 时间差的计算
    import time import datetime start = datetime.datetime.now() time.sleep(30) end = datetime.datetime.now() print (end-s...
    99+
    2023-01-31
    时间差 python
  • php如何实现时间差异计算
    小编给大家分享一下php如何实现时间差异计算,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!时间差异计算function ...
    99+
    2024-04-02
  • Java计算两个时间段的差的实例详解
    在本文中,让我们探索各种方法来找出 Java 中两个时间段之间的差异。为简单起见,假设提供给我们的时间段格式为 HH:MM:SS 例子 输入:第一个时间段:- 18:00:00 ...
    99+
    2022-11-13
    Java 计算时间段差
  • Shell时间运算及时间差的计算方法
    本篇内容主要讲解“Shell时间运算及时间差的计算方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Shell时间运算及时间差的计算方法”吧!一、时间加减这里处理方法,是将基础的时间转变为时间戳...
    99+
    2023-06-09
  • Qt实现简易计时器的示例代码
    目录一、项目介绍二、项目基本配置三、UI界面设计四、主程序实现4.1 mainwindow.h头文件4.2 mainwindow.cpp源文件五、效果演示一、项目介绍 计时器实现四个...
    99+
    2024-04-02
  • Python实现自动计算特定格式的时间差
    目录功能附加函数实例如下一、获取 "2030-12-02T17:00:00+08:00" 3小时后的时间格式 "2030-12-02T20:00:00+08:00"二、计算两个时间之...
    99+
    2024-04-02
  • C++算法计时器的实现示例
    目录1.毫秒级精度1.1 CLOCKS_PER_SEC1.2 GetTickCount()函数 (Windows API)1.3 timeGetTime()函数(Windows AP...
    99+
    2024-04-02
  • JS如何计算距当前时间的时间差
    这篇文章主要介绍JS如何计算距当前时间的时间差,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!如下所示: function get_time_diff(time) ...
    99+
    2024-04-02
  • Qt超时锁屏的实现示例
    概述 Qt实现超时锁屏的功能(工控机触摸屏),当手长时间不触摸屏幕的时候,程序超时会显示锁屏窗口。 效果 主窗口超时显示锁屏窗口: 系统窗口超时显示锁屏窗口: 实现思路 首先开...
    99+
    2024-04-02
  • 利用Java怎么实现计算两个日期的时间差
    本篇文章给大家分享的是有关利用Java怎么实现计算两个日期的时间差,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。具体如下:public static int getMonthD...
    99+
    2023-05-31
    java ava
  • 利用java如何实现计算两个日期的时间差
    今天就跟大家聊聊有关利用java如何实现计算两个日期的时间差,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。java计算两个日期中间的时间其中在数据库中有一个字段为datetime类型...
    99+
    2023-05-31
    java 时间差 ava
  • Python如何实现自动计算特定格式的时间差
    这篇文章主要讲解了“Python如何实现自动计算特定格式的时间差”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python如何实现自动计算特定格式的时间差”吧!功能输入一个特定格式的时间戳,...
    99+
    2023-06-22
  • QT实现将两个时间相加的算法[hh: mm + hh: mm]的示例代码
    目录【1】简介【2】标志位【3】系统时间+设定的时间【源码附上】【4】系统时间+清洗时间【附上源码】【5】总结【1】简介 本次写作是在实际项目中需要,进行的时间算法,本人通过QT时间...
    99+
    2024-04-02
  • 用 Golang 编写计算方差的示例
    在Go语言中,计算一组数据的方差是一种常见的数学计算操作。方差用于衡量数据集中值的分散程度,是统计学中的重要概念之一。下面我们将通过一个示例来演示如何使用Go语言实现方差的计算。 首先...
    99+
    2024-02-25
    golang 示例 方差计算 go语言
  • JavaScript中时间差异的示例分析
    这篇文章主要介绍JavaScript中时间差异的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!时间差异这是一种从传统反逆向技术那里借鉴过来的基于时间的反调试技巧。当脚本在DevTools等工具环境下执行时,运...
    99+
    2023-06-27
  • 利用Java如何实现计算两个程序运行的时间差
    这期内容当中小编将会给大家带来有关利用Java如何实现计算两个程序运行的时间差,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、获取系统当前时间long startTime = System.curren...
    99+
    2023-05-31
    java ava 时间差
  • sql怎么计算两个字段的时间差
    在SQL中,可以使用DATEDIFF()函数来计算两个字段的时间差。该函数的语法如下: DATEDIFF(date1, date2)...
    99+
    2024-04-09
    sql
  • Qt实现电子时钟的示例代码
    目录一、项目介绍二、项目基本配置三、UI界面设计四、主程序实现4.1 添加新文件4.2 digiclock.h头文件4.3 digiclock.cpp源文件4.4 main.cpp源...
    99+
    2024-04-02
  • PHP时间函数简介:实现时间计算和日期显示
    PHP时间函数简介:实现时间计算和日期显示 在PHP中,时间函数是非常重要的,可以帮助我们进行时间的计算、日期的显示以及各种时间操作。本文将介绍几个常用的PHP时间函数,并给出具体的代...
    99+
    2024-03-01
    时间计算 日期显示 php 时间函数
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作