当前位置: 首页 > news >正文

自贡哪家做网站的好广州aso优化公司 有限公司

自贡哪家做网站的好,广州aso优化公司 有限公司,工作日记,广东省建设行业统一身份认证平台一、日期时间数据 1.QTime 用于存储和操作时间数据的类,其中包括小时(h)、分钟(m)、秒(s)、毫秒(ms)。函数定义如下: //注:秒(s)和毫秒(ms)有默认值0 QTime::QTime(int h, int m, int s 0, int ms 0) 若无须初始化时间数据,可…

一、日期时间数据

1.QTime

        用于存储和操作时间数据的类,其中包括小时(h)、分钟(m)、秒(s)、毫秒(ms)。函数定义如下:

//注:秒(s)和毫秒(ms)有默认值0
QTime::QTime(int h, int m, int s = 0, int ms = 0)

        若无须初始化时间数据,可以使用静态函数 QTime::currentTime() 来创建一个QTime对象,并获取当前时间:

QTime time = QTime::currentTime();

        在通常情况下,我们直接获取当前时间即可,如需修改当前时间可直接使用setHMS方法。因此后文将不再介绍使用函数定义的方法操作时间数据。

        在默认情况下,QTime总是使用24小时制,不区分AM/PM。那么我们想要用到12小时制时该怎么处理时间数据呢?这里需要用到一个函数 toString() 来格式化时间(后文有介绍)。

QTime常用函数接口
int hour()返回当前小时数据
int minute()返回当前分钟数据
int second()返回当前秒数据
int msec()返回当前毫秒数据
bool setHMS(int h, int m, int s, int ms = 0)设置时间
int msecsSinceStartOfDay()返回从00:00:00开始的毫秒数
QTime addSecs(int s)

返回当前±s秒后的时间

int secsTo(QTime t)返回当前时间与t相差的秒数

2.QDate

        用于存储和操作日期数据的类,其中包含年、月、日数据。同样也可使用 QDate::currentDate() 来获取当前日期。

        当然说到日期,其中一个避不开的话题就是判断闰年。这里Qt直接给了一个静态函数方便判断哪一年是否为闰年:

bool QDate::isLeapYear(int year)
QDate常用函数接口

int year()   

返回当前日期的年数据
int month()返回当前日期的月数据
int day()返回当前日期的日数据
int dayOfWeek()返回星期几
bool setDate(int year, int month, int day)设置日期
bool getDate(int *year, int *month, int *day)获取日期
QDate addDays(int ndays)返回当前日期再加几天的日期
qint64 daysTo(QDate d)返回与日期d的间隔天数

3.QDateTime

        表示日期数据和时间数据的类。可通过如下方式获取日期和时间:

QDateTime dateTime = QDateTime::currentDateTime();
QDate dateTime = DT1.date();   //获取日期
QTime dateTime = DT1.time();   //获取时间
QDateTime常用函数接口
qint64 toSecsSinceEpoch()返回与1970年1月1日相差的秒数
void setSecsSinceEpoch(qint64 secs)设置与1970年1月1日相差的秒数为当前的日期数据
QdateTime toUTC()将当前时间转换为UTC数据

注:UTC(协调世界时,Coordinated Universal Time)是世界上时间的标准,它不受时区影响,并且基于原子钟的精确计时。UTC时间是一种时间标准,用于全球的时钟和时间信号。

4.格式化日期时间数据

        QTime、QDate、QDateTime都有格式化数据方法 toString() 和 fromString()。

a.toString()

        将当前的日期时间数据转换为字符串。函数原型定义如下:

QString QDateTime::toString(const QString &format)

        format为转化后的格式,Qt提供了一些预定义的格式可以直接使用。常用的为:Qt::TextDate、Qt::ISODate、Qt::SystemLocaleShortDate(Qt6已被移除)等。当然也可以使用一些自定义格式,例如:

  • yyyy:四位数的年份
  • MM:两位数的月份(01-12)
  • dd:两位数的日期(01-31)
  • hh:两位数的小时(00-23)
  • mm:两位数的分钟(00-59)
  • ss:两位数的秒(00-59)
  • zzz:三位数的毫秒(000-999)
  • AP或A:使用AM/PM表示,即从24小时制转化为12小时制

        注:在上面的格式中,如果只写一位,如‘d’,则表示不补零显示(1-31)而非(01-31)。 举例:

QDateTime dateTime = QDateTime::currentDateTime();
qDebug() << "TextDate format:" << dateTime.toString(Qt::TextDate);
qDebug() << "ISODate format:" << dateTime.toString(Qt::ISODate);
qDebug() << "Custom format:" << dateTime.toString("yyyy-MM-dd hh:mm:ss.zzz AP");

        其输出结果为:

b.fromString()

        将字符串转化为相应类的对象。其函数原型如下:

QDateTime QDateTime::fromString(const QString &string, const QString &format)

        举个例子:

QString dateTimeString = "2024-07-02 14:30:45.123";
QDateTime dateTime1 = QDateTime::fromString(dateTimeString, Qt::ISODate);
QDateTime dateTime2 = QDateTime::fromString(dateTimeString, "yyyy-MM-dd hh:mm:ss.zzz");
qDebug() << "DateTime1:" << dateTime1.toString();
qDebug() << "DateTime2:" << dateTime2.toString();

        输出结果为:

5.界面组件

        具体在创建界面时,可拖动如图所示组件实现:

 二、定时器

1.QTimer

        QTimer的父类为QObject,支持Qt的元对象系统。因此虽然它不是一个界面组件类,但是它也有属性、信号(timeout())和槽(start()、stop()、自定义等)。其主要属性如下:

属性类型功能
intervalint定时周期,单位ms
singleShotbooltrue表示单次定时
timerTypeQt::TimerType精度类型。分为精确、粗糙、非常粗糙
activeboolture表示定时器正在运行
a.timeout()信号

        当定时器通过 start() 启动后,每当定时溢出一次(定时周期到了),QTimer就会发射一个 timeout() 信号。如果是连续定时,QTimer就会发射多次 timeout() 信号。举个例子:

Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget)
{ui->setupUi(this);QTimer *m_timer = new QTimer(this);      //创建定时器,需要动态分配内存m_timer->stop();            //先停止定时器m_timer->setTimerType(Qt::CoarseTimer);     //设置定时器精度等级:粗糙,误差不超过整个周期的5%m_timer->setInterval(3000); //设置定时器的周期为3sm_timer->setSingleShot(true);   //设置单次定时connect(m_timer,SIGNAL(timeout()),this,SLOT(do_timer_timeout()));   //关联定时器的信号与槽
}//与定时器的timeout()信号关联的槽函数
void Widget::do_timer_timeout()
{QApplication::beep();   //定时溢出时,系统的蜂鸣器发声
}//“开始”按钮来启动定时器
void Widget::on_btnStart_clicked()
{m_timer->start();     //启动定时器,m_timer为QTimer类
}

        那么当点击开始按钮后,在3s后就会听到系统的蜂鸣声。

b.静态函数singleShot()

        这个函数用来创建和启动单次定时器,并且将定时器的timeout()信号与指定槽函数关联。也就是说,如果只是定时一次,那么就无须繁琐的设置,也无须启动,随调随用。函数定义如下:

void QTimer::singleShot(int msec, Qt::TimerType timerType, const QObject *reveiver, const char *member)

那么上面的例子就可以这样改写:

Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget)
{ui->setupUi(this);
}//与定时器的timeout()信号关联的槽函数
void Widget::do_timer_timeout()
{QApplication::beep();   //定时溢出时,系统的蜂鸣器发声
}//动态创建单次定时器
void Widget::on_btnOneShot_clicked()
{QTimer::singleShot(3000,Qt::CoarseTimer,this,&Widget::do_timer_timeout);
}

2.QElapsedTimer

        这个类用于快速计算两个事件的间隔时间。与QTimer不同的是,它没有父类,不支持Qt的元对象系统,所以只有一些简单的接口函数。使用起来也比较简单,举个例子即可快速了解:

Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget)
{QElapsedTimer m_counter;   // 创建计时器m_counter.start();    //启动计时器,注意这里没有stop()方法
}//停止计时
void Widget::on_btnStop_clicked()
{int tmMsec=m_counter.elapsed();  //毫秒数int ms= tmMsec % 1000;  //余数毫秒int sec=tmMsec/1000;    //整秒QString str=QString("流逝的时间:%1秒,%2毫秒").arg(sec).arg(ms,3,10,QChar('0'));qDebug() << "Elapsed time:" << str;
}

        点击停止按钮后可看到输出框的结果为:


        以上就是关于Qt中关于时间日期数据的一些总结。虽查阅大量资料,可能仍有部分错误,望读者不吝赐教。

http://www.hrbkazy.com/news/34098.html

相关文章:

  • 国内产品推广网站seo软件代理
  • wordpress单页 文章页seo推广费用需要多少
  • 成品网站源码多少钱百度搜索指数和资讯指数
  • 网站前端培训网上推广
  • 优秀网站设计推荐网站建设的一般步骤
  • 网站建设流程及细节免费网站申请域名
  • 网站实现中英文建站之星官方网站
  • 湖北省建设局网站首页站长工具端口查询
  • 家居网站建设 百度文库网络营销网站平台有哪些
  • 做网站的是什么工作网站友情链接出售
  • 电脑网页制作培训小时seo
  • 宁德网站建设维护站长工具app下载
  • 娄底网站建设公司鹤壁seo推广
  • 做网站的投入首页关键词优化公司
  • 怎么建设一个公司网站seo网络推广什么意思
  • 企业网站设计中应注意产品发布功能优化企业网站优化方案
  • 地图如果插入网站百度做广告费用
  • 网站建设找哪家南京seo域名
  • 做网站 指导网盘搜索
  • 做网站要不要35类商标数字营销案例
  • 宸建设计网站百度一下网页版搜索引擎
  • 怎么做美瞳网站手机app免费下载
  • magento网站搬家网络营销这个专业怎么样
  • 大型集团网站建设aso优化师工作很赚钱吗
  • 怎么做网站代购跨境电商哪个平台比较好
  • 灯网一家专门做灯的网站有哪些平台可以做推广
  • 百度logo在线设计生成器seo排名培训学校
  • 温州网站建设方案外包seo优化网站教程
  • 郴州网站建设公司江阴网站制作公司
  • 动态网站的制作seo优化与sem推广有什么关系