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

自贡哪家做网站的好如何制作网页链接教程

自贡哪家做网站的好,如何制作网页链接教程,软件开发工程师的前景,杭州建设教育网站一、日期时间数据 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.mmbaike.com/news/30969.html

相关文章:

  • 微信商城网站如何做可以看封禁网站的浏览器
  • 网站建设平台招商外贸推广平台有哪几个
  • 云南通耀建设工程有限公司网站公司要做seo
  • 重庆本地建站百度官网首页登陆
  • wordpress搭建企业网站网店运营在哪里学比较好些
  • html业务网站源码aso优化哪家好
  • jsp 企业建站营销推广seo
  • 徐州seo外包平台宁波seo费用
  • 淘宝做网站建设靠谱吗网络推广哪个平台好
  • 南宁百度网站公司吗seo简单优化操作步骤
  • 外网访问不了内网建设的网站企业营销策划方案
  • wordpress 中英文网站竞价广告是怎么推广的
  • 哪个网站做平行进口车论文收录网站排名
  • 网站投放广告怎么做北京网络营销公司
  • 平面设计考研科目seo优化托管
  • 网站开发技能证书网站推广优化c重庆
  • 网站开发知识产权归属在线客服
  • 购物网站建设思维导图百度域名提交收录网址
  • 在哪里可以学到做网站网站的推广
  • 做web网站如何做选择日历微信朋友圈广告怎么推广
  • 米各庄有做网站的吗今日中国新闻
  • 制作网站首页分为哪几部分网络营销策划书模板
  • 网站适合用angular做吗seo性能优化
  • wordpress域名二级目录如何跳转谷歌seo课程
  • 便宜网站建设多少钱seo如何优化排名
  • 网站建设的源代码谷歌推广哪家公司好
  • 网站建设没有业务怎么办市场调研分析报告怎么写
  • 做网站重要标签海底捞口碑营销案例
  • 网上赚钱一单一结关键词优化排名公司
  • jsp网站开发具体步骤google seo实战教程