421 lines
9.7 KiB
Groff
421 lines
9.7 KiB
Groff
.TH "QwtDate" 3 "Sun Jul 18 2021" "Version 6.2.0" "Qwt User's Guide" \" -*- nroff -*-
|
|
.ad l
|
|
.nh
|
|
.SH NAME
|
|
QwtDate \- A collection of methods around date/time values\&.
|
|
|
|
.SH SYNOPSIS
|
|
.br
|
|
.PP
|
|
.PP
|
|
\fC#include <qwt_date\&.h>\fP
|
|
.SS "Public Types"
|
|
|
|
.in +1c
|
|
.ti -1c
|
|
.RI "enum \fBWeek0Type\fP { \fBFirstThursday\fP, \fBFirstDay\fP }"
|
|
.br
|
|
.ti -1c
|
|
.RI "enum \fBIntervalType\fP { \fBMillisecond\fP, \fBSecond\fP, \fBMinute\fP, \fBHour\fP, \fBDay\fP, \fBWeek\fP, \fBMonth\fP, \fBYear\fP }"
|
|
.br
|
|
.ti -1c
|
|
.RI "enum { \fBJulianDayForEpoch\fP = 2440588 }"
|
|
.br
|
|
.in -1c
|
|
.SS "Static Public Member Functions"
|
|
|
|
.in +1c
|
|
.ti -1c
|
|
.RI "static QDate \fBminDate\fP ()"
|
|
.br
|
|
.ti -1c
|
|
.RI "static QDate \fBmaxDate\fP ()"
|
|
.br
|
|
.ti -1c
|
|
.RI "static QDateTime \fBtoDateTime\fP (double value, Qt::TimeSpec=Qt::UTC)"
|
|
.br
|
|
.ti -1c
|
|
.RI "static double \fBtoDouble\fP (const QDateTime &)"
|
|
.br
|
|
.ti -1c
|
|
.RI "static QDateTime \fBceil\fP (const QDateTime &, \fBIntervalType\fP)"
|
|
.br
|
|
.ti -1c
|
|
.RI "static QDateTime \fBfloor\fP (const QDateTime &, \fBIntervalType\fP)"
|
|
.br
|
|
.ti -1c
|
|
.RI "static QDate \fBdateOfWeek0\fP (int year, \fBWeek0Type\fP)"
|
|
.br
|
|
.RI "Date of the first day of the first week for a year\&. "
|
|
.ti -1c
|
|
.RI "static int \fBweekNumber\fP (const QDate &, \fBWeek0Type\fP)"
|
|
.br
|
|
.ti -1c
|
|
.RI "static int \fButcOffset\fP (const QDateTime &)"
|
|
.br
|
|
.ti -1c
|
|
.RI "static QString \fBtoString\fP (const QDateTime &, const QString &format, \fBWeek0Type\fP)"
|
|
.br
|
|
.in -1c
|
|
.SH "Detailed Description"
|
|
.PP
|
|
A collection of methods around date/time values\&.
|
|
|
|
Qt offers convenient classes for dealing with date/time values, but Qwt uses coordinate systems that are based on doubles\&. \fBQwtDate\fP offers methods to translate from QDateTime to double and v\&.v\&.
|
|
.PP
|
|
A double is interpreted as the number of milliseconds since 1970-01-01T00:00:00 Universal Coordinated Time - also known as 'The Epoch'\&.
|
|
.PP
|
|
While the range of the Julian day in Qt4 is limited to [0, MAX_INT], Qt5 stores it as qint64 offering a huge range of valid dates\&. As the significance of a double is below this ( assuming a fraction of 52 bits ) the translation is not bijective with rounding errors for dates very far from Epoch\&. For a resolution of 1 ms those start to happen for dates above the year 144683\&.
|
|
.PP
|
|
An axis for a date/time interval is expected to be aligned and divided in time/date units like seconds, minutes, \&.\&.\&. \fBQwtDate\fP offers several algorithms that are needed to calculate these axes\&.
|
|
.PP
|
|
\fBSee also\fP
|
|
.RS 4
|
|
\fBQwtDateScaleEngine\fP, \fBQwtDateScaleDraw\fP, QDate, QTime
|
|
.RE
|
|
.PP
|
|
|
|
.PP
|
|
Definition at line 42 of file qwt_date\&.h\&.
|
|
.SH "Member Enumeration Documentation"
|
|
.PP
|
|
.SS "anonymous enum"
|
|
|
|
.PP
|
|
\fBEnumerator\fP
|
|
.in +1c
|
|
.TP
|
|
\fB\fIJulianDayForEpoch \fP\fP
|
|
The Julian day of 'The Epoch'\&.
|
|
.PP
|
|
Definition at line 102 of file qwt_date\&.h\&.
|
|
.SS "enum \fBQwtDate::IntervalType\fP"
|
|
Classification of an time interval
|
|
.PP
|
|
Time intervals needs to be classified to decide how to align and divide it\&.
|
|
.PP
|
|
\fBEnumerator\fP
|
|
.in +1c
|
|
.TP
|
|
\fB\fIMillisecond \fP\fP
|
|
The interval is related to milliseconds\&.
|
|
.TP
|
|
\fB\fISecond \fP\fP
|
|
The interval is related to seconds\&.
|
|
.TP
|
|
\fB\fIMinute \fP\fP
|
|
The interval is related to minutes\&.
|
|
.TP
|
|
\fB\fIHour \fP\fP
|
|
The interval is related to hours\&.
|
|
.TP
|
|
\fB\fIDay \fP\fP
|
|
The interval is related to days\&.
|
|
.TP
|
|
\fB\fIWeek \fP\fP
|
|
The interval is related to weeks\&.
|
|
.TP
|
|
\fB\fIMonth \fP\fP
|
|
The interval is related to months\&.
|
|
.TP
|
|
\fB\fIYear \fP\fP
|
|
The interval is related to years\&.
|
|
.PP
|
|
Definition at line 75 of file qwt_date\&.h\&.
|
|
.SS "enum \fBQwtDate::Week0Type\fP"
|
|
How to identify the first week of year differs between countries\&.
|
|
.PP
|
|
\fBEnumerator\fP
|
|
.in +1c
|
|
.TP
|
|
\fB\fIFirstThursday \fP\fP
|
|
According to ISO 8601 the first week of a year is defined as 'the week with the year's first Thursday in it'\&.
|
|
.PP
|
|
FirstThursday corresponds to the numbering that is implemented in QDate::weekNumber()\&.
|
|
.TP
|
|
\fB\fIFirstDay \fP\fP
|
|
'The week with January 1\&.1 in it\&.'
|
|
.PP
|
|
In the U\&.S\&. this definition is more common than FirstThursday\&.
|
|
.PP
|
|
Definition at line 49 of file qwt_date\&.h\&.
|
|
.SH "Member Function Documentation"
|
|
.PP
|
|
.SS "QDateTime QwtDate::ceil (const QDateTime & dateTime, \fBIntervalType\fP intervalType)\fC [static]\fP"
|
|
Ceil a datetime according the interval type
|
|
.PP
|
|
\fBParameters\fP
|
|
.RS 4
|
|
\fIdateTime\fP Datetime value
|
|
.br
|
|
\fIintervalType\fP Interval type, how to ceil\&. F\&.e\&. when intervalType = QwtDate::Months, the result will be ceiled to the next beginning of a month
|
|
.RE
|
|
.PP
|
|
\fBReturns\fP
|
|
.RS 4
|
|
Ceiled datetime
|
|
.RE
|
|
.PP
|
|
\fBSee also\fP
|
|
.RS 4
|
|
\fBfloor()\fP
|
|
.RE
|
|
.PP
|
|
|
|
.PP
|
|
Definition at line 323 of file qwt_date\&.cpp\&.
|
|
.SS "QDate QwtDate::dateOfWeek0 (int year, \fBWeek0Type\fP type)\fC [static]\fP"
|
|
|
|
.PP
|
|
Date of the first day of the first week for a year\&. The first day of a week depends on the current locale ( QLocale::firstDayOfWeek() )\&.
|
|
.PP
|
|
\fBParameters\fP
|
|
.RS 4
|
|
\fIyear\fP Year
|
|
.br
|
|
\fItype\fP Option how to identify the first week
|
|
.RE
|
|
.PP
|
|
\fBReturns\fP
|
|
.RS 4
|
|
First day of week 0
|
|
.RE
|
|
.PP
|
|
\fBSee also\fP
|
|
.RS 4
|
|
QLocale::firstDayOfWeek(), \fBweekNumber()\fP
|
|
.RE
|
|
.PP
|
|
|
|
.PP
|
|
Definition at line 542 of file qwt_date\&.cpp\&.
|
|
.SS "QDateTime QwtDate::floor (const QDateTime & dateTime, \fBIntervalType\fP intervalType)\fC [static]\fP"
|
|
Floor a datetime according the interval type
|
|
.PP
|
|
\fBParameters\fP
|
|
.RS 4
|
|
\fIdateTime\fP Datetime value
|
|
.br
|
|
\fIintervalType\fP Interval type, how to ceil\&. F\&.e\&. when intervalType = QwtDate::Months, the result will be ceiled to the next beginning of a month
|
|
.RE
|
|
.PP
|
|
\fBReturns\fP
|
|
.RS 4
|
|
Floored datetime
|
|
.RE
|
|
.PP
|
|
\fBSee also\fP
|
|
.RS 4
|
|
\fBfloor()\fP
|
|
.RE
|
|
.PP
|
|
|
|
.PP
|
|
Definition at line 425 of file qwt_date\&.cpp\&.
|
|
.SS "QDate QwtDate::maxDate ()\fC [static]\fP"
|
|
Maximum for the supported date range
|
|
.PP
|
|
The range of valid dates depends on how QDate stores the Julian day internally\&.
|
|
.PP
|
|
.IP "\(bu" 2
|
|
For Qt4 it is 'Tue Jun 3 5874898'
|
|
.IP "\(bu" 2
|
|
For Qt5 it is 'Tue Dec 31 2147483647'
|
|
.PP
|
|
.PP
|
|
\fBReturns\fP
|
|
.RS 4
|
|
maximum of the date range
|
|
.RE
|
|
.PP
|
|
\fBSee also\fP
|
|
.RS 4
|
|
\fBminDate()\fP
|
|
.RE
|
|
.PP
|
|
\fBNote\fP
|
|
.RS 4
|
|
The maximum differs between Qt4 and Qt5
|
|
.RE
|
|
.PP
|
|
|
|
.PP
|
|
Definition at line 521 of file qwt_date\&.cpp\&.
|
|
.SS "QDate QwtDate::minDate ()\fC [static]\fP"
|
|
Minimum for the supported date range
|
|
.PP
|
|
The range of valid dates depends on how QDate stores the Julian day internally\&.
|
|
.PP
|
|
.IP "\(bu" 2
|
|
For Qt4 it is 'Tue Jan 2 -4713'
|
|
.IP "\(bu" 2
|
|
For Qt5 it is 'Thu Jan 1 -2147483648'
|
|
.PP
|
|
.PP
|
|
\fBReturns\fP
|
|
.RS 4
|
|
minimum of the date range
|
|
.RE
|
|
.PP
|
|
\fBSee also\fP
|
|
.RS 4
|
|
\fBmaxDate()\fP
|
|
.RE
|
|
.PP
|
|
|
|
.PP
|
|
Definition at line 499 of file qwt_date\&.cpp\&.
|
|
.SS "QDateTime QwtDate::toDateTime (double value, Qt::TimeSpec timeSpec = \fCQt::UTC\fP)\fC [static]\fP"
|
|
Translate from double to QDateTime
|
|
.PP
|
|
\fBParameters\fP
|
|
.RS 4
|
|
\fIvalue\fP Number of milliseconds since the epoch, 1970-01-01T00:00:00 UTC
|
|
.br
|
|
\fItimeSpec\fP Time specification
|
|
.RE
|
|
.PP
|
|
\fBReturns\fP
|
|
.RS 4
|
|
Datetime value
|
|
.RE
|
|
.PP
|
|
\fBSee also\fP
|
|
.RS 4
|
|
\fBtoDouble()\fP, QDateTime::setMSecsSinceEpoch()
|
|
.RE
|
|
.PP
|
|
\fBNote\fP
|
|
.RS 4
|
|
The return datetime for Qt::OffsetFromUTC will be Qt::UTC
|
|
.RE
|
|
.PP
|
|
|
|
.PP
|
|
Definition at line 261 of file qwt_date\&.cpp\&.
|
|
.SS "double QwtDate::toDouble (const QDateTime & dateTime)\fC [static]\fP"
|
|
Translate from QDateTime to double
|
|
.PP
|
|
\fBParameters\fP
|
|
.RS 4
|
|
\fIdateTime\fP Datetime value
|
|
.RE
|
|
.PP
|
|
\fBReturns\fP
|
|
.RS 4
|
|
Number of milliseconds since 1970-01-01T00:00:00 UTC has passed\&.
|
|
.RE
|
|
.PP
|
|
\fBSee also\fP
|
|
.RS 4
|
|
\fBtoDateTime()\fP, QDateTime::toMSecsSinceEpoch()
|
|
.RE
|
|
.PP
|
|
\fBWarning\fP
|
|
.RS 4
|
|
For values very far below or above 1970-01-01 UTC rounding errors will happen due to the limited significance of a double\&.
|
|
.RE
|
|
.PP
|
|
|
|
.PP
|
|
Definition at line 298 of file qwt_date\&.cpp\&.
|
|
.SS "QString QwtDate::toString (const QDateTime & dateTime, const QString & format, \fBWeek0Type\fP week0Type)\fC [static]\fP"
|
|
Translate a datetime into a string
|
|
.PP
|
|
Beside the format expressions documented in QDateTime::toString() the following expressions are supported:
|
|
.PP
|
|
.IP "\(bu" 2
|
|
w
|
|
.br
|
|
week number: ( 1 - 53 )
|
|
.IP "\(bu" 2
|
|
ww
|
|
.br
|
|
week number with a leading zero ( 01 - 53 )
|
|
.PP
|
|
.PP
|
|
As week 1 usually starts in the previous year a special rule is applied for formats, where the year is expected to match the week number - even if the date belongs to the previous year\&.
|
|
.PP
|
|
\fBParameters\fP
|
|
.RS 4
|
|
\fIdateTime\fP Datetime value
|
|
.br
|
|
\fIformat\fP Format string
|
|
.br
|
|
\fIweek0Type\fP Specification of week 0
|
|
.RE
|
|
.PP
|
|
\fBReturns\fP
|
|
.RS 4
|
|
Datetime string
|
|
.RE
|
|
.PP
|
|
\fBSee also\fP
|
|
.RS 4
|
|
QDateTime::toString(), \fBweekNumber()\fP, \fBQwtDateScaleDraw\fP
|
|
.RE
|
|
.PP
|
|
|
|
.PP
|
|
Definition at line 686 of file qwt_date\&.cpp\&.
|
|
.SS "int QwtDate::utcOffset (const QDateTime & dateTime)\fC [static]\fP"
|
|
Offset in seconds from Coordinated Universal Time
|
|
.PP
|
|
The offset depends on the time specification of dateTime:
|
|
.PP
|
|
.IP "\(bu" 2
|
|
Qt::UTC 0, dateTime has no offset
|
|
.IP "\(bu" 2
|
|
Qt::OffsetFromUTC returns dateTime\&.offsetFromUtc()
|
|
.IP "\(bu" 2
|
|
Qt::LocalTime: number of seconds from the UTC
|
|
.PP
|
|
.PP
|
|
For Qt::LocalTime the offset depends on the timezone and daylight savings\&.
|
|
.PP
|
|
\fBParameters\fP
|
|
.RS 4
|
|
\fIdateTime\fP Datetime value
|
|
.RE
|
|
.PP
|
|
\fBReturns\fP
|
|
.RS 4
|
|
Offset in seconds
|
|
.RE
|
|
.PP
|
|
|
|
.PP
|
|
Definition at line 635 of file qwt_date\&.cpp\&.
|
|
.SS "int QwtDate::weekNumber (const QDate & date, \fBWeek0Type\fP type)\fC [static]\fP"
|
|
Find the week number of a date
|
|
.PP
|
|
.IP "\(bu" 2
|
|
\fBQwtDate::FirstThursday\fP
|
|
.br
|
|
Corresponding to ISO 8601 ( see QDate::weekNumber() )\&.
|
|
.IP "\(bu" 2
|
|
\fBQwtDate::FirstDay\fP
|
|
.br
|
|
Number of weeks that have begun since \fBdateOfWeek0()\fP\&.
|
|
.PP
|
|
.PP
|
|
\fBParameters\fP
|
|
.RS 4
|
|
\fIdate\fP Date
|
|
.br
|
|
\fItype\fP Option how to identify the first week
|
|
.RE
|
|
.PP
|
|
\fBReturns\fP
|
|
.RS 4
|
|
Week number, starting with 1
|
|
.RE
|
|
.PP
|
|
|
|
.PP
|
|
Definition at line 585 of file qwt_date\&.cpp\&.
|
|
|
|
.SH "Author"
|
|
.PP
|
|
Generated automatically by Doxygen for Qwt User's Guide from the source code\&.
|