《Qt5+QDate和QTime获取当前系统日期和时间》

QDate对象包含日历日期,即年,月,日的数字。它可以从系统时钟读取当前日期,提供了比较日期和操作日期的功能。例如,可以在日期中添加和减去天,月和年。QTime对象包含一个时钟时间,即自午夜的小时,分钟,秒和毫秒数。它可以从系统时钟读取当前时间并测量经过时间的跨度,它提供了通过添加毫秒数来比较时间和操作时间的功能。

 

QDate简单示例


#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "QDate"
#include "QDebug"
#include "QString"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    QDate D1;
    QDate D2(1995,1,26);
    qDebug() << "D2:" <<D2;
    D1=QDate::currentDate();
    qDebug() << "D1:" << D1;//获取当前日期
    qDebug() << "year:" << D1.year();//获取年
    qDebug() << "month:" << D1.month();//获取月
    qDebug() << "day:" << D1.day();//获取日
    qDebug() << "isValid:" << D1.isValid();//日期是否合法
    qDebug() << "dayOfWeek:" << D1.dayOfWeek();//今天是周几
    qDebug() << "dayOfYear:" << D1.dayOfYear();//当前是这一年的第多少天
    qDebug() << "daysInMonth:" << D1.daysInMonth();//这个月有多少天
    qDebug() << "daysInYear:" << D1.daysInYear();//这一年有多少天
    qDebug() << "isNull:" << D1.isNull();//日期是否为空,为空返回true
    qDebug() << "daysTo:" << D1.daysTo(D2);//比较两个日期相差多少天,D2比D1早为负数
    qDebug() << "isLeapYear:" << QDate::isLeapYear(D1.year());//是否闰年
}

MainWindow::~MainWindow()
{
    delete ui;
}

输出结果

D2: QDate("1995-01-26")
D1: QDate("2018-11-21")
year: 2018
month: 11
day: 21
isValid: true
dayOfWeek: 3
dayOfYear: 325
daysInMonth: 30
daysInYear: 365
isNull: false
daysTo: -8700
isLeapYear: false

 

QTime简单示例


#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "QTime"
#include "QDebug"
#include "QString"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    QTime T1;
    QTime T2(12,9,26);
    QTime T3;
    qDebug() << "T2:" <<T2;
    T1=QTime::currentTime();
    qDebug() << "T1:" << T1;//获取当前日期
    qDebug() << "hour:" << T1.hour();//获取时
    qDebug() << "minute:" << T1.minute();//获取分
    qDebug() << "second:" << T1.second();//获取秒
    qDebug() << "msec:" << T1.msec();//获取毫秒

    qDebug() << "isValid:" << T1.isValid();//时间是否合法
    qDebug() << "secsTo:" << T1.secsTo(T2);//比较两个时间相差多少秒,T2比T1早为负数
    qDebug() << "msecsTo:" << T1.msecsTo(T2);//比较两个时间相差多少毫秒,T2比T1早为负数
    qDebug() << "msecsSinceStartOfDay:" << T1.msecsSinceStartOfDay();//返回自当天的毫秒数
    qDebug() << "isNull:" << T1.isNull();//日期是否为空,为空返回true
    T3.start();
    qDebug() << "T3:" << T3;//获取T3
    for(int i=0;i<1000000;i++)
    {
        ;
    }
    T3.elapsed();
    qDebug() << "T3:" << T3;//获取T3
}

MainWindow::~MainWindow()
{
    delete ui;
}

输出结果

T2: QTime("12:09:26.000")
T1: QTime("11:57:10.193")
hour: 11
minute: 57
second: 10
msec: 193
isValid: true
secsTo: 736
msecsTo: 735807
msecsSinceStartOfDay: 43030193
isNull: false
T3: QTime("11:57:10.194")
T3: QTime("11:57:10.194")

 

完整代码


QDate简单示例链接:https://pan.baidu.com/s/1zOM-PDjDhsKboKCxSlp50A 
提取码:xo0j 

QTime简单示例链接:https://pan.baidu.com/s/1HIyJTbIbrpO6CLlq9CalCA 
提取码:7bm5 

 

数字时钟标签组件制作分为两个部分:一是获取当前日期时间,二是将其显示在标签组件上。下面是使用`QTimer`定时器制作数字时钟标签组件的示例代码: ```python import sys from PyQt5.QtWidgets import QApplication, QLabel from PyQt5.QtCore import QTimer, QTime class DigitalClock(QLabel): def __init__(self): super().__init__() # 设置标签样式 self.setStyleSheet("font-size: 30px; color: black;") # 创建定时器 self.timer = QTimer(self) self.timer.timeout.connect(self.showTime) self.timer.start(1000) def showTime(self): # 获取当前日期时间 time = QTime.currentTime() date = QDate.currentDate() # 将日期时间格式化为字符串 timeStr = time.toString('hh:mm:ss') dateStr = date.toString('yyyy-MM-dd') # 显示日期时间 self.setText(dateStr + ' ' + timeStr) if __name__ == '__main__': app = QApplication(sys.argv) clock = DigitalClock() clock.show() sys.exit(app.exec_()) ``` 在上述代码中,我们首先创建了一个`QLabel`子类`DigitalClock`,然后在其`__init__`方法中设置了标签的样式,并创建了一个定时器。定时器的`timeout`信号与`showTime`槽函数连接,因此每秒钟定时器会发出`timeout`信号,然后调用`showTime`槽函数更新标签的内容。 `showTime`槽函数通过`QTime.currentTime()``QDate.currentDate()`方法获取当前时间日期。然后将它们分别格式化为字符串,并将日期时间用空格连接起来,最后将其设置为标签的文本内容。 最后,在`main`函数中创建了一个`DigitalClock`对象,并将其显示出来。程序运行后,可以看到一个数字时钟标签组件,每秒钟更新一次显示的时间
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值