Source Code (Use browser search to find items of interest.)
Class Index
qt'QDateTime (./qt-2.1.0/src/tools/qdatetime.h:144)
class Q_EXPORT QDateTime
{
public:
QDateTime() {} // set null date and null time
QDateTime( const QDate & );
QDateTime( const QDate &, const QTime & );
bool isNull() const { return d.isNull() && t.isNull(); }
bool isValid() const { return d.isValid() && t.isValid(); }
QDate date() const { return d; }
QTime time() const { return t; }
void setDate( const QDate &date ) { d=date; }
void setTime( const QTime &time ) { t=time; }
void setTime_t( uint secsSince1Jan1970UTC );
QString toString() const;
QDateTime addDays( int days ) const;
QDateTime addSecs( int secs ) const;
int daysTo( const QDateTime & ) const;
int secsTo( const QDateTime & ) const;
bool operator==( const QDateTime &dt ) const;
bool operator!=( const QDateTime &dt ) const;
bool operator<( const QDateTime &dt ) const;
bool operator<=( const QDateTime &dt ) const;
bool operator>( const QDateTime &dt ) const;
bool operator>=( const QDateTime &dt ) const;
static QDateTime currentDateTime();
private:
QDate d;
QTime t;
friend Q_EXPORT QDataStream &operator<<( QDataStream &, const QDateTime &);
friend Q_EXPORT QDataStream &operator>>( QDataStream &, QDateTime & );
};
/*****************************************************************************
Date and time stream functions
*****************************************************************************/
qt'QDateTime::QDateTime() (./qt-2.1.0/src/tools/qdatetime.cpp:1055)
QDateTime::QDateTime( const QDate &date )
: d(date)
{
}
/*!
Constructs a datetime with date \a date and time \a time.
*/
qt'QDateTime::QDateTime() (./qt-2.1.0/src/tools/qdatetime.cpp:1064)
QDateTime::QDateTime( const QDate &date, const QTime &time )
: d(date), t(time)
{
}
/*!
\fn bool QDateTime::isNull() const
Returns TRUE if both the date and the time are null. A null date is invalid.
\sa QDate::isNull(), QTime::isNull()
*/
/*!
\fn bool QDateTime::isValid() const
Returns TRUE if both the date and the time are valid.
\sa QDate::isValid(), QTime::isValid()
*/
/*!
\fn QDate QDateTime::date() const
Returns the date part of this datetime.
\sa setDate(), time()
*/
/*!
\fn QTime QDateTime::time() const
Returns the time part of this datetime.
\sa setTime(), date()
*/
/*!
\fn void QDateTime::setDate( const QDate &date )
Sets the date part of this datetime.
\sa date(), setTime()
*/
/*!
\fn void QDateTime::setTime( const QTime &time )
Sets the time part of this datetime.
\sa time(), setDate()
*/
/*!
Sets the local date and time given the number of seconds that have passed
since 00:00:00 on January 1, 1970, Coordinated Universal Time (UTC).
On systems that do not support timezones this function will behave as if
local time were UTC.
Note that Microsoft Windows supports only a limited range of values for
\a secsSince1Jan1970UTC.
*/
qt'QDateTime::setTime_t() (./qt-2.1.0/src/tools/qdatetime.cpp:1129)
void QDateTime::setTime_t( uint secsSince1Jan1970UTC )
{
time_t tmp = (time_t) secsSince1Jan1970UTC;
tm *tM = localtime( &tmp );
if ( !tM ) {
tM = gmtime( &tmp );
if ( !tM ) {
d.jd = QDate::greg2jul( 1970, 1, 1 );
t.ds = 0;
return;
}
}
d.jd = QDate::greg2jul( tM->tm_year + 1900, tM->tm_mon + 1, tM->tm_mday );
t.ds = MSECS_PER_HOUR*tM->tm_hour + MSECS_PER_MIN*tM->tm_min +
1000*tM->tm_sec;
}
/*!
Returns the datetime as a string.
The string format is "Sat May 20 03:40:13 1998".
This function uses QDate::dayName(), QDate::monthName(), and
QTime::toString() to generate the string.
*/
qt'QDateTime::toString() (./qt-2.1.0/src/tools/qdatetime.cpp:1157)
QString QDateTime::toString() const
{
QString buf = d.dayName(d.dayOfWeek());
buf += ' ';
buf += d.monthName(d.month());
buf += ' ';
buf += QString().setNum(d.day());
buf += ' ';
buf += t.toString();
buf += ' ';
buf += QString().setNum(d.year());
return buf;
}
/*!
Returns a QDateTime object containing a datetime \a ndays days later
than the datetime of this object (or earlier if \a ndays is
negative).
\sa daysTo(), addSecs()
*/
qt'QDateTime::addDays() (./qt-2.1.0/src/tools/qdatetime.cpp:1179)
QDateTime QDateTime::addDays( int ndays ) const
{
return QDateTime( d.addDays(ndays), t );
}
/*!
Returns a QDateTime object containing a datetime \a nsecs seconds
later than the datetime of this object (or earlier if \a nsecs is
negative).
\sa secsTo(), addDays()
*/
qt'QDateTime::addSecs() (./qt-2.1.0/src/tools/qdatetime.cpp:1192)
QDateTime QDateTime::addSecs( int nsecs ) const
{
uint dd = d.jd;
int tt = t.ds;
int sign = 1;
if ( nsecs < 0 ) {
nsecs = -nsecs;
sign = -1;
}
if ( nsecs >= (int)SECS_PER_DAY ) {
dd += sign*(nsecs/SECS_PER_DAY);
nsecs %= SECS_PER_DAY;
}
tt += sign*nsecs*1000;
if ( tt < 0 ) {
tt = MSECS_PER_DAY - tt - 1;
dd -= tt / MSECS_PER_DAY;
tt = tt % MSECS_PER_DAY;
tt = MSECS_PER_DAY - tt - 1;
} else if ( tt >= (int)MSECS_PER_DAY ) {
dd += ( tt / MSECS_PER_DAY );
tt = tt % MSECS_PER_DAY;
}
QDateTime ret;
ret.t.ds = tt;
ret.d.jd = dd;
return ret;
}
/*!
Returns the number of days from this datetime to \a dt (which is
negative if \a dt is earlier than this datetime).
\sa addDays(), secsTo()
*/
qt'QDateTime::daysTo() (./qt-2.1.0/src/tools/qdatetime.cpp:1228)
int QDateTime::daysTo( const QDateTime &dt ) const
{
return d.daysTo( dt.d );
}
/*!
Returns the number of seconds from this datetime to \a dt (which is
negative if \a dt is earlier than this datetime).
Example:
\code
QDateTime dt = QDateTime::currentDateTime();
QDateTime x( QDate(dt.year(),12,24), QTime(17,00) );
qDebug( "There are %d seconds to Christmas", dt.secsTo(x) );
\endcode
\sa addSecs(), daysTo(), QTime::secsTo()
*/
qt'QDateTime::secsTo() (./qt-2.1.0/src/tools/qdatetime.cpp:1247)
int QDateTime::secsTo( const QDateTime &dt ) const
{
return t.secsTo(dt.t) + d.daysTo(dt.d)*SECS_PER_DAY;
}
/*!
Returns TRUE if this datetime is equal to \a dt, or FALSE if
they are different.
\sa operator!=()
*/
qt'QDateTime::currentDateTime() (./qt-2.1.0/src/tools/qdatetime.cpp:1327)
QDateTime QDateTime::currentDateTime()
{
QDate cd = QDate::currentDate();
QTime ct;
if ( QTime::currentTime(&ct) ) // too close to midnight?
cd = QDate::currentDate(); // YES! time for some midnight
// voodoo, fetch date again
return QDateTime( cd, ct );
}
/*****************************************************************************
Date/time stream functions
*****************************************************************************/
/*!
\relates QDate
Writes the date to the stream.
Serialization format: [Q_UINT32], Julian day.
*/