Qt中时间函数的使用.docx
- 文档编号:24974324
- 上传时间:2023-06-03
- 格式:DOCX
- 页数:30
- 大小:28.01KB
Qt中时间函数的使用.docx
《Qt中时间函数的使用.docx》由会员分享,可在线阅读,更多相关《Qt中时间函数的使用.docx(30页珍藏版)》请在冰豆网上搜索。
Qt中时间函数的使用
QTime:
:
QTime()
默认构造函数,构造一个时,分,秒都为0的时间,如00:
00:
00.000(午夜)
QTime:
:
QTime(inth,intm,ints=0,intms=0)
构造一个用户指定时,分,秒的时间.
其参数有效值为:
h:
0--23
m:
0--59
ms:
0--999
QTimeQTime:
:
addMSecs(intms)const
返回一个当前时间对象之后或之前ms毫秒的时间对象(之前还是之后视ms的符号,如为正则之后,反之之前)
如:
QTimetime(3,0,0);
QTimenewTime1=time.addMSecs(1000);
QTimenewTime2=time.addMSecs(-1000);
则newTime1是一个比time所指定时间(03:
00:
00.000)延后1000毫秒也即1秒的时间(03:
00:
01.000),而newTime2则提前1000毫秒(02:
59:
59.000)
QTimeQTime:
:
addSecs(intnsecs)const
与addMSecs()相同,只是nsecs单位是秒.即返回一个当前时间对象之前或之后的时间对象.
intQTime:
:
elapsed()const
返回最后一次调用start()或restart()到现在已经经过的毫秒数.如果经过了24小时之后,则计数器置0.如果系统时间设置改变,则结果不确定.
intQTime:
:
hour()const
返回时间对象的小时,取值范围(0--23)
intQTime:
:
minute()const
返回时间对象的分钟,取值范围(0--59)
intQTime:
:
second()const
返回时间对象的秒,取值范围(0--59)
intQTime:
:
msec()const
返回时间对象的毫秒,取值范围(0--999)
boolQTime:
:
isNull()const
如果时间对象等于00:
00:
00.000,则返回true;反之返回false.
boolQTime:
:
isValid()const
如果时间对象是有效的,则返回true;反之返回false.(即:
时,分,秒,毫秒都在其取值范围之内)
intQTime:
:
msecsTo(constQTime&t)const
返回当前时间对象到t所指定的时间之间的毫秒数.如果t早于当前时间对象的时间,则返回的值是负值.因为一天的时间是86400000毫秒,所以返回值范围是-86400000--86400000
intQTime:
:
secsTo(constQTime&t)const
与msecsTo()基本相同,只是返回的是秒数,返回值的有效范围是-86400--86400
intQTime:
:
restart()
设置当前时间对象的值为当前系统时间,并且返回从最后一次调用start()或restart()到现在的毫秒数.如果计数器超出24小时,则置0.如果计数器计数时系统时间设置改变,则结果不确定.
boolQTime:
:
setHMS(inth,intm,ints,intms=0)
设置当前时间对象的时,分,秒和毫秒.如果给定的参数值有效,则返回true,否则返回false.
voidQTime:
:
start()
设置当前时间对象的值为当前系统时间,这个函数实际是结合restart()和elapsed()用来计数的.
QStringQTime:
:
toString(constQString&format)const
按照参数format指定的格式用字符串形式输出当前时间对象的时间.
参数format用来指定时,分,秒,毫秒的输出格式.如(hh:
mm:
ss.zzz)
h:
表示小时,范围是0--23
hh:
用两位数表示小时,不足两位的前面用0补足,如(0点:
00,3点:
03,11点:
11)
m:
表示分钟,范围0--59
mm:
用两位数表示分钟,不足两位的前面用0补足.
s:
表示秒,范围0--59
ss:
用两位数表示秒,不足两位的前面用0补足.
z:
表示毫秒,范围0--999
zzz:
用三位数表示毫秒,不足三位的前面用0补足.
AP:
用AM/PM显示.
ap:
用ap/pm显示.
例如:
QTimetime(14,3,9,42);//设置时间为14:
03:
09.042
QStringi=time.toString("hh:
mm:
ss.zzz");//结果为14:
03:
09.042
QStringj=time.toString("h:
m:
s.z");//结果为14:
3:
9.42
QStringm=time.toString("h:
m:
s.zAP");//结果为2:
3:
9.42PM
QStringn=time.toString("h:
m:
s.zap");//结果为2:
3:
9.42pm
QStringQTime:
:
toString(Qt:
:
DateFormatf=Qt:
:
TextDate)const
按照参数format指定的格式用字符串形式输出当前时间对象的时间.
参数的可选值:
Qt:
:
TextDate:
格式为HH:
MM:
SS
Qt:
:
ISODate:
遵循ISO8601的时间表示格式,同样也为HH:
MM:
SS
Qt:
:
LocalDate:
字符串格式依赖系统本地设置
----------------------------------------------------------------------------------------------------------------------------------------
静态成员函数:
QTimeQTime:
:
currentTime()
返回当前的系统时间.
QTimeQTime:
:
fromString(constQString&string,Qt:
:
DateFormatformat=Qt:
:
TextDate)
使用参数format指定的格式根据参数string指定的时间返回一个时间对象。
如果string指定的时间不合法,则返回一个无效的时间对象。
format可选值:
Qt:
:
TextDate:
格式为HH:
MM:
SS
Qt:
:
ISODate:
遵循ISO8601的时间表示格式,同样也为HH:
MM:
SS
Qt:
:
LocalDate:
字符串格式依赖系统本地设置
QTimeQTime:
:
fromString(constQString&string,constQString&format)
使用参数format指定的格式根据参数string指定的时间返回一个时间对象.如果string指定的时间不合法,则返回一个无效的时间对象.
format的格式参看QStringQTime:
:
toString(constQString&format)const.
boolQTime:
:
isValid(inth,intm,ints,intms=0)
如果参数所指定的时间是合法的,则返回true;反之返回false.
----------------------------------------------------------------------------------------------------------------------------------------
静态成员函数不依赖于对象,可以通过类直接调用,与对象无关:
如:
获取当前系统时间的小时部分时不需要定义QTime对象
inthour=QTime:
:
currentTime().hour()
QTime类参考
QTime类提供了时钟时间功能。
详情请见……
#include
所有成员函数的列表。
公有成员
∙QTime()
∙QTime(inth,intm,ints=0,intms=0)
∙boolisNull()const
∙boolisValid()const
∙inthour()const
∙intminute()const
∙intsecond()const
∙intmsec()const
∙QStringtoString(Qt:
:
DateFormatf=Qt:
:
TextDate)const
∙QStringtoString(constQString&format)const
∙boolsetHMS(inth,intm,ints,intms=0)
∙QTimeaddSecs(intnsecs)const
∙intsecsTo(constQTime&t)const
∙QTimeaddMSecs(intms)const
∙intmsecsTo(constQTime&t)const
∙booloperator==(constQTime&t)const
∙booloperator!
=(constQTime&t)const
∙booloperator<(constQTime&t)const
∙booloperator<=(constQTime&t)const
∙booloperator>(constQTime&t)const
∙booloperator>=(constQTime&t)const
∙voidstart()
∙intrestart()
∙intelapsed()const
静态公有成员
∙QTimecurrentTime()
∙QTimefromString(constQString&s,Qt:
:
DateFormatf=Qt:
:
TextDate)
∙boolisValid(inth,intm,ints,intms=0)
相关函数
∙QDataStream&operator<<(QDataStream&s,constQTime&t)
∙QDataStream&operator>>(QDataStream&s,QTime&t)
详细描述
QTime类提供了时钟时间功能。
QTime对象包含时钟时间,比如从午夜开始的时、分、秒和毫秒数。
它可以从系统时钟中读取当前的时间并且度量时间的跨度。
它提供比较时间和操作时间的函数,比如加上一定的秒或毫秒。
QTime操作的是24小时时钟格式,它没有AM/PM概念。
它操作的是本地时间,它不知道有关时区或白天时间的概念。
QTime对象通常可以由明白地给定的时、分、秒和毫秒数字来创建,或者使用静态函数currentTime()让QTime对象包含系统时钟时间。
注意精确性取决于下面操作系统的精确性,不是所有的操作系统都有毫秒级精确度的。
hour()、minute()、second()和msec()函数提供了对时、分、秒和毫秒数字的访问。
toString()提供了文本格式的相同信息。
QTime提供了一整套的操作符来比较两个QTime对象,在这里小于表示早一些,大于表示晚一些。
一个给定时间之后给定的秒或毫秒数的时间可以使用addSecs()或addMSecs()得到。
相对地,两个时间的秒(或毫秒)数可以使用secsTo()或msecsTo()得到。
QTime可以使用start()、restart()和elapsed()函数度量流逝的时间。
也可以参考QDate、QDateTime和时间和日期。
成员函数文档
QTime:
:
QTime()
构造一个时、分、秒和毫秒都是0的时间,比如,00:
00:
00.000(午夜)。
这是一个有效的时间。
也可以参考isValid()。
QTime:
:
QTime(inth,intm,ints=0,intms=0)
构造一个时、分、秒和毫秒分别为h、m、s和ms的时间。
h必须在0-23之间,m和s必须在0-59之间,ms必须在0-999之间。
也可以参考isValid()。
QTimeQTime:
:
addMSecs(intms)const
返回这个时间对象ms毫秒之后的一个时间对象(或者ms毫秒之前的,如果它是一个负数)。
注意如果这个时间过了午夜,它将被转换。
请参考addSecs()中的实例。
也可以参考addSecs()和msecsTo()。
QTimeQTime:
:
addSecs(intnsecs)const
返回这个时间对象nsecs秒之后的一个时间对象(或者nsecs秒之前的,如果它是一个负数)。
注意如果这个时间过了午夜,它将被转换。
实例:
QTimen(14,0,0);//n==14:
00:
00
QTimet;
t=n.addSecs(70);//t==14:
01:
10
t=n.addSecs(-70);//t==13:
58:
50
t=n.addSecs(10*60*60+5);//t==00:
00:
05
t=n.addSecs(-15*60*60);//t==23:
00:
00
也可以参考addMSecs()、secsTo()和QDateTime:
:
addSecs()。
QTimeQTime:
:
currentTime()[静态]
返回当前时间,来自于系统时钟。
注意精确性取决于下面操作系统的精确性,不是所有的操作系统都有毫秒级精确度的。
实例:
aclock/aclock.cpp、dclock/dclock.cpp、t12/cannon.cpp和tictac/tictac.cpp。
intQTime:
:
elapsed()const
返回从最后一次调用start()或restart()到现在已经过去的毫秒数。
注意如果在最后一次调用start()或restart()后24小时,计数器转换为0。
注意精确性取决于下面操作系统的精确性,不是所有的操作系统都有毫秒级精确度的。
警告:
如果最后一次调用start()或restart()之后,系统时钟设置发生了改变,结果将是不确定的。
也可以参考start()和restart()。
QTimeQTime:
:
fromString(constQString&s,Qt:
:
DateFormatf=Qt:
:
TextDate)[静态]
通过给定的字符串s,使用格式f,返回这个QTime,或者如果这是不可能的话返回一个无效的时间。
注意Qt:
:
LocalDate在这里不能使用。
intQTime:
:
hour()const
返回时间的小时部分(0-23)。
实例:
tictac/tictac.cpp。
boolQTime:
:
isNull()const
如果时间和00:
00:
00.000相等,返回真,否则返回假。
零时间是有效的。
也可以参考isValid()。
boolQTime:
:
isValid()const
如果时间是有效的,返回真,否则返回假。
时间23:
30:
55.746是有效的,而24:
12:
30是无效的。
也可以参考isNull()。
boolQTime:
:
isValid(inth,intm,ints,intms=0)[静态]
这是一个重载成员函数,提供了方便。
它的行为基本上和上面的函数相同。
如果时间是有效的,返回真,否则返回假。
如果h在0-23之间、m和s在0-59之间、ms在0-999之间,时间是有效的。
实例:
QTime:
:
isValid(21,10,30);//返回真
QTime:
:
isValid(22,5,62);//返回假
intQTime:
:
minute()const
返回时间的分钟部分(0-59)。
实例:
aclock/aclock.cpp和tictac/tictac.cpp。
intQTime:
:
msec()const
返回时间的毫秒部分(0-999)。
intQTime:
:
msecsTo(constQTime&t)const
返回这个时间到t的毫秒数(如果t早于这个时间,返回的为负数)。
因为QTime只能度量一天之内的时间,而且一天内只有86400000毫秒,所以结果就应该在-86400000毫秒和86400000毫秒之间。
也可以参考secsTo()。
boolQTime:
:
operator!
=(constQTime&t)const
如果这个时间不等于t,返回真,否则返回假。
boolQTime:
:
operator<(constQTime&t)const
如果这个时间早于t,返回真,否则返回假。
boolQTime:
:
operator<=(constQTime&t)const
如果这个时间不晚于t,返回真,否则返回假。
boolQTime:
:
operator==(constQTime&t)const
如果这个时间等于t,返回真,否则返回假。
boolQTime:
:
operator>(constQTime&t)const
如果这个时间晚于t,返回真,否则返回假。
boolQTime:
:
operator>=(constQTime&t)const
如果这个时间不早于t,返回真,否则返回假。
intQTime:
:
restart()
设置这个时间为当前时间并且返回从最后一次调用start()或restart()到现在过去的毫秒数。
这个函数保证是原子的并且这样对于重复度量是非常方便的。
调用start()开始第一次度量,然后调用restart()来做以后的每一次度量。
注意如果在最后一次调用start()或restart()后24小时,计数器转换为0。
警告:
如果最后一次调用start()或restart()之后,系统时钟设置发生了改变,结果将是不确定的。
也可以参考start()、elapsed()和currentTime()。
intQTime:
:
second()const
返回时间的秒部分(0-59)。
实例:
tictac/tictac.cpp。
intQTime:
:
secsTo(constQTime&t)const
返回这个时间到t的秒数(如果t早于这个时间,返回的为负数)。
因为QTime只能度量一天之内的时间,而且一天内只有86400秒,所以结果就应该在-86400秒和86400秒之间。
也可以参考addSecs()andQDateTime:
:
secsTo().
实例:
t12/cannon.cpp。
boolQTime:
:
setHMS(inth,intm,ints,intms=0)
设置时间的时、分、秒和毫秒分别为h、m、s和ms。
h必须在0-23之间,m和s必须在0-59之间,ms必须在0-999之间。
如果设置的时间有效,返回真,否则返回假。
也可以参考isValid()。
voidQTime:
:
start()
设置这个时间为当前时间。
这是实际上使用来计时的:
QTimet;
t.start();//开始计时
...//一些任务
qDebug("%d\n",t.elapsed());//打印过去的毫秒数
也可以参考restart()、elapsed()和currentTime()。
QStringQTime:
:
toString(constQString&format)const
返回一个字符串的时间。
format参数决定了结果字符串的格式。
这些是可能用到的表达式:
∙h-没有前置0的数字的小时(0-23或者如果显示AM/PM时,1-12)
∙hh-前置0的数字的小时(00-23或者如果显示AM/PM时,01-12)
∙m-没有前置0的数字的分钟(0-59)
∙mm-前置0的数字的分钟(00-59)
∙s-没有前置0的数字的秒(0-59)
∙ss-前置0的数字的秒(00-59)
∙z-没有前置0的数字的毫秒(0-999)
∙zzz-前置0的数字的毫秒(000-999)
∙AP-切换为AM/PM显示。
AP将被“AM”或“PM”替换。
∙ap-切换为am/pm显示。
ap将被“am”或“pm”替换。
所有其他输入字符都将被忽略。
格式字符串实例(假设这个QTime为14:
13:
09.042)
∙“hh:
mm:
ss.zzz”的结果将是“14:
13:
09.042”
∙“h:
m:
sap”的结果将是“2:
13:
9pm”
也可以参考QDate:
:
toString()和QTime:
:
toString()。
QStringQTime:
:
toString(Qt:
:
DateFormatf=Qt:
:
TextDate)const
这是一个重载成员函数,提供了方便。
它的行为基本上和上面的函数相同。
返回一个字符串的时间。
f参数决定了结果字符串的格式。
如果f是Qt:
:
TextDate,字符串格式是HH:
MM:
SS,比日午夜前一秒是“23:
59:
59”。
如果f是Qt:
:
ISODate,字符串格式遵循ISO8601表示时间的说明,也就是HH:
MM:
SS。
如果f是Qt:
:
LocalDate,字符串格式依赖于系统的本地设置。
相关函数
QDataStream&operator<<(QDataStream&s,constQTime&t)
写时间t到流s中。
也可以参考QDataStream操作符的格式。
QDataStream&operator>>(QDataStream&s,QTime&t)
从流s中读取一个时间到t中。
也可以参考QDataStream操作符的格式。
QTimer,QTime的一点应用
分类:
Qt2008-10-1500:
381114人阅读评论(0)收藏举报
QTime可以及时流逝的时间
QTimer是“时机”;什么时间发生什么时候,发出一个SIGNAL,执行一个SLOT
例子1
#include
#include
#include
intmain(intargc,char*argv[])
{
QApplicationapp(argc,argv);
std:
:
vector
QTimetim;
tim.start();
for(inti=0;i<10;i++)
{
Sleep(100);
list.push_back(tim.elapsed());
}
for(quint32i=0;i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Qt 时间 函数 使用