QTime类参考
QTime类提供了时钟时间功能。
详情请见……
#include <qdatetime.h>
所有成员函数的列表。
公有成员
QTime ( int h, int m, int s = 0, int ms = 0 )
QString
toString ( Qt::DateFormat f = Qt::TextDate ) const
QString
toString ( const QString & format ) const
bool
setHMS ( int h, int m, int s, int ms = 0 )
int
secsTo ( const QTime & t ) const
int
msecsTo ( const QTime & t ) const
静态公有成员
QTime
fromString ( const QString & s, Qt::DateFormat f = Qt::TextDate )
bool
isValid ( int h, int m, int s, int ms = 0 )
相关函数
QDataStream &
operator<< ( QDataStream & s, const QTime & 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 ( int h, int m, int s = 0, int ms = 0 )
构造一个时、分、秒和毫秒分别为h、m、s和ms的时间。
h必须在0-23之间,m和s必须在0-59之间,ms必须在0-999之间。
也可以参考isValid()。
QTime QTime::addMSecs ( int ms ) const
返回这个时间对象ms毫秒之后的一个时间对象(或者ms毫秒之前的,如果它是一个负数)。
注意如果这个时间过了午夜,它将被转换。请参考addSecs()中的实例。
也可以参考addSecs()和msecsTo()。
QTime QTime::addSecs ( int nsecs ) const
返回这个时间对象nsecs秒之后的一个时间对象(或者nsecs秒之前的,如果它是一个负数)。
注意如果这个时间过了午夜,它将被转换。
实例:
QTime n( 14, 0, 0 ); // n == 14:00:00
QTime t;
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()。
QTime QTime::currentTime () [静态]
返回当前时间,来自于系统时钟。
注意精确性取决于下面操作系统的精确性,不是所有的操作系统都有毫秒级精确度的。
实例:aclock/aclock.cpp、dclock/dclock.cpp、t12/cannon.cpp和tictac/tictac.cpp。
int QTime::elapsed () const
返回从最后一次调用start()或restart()到现在已经过去的毫秒数。
注意如果在最后一次调用start()或restart()后24小时,计数器转换为0。
注意精确性取决于下面操作系统的精确性,不是所有的操作系统都有毫秒级精确度的。
警告: 如果最后一次调用start()或restart()之后,系统时钟设置发生了改变,结果将是不确定的。
也可以参考start()和restart()。
QTime QTime::fromString ( const QString & s, Qt::DateFormat f = Qt::TextDate ) [静态]
通过给定的字符串s,使用格式f,返回这个QTime,或者如果这是不可能的话返回一个无效的时间。
注意Qt::LocalDate在这里不能使用。
int QTime::hour () const
返回时间的小时部分(0-23)。
实例:tictac/tictac.cpp。
bool QTime::isNull () const
如果时间和00:00:00.000相等,返回真,否则返回假。零时间是有效的。
也可以参考isValid()。
bool QTime::isValid () const
如果时间是有效的,返回真,否则返回假。时间23:30:55.746是有效的,而24:12:30是无效的。
也可以参考isNull()。
bool QTime::isValid ( int h, int m, int s, int ms = 0 ) [静态]
这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。
如果时间是有效的,返回真,否则返回假。
如果h在0-23之间、m和s在0-59之间、ms在0-999之间,时间是有效的。
实例:
QTime::isValid(21, 10, 30); // 返回真
QTime::isValid(22, 5, 62); // 返回假
int QTime::minute () const
返回时间的分钟部分(0-59)。
实例:aclock/aclock.cpp和tictac/tictac.cpp。
int QTime::msec () const
返回时间的毫秒部分(0-999)。
int QTime::msecsTo ( const QTime & t ) const
返回这个时间到t的毫秒数(如果t早于这个时间,返回的为负数)。
因为QTime只能度量一天之内的时间,而且一天内只有86400000毫秒,所以结果就应该在-86400000毫秒和86400000毫秒之间。
也可以参考secsTo()。
bool QTime::operator!= ( const QTime & t ) const
如果这个时间不等于t,返回真,否则返回假。
bool QTime::operator< ( const QTime & t ) const
如果这个时间早于t,返回真,否则返回假。
bool QTime::operator<= ( const QTime & t ) const
如果这个时间不晚于t,返回真,否则返回假。
bool QTime::operator== ( const QTime & t ) const
如果这个时间等于t,返回真,否则返回假。
bool QTime::operator> ( const QTime & t ) const
如果这个时间晚于t,返回真,否则返回假。
bool QTime::operator>= ( const QTime & t ) const
如果这个时间不早于t,返回真,否则返回假。
int QTime::restart ()
设置这个时间为当前时间并且返回从最后一次调用start()或restart()到现在过去的毫秒数。
这个函数保证是原子的并且这样对于重复度量是非常方便的。调用start()开始第一次度量,然后调用restart()来做以后的每一次度量。
注意如果在最后一次调用start()或restart()后24小时,计数器转换为0。
警告: 如果最后一次调用start()或restart()之后,系统时钟设置发生了改变,结果将是不确定的。
也可以参考start()、elapsed()和currentTime()。
int QTime::second () const
返回时间的秒部分(0-59)。
实例:tictac/tictac.cpp。
int QTime::secsTo ( const QTime & t ) const
返回这个时间到t的秒数(如果t早于这个时间,返回的为负数)。
因为QTime只能度量一天之内的时间,而且一天内只有86400秒,所以结果就应该在-86400秒和86400秒之间。
也可以参考addSecs() and QDateTime::secsTo().
实例:t12/cannon.cpp。
bool QTime::setHMS ( int h, int m, int s, int ms = 0 )
设置时间的时、分、秒和毫秒分别为h、m、s和ms。
h必须在0-23之间,m和s必须在0-59之间,ms必须在0-999之间。如果设置的时间有效,返回真,否则返回假。
也可以参考isValid()。
void QTime::start ()
设置这个时间为当前时间。这是实际上使用来计时的:
QTime t;
t.start(); // 开始计时
... // 一些任务
qDebug( "%d\n", t.elapsed() ); // 打印过去的毫秒数
也可以参考restart()、elapsed()和currentTime()。
QString QTime::toString ( const QString & 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:s ap”的结果将是“2:13:9 pm”
也可以参考QDate::toString()和QTime::toString()。
QString QTime::toString ( Qt::DateFormat f = Qt::TextDate ) const
这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。
返回一个字符串的时间。f参数决定了结果字符串的格式。
如果f是Qt::TextDate,字符串格式是HH:MM:SS,比日午夜前一秒是“23:59:59”。
如果f是Qt::ISODate,字符串格式遵循ISO 8601表示时间的说明,也就是HH:MM:SS。
如果f是Qt::LocalDate,字符串格式依赖于系统的本地设置。
相关函数
写时间t到流s中。
也可以参考QDataStream操作符的格式。
从流s中读取一个时间到t中。
也可以参考QDataStream操作符的格式。
这个文件是Qt工具包一部分。
版权所有 © 1995-2002
Trolltech。保留所有权利。