简述:
QTime对象包含一个时钟时间,小时数、分钟、秒、和毫秒,使用的是24小时时钟格式;没有am 和pm的概念(而QDateTime有),也无时区或者日光节约时间(夏令时间)(DST)。QTime能获取当前的时间,可测量出消逝的一段时间。
1、常用函数
//公共函数 QTime() QTime(int h,int m,int s=0,int ms=0) QTime addMSecs(int ms)const QTime addSecs ( int s ) const int elapsed () const int hour () const bool isNull () const bool isValid () const int minute () const int msec () const int msecsTo ( const QTime & t ) const int restart () int second () const int secsTo ( const QTime & t ) const bool setHMS ( int h, int m, int s, int ms = 0 ) void start () QString toString ( const QString & format ) const QString toString ( Qt::DateFormat format = Qt::TextDate ) const bool operator!= ( const QTime & t ) const bool operator< ( const QTime & t ) const bool operator<= ( const QTime & t ) const bool operator== ( const QTime & t ) const bool operator> ( const QTime & t ) const bool operator>= ( const QTime & t ) const //静态公共函数 QTime currentTime () QTime fromString ( const QString & string, Qt::DateFormat format = Qt::TextDate ) QTime fromString ( const QString & string, const QString & format ) bool isValid ( int h, int m, int s, int ms = 0 ) //相关的非成员 QDataStream & operator<< ( QDataStream & out, const QTime & time ) QDataStream & operator>> ( QDataStream & in, QTime & time )
2、部分函数分析
QTime::QTime ():构建一个空的时间。一个空时间可以是 QTime(0,0,0,0) ,此时 isNull() 返回true,isValid() 返回false
QTime::QTime ( int h, int m,int s = 0, int ms = 0 )
注意:h 在 [0,23] , m 和 s 在 [0,59] , ms 在 [0,999];
QTime QTime::currentTime() [static] //返回当前时间 QTime::isValid(21, 10, 30); // returns true QTime::isValid(22, 5, 62); // returns false bool QTime::setHMS ( int h, int m, int s, int ms = 0 )//设置小时,分钟,秒,毫秒 QTime time = QTime::fromString("00:710", "hh:ms"); //invalid QTime time = QTime::fromString("1.30", "m.s");// time is00:01:30.000
addSecs(int s) / addMSecs(int ms) 函数, 返回一个 QTime 对象,即返回一个比这个时间晚 s 秒 / ms 毫秒的时间。
secsTo(constQTime &t) / msecsTo(const QTime &t) 返回这个时间与时间 t 的秒 / 毫秒数。
注意:QTime返回一天之内的时间差,所以 secsTo 范围 -86400 到 86400 ,msecsTo 范围 -86400000 到 86400000 。
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
void QTime::start () //设置时间为目前的时间。 int QTime::restart () //设置这个时间为当前时间。 int QTime::elapsed () const //返回已经消逝的ms数,自从上一个时间start()或者restart()被调用。
注意:计数器变成0,当24小时过去了。
警告:如果系统时钟设置已经被改变,自从start()或者restart()被调用,那么结果不可预知。例如当夏令时间开或者关。QTime 可使用函数 start() , restart() , elapsed() 函数来测量一段消逝的时间。