Search for usage in LXR

#include <kstarsdatetime.h>

Inheritance diagram for KStarsDateTime:

Public Types

enum  EpochType { JULIAN , BESSELIAN }
- Public Types inherited from QDateTime
enum  YearRange

Public Member Functions

 KStarsDateTime ()
 KStarsDateTime (const QDate &_d, const QTime &_t, Qt::TimeSpec timeSpec=Qt::UTC)
 KStarsDateTime (const QDateTime &qdt)
 KStarsDateTime (long double djd)
KStarsDateTime addDays (int nd) const
KStarsDateTime addSecs (double s) const
long double djd () const
double epoch () const
dms gst () const
QTime GSTtoUT (dms GST) const
bool operator!= (const KStarsDateTime &d) const
bool operator< (const KStarsDateTime &d) const
bool operator<= (const KStarsDateTime &d) const
bool operator== (const KStarsDateTime &d) const
bool operator> (const KStarsDateTime &d) const
bool operator>= (const KStarsDateTime &d) const
void setDate (const QDate &d)
void setDJD (long double jd)
bool setFromEpoch (const QString &e)
void setFromEpoch (double e)
bool setFromEpoch (double e, EpochType type)
void setTime (const QTime &t)
 KStarsDateTime (const KStarsDateTime &kdt)
KStarsDateTimeoperator= (const KStarsDateTime &kdt) noexcept
- Public Member Functions inherited from QDateTime
 QDateTime (const QDateTime &other)
 QDateTime (QDate date, QTime time)
 QDateTime (QDate date, QTime time, const QTimeZone &timeZone)
 QDateTime (QDate date, QTime time, Qt::TimeSpec spec, int offsetSeconds)
 QDateTime (QDateTime &&other)
QDateTime addDays (qint64 ndays) const const
QDateTime addDuration (std::chrono::milliseconds msecs) const const
QDateTime addMonths (int nmonths) const const
QDateTime addMSecs (qint64 msecs) const const
QDateTime addSecs (qint64 s) const const
QDateTime addYears (int nyears) const const
QDate date () const const
qint64 daysTo (const QDateTime &other) const const
bool isDaylightTime () const const
bool isNull () const const
bool isValid () const const
qint64 msecsTo (const QDateTime &other) const const
int offsetFromUtc () const const
bool operator!= (const QDateTime &lhs, const QDateTime &rhs)
QDateTime operator+ (const QDateTime &dateTime, std::chrono::milliseconds duration)
QDateTime operator+ (std::chrono::milliseconds duration, const QDateTime &dateTime)
QDateTimeoperator+= (std::chrono::milliseconds duration)
QDateTime operator- (const QDateTime &dateTime, std::chrono::milliseconds duration)
std::chrono::milliseconds operator- (const QDateTime &lhs, const QDateTime &rhs)
QDateTimeoperator-= (std::chrono::milliseconds duration)
bool operator< (const QDateTime &lhs, const QDateTime &rhs)
QDataStreamoperator<< (QDataStream &out, const QDateTime &dateTime)
bool operator<= (const QDateTime &lhs, const QDateTime &rhs)
QDateTimeoperator= (const QDateTime &other)
bool operator== (const QDateTime &lhs, const QDateTime &rhs)
bool operator> (const QDateTime &lhs, const QDateTime &rhs)
bool operator>= (const QDateTime &lhs, const QDateTime &rhs)
QDataStreamoperator>> (QDataStream &in, QDateTime &dateTime)
qint64 secsTo (const QDateTime &other) const const
void setDate (QDate date)
void setMSecsSinceEpoch (qint64 msecs)
void setOffsetFromUtc (int offsetSeconds)
void setSecsSinceEpoch (qint64 secs)
void setTime (QTime time)
void setTimeSpec (Qt::TimeSpec spec)
void setTimeZone (const QTimeZone &toZone)
void swap (QDateTime &other)
QTime time () const const
QTimeZone timeRepresentation () const const
Qt::TimeSpec timeSpec () const const
QTimeZone timeZone () const const
QString timeZoneAbbreviation () const const
CFDateRef toCFDate () const const
QDateTime toLocalTime () const const
qint64 toMSecsSinceEpoch () const const
NSDatetoNSDate () const const
QDateTime toOffsetFromUtc (int offsetSeconds) const const
qint64 toSecsSinceEpoch () const const
std::chrono::sys_time< std::chrono::milliseconds > toStdSysMilliseconds () const const
std::chrono::sys_seconds toStdSysSeconds () const const
QString toString (const QString &format, QCalendar cal) const const
QString toString (QStringView format, QCalendar cal) const const
QString toString (Qt::DateFormat format) const const
QDateTime toTimeSpec (Qt::TimeSpec spec) const const
QDateTime toTimeZone (const QTimeZone &timeZone) const const
QDateTime toUTC () const const

Static Public Member Functions

static KStarsDateTime currentDateTime ()
static KStarsDateTime currentDateTimeUtc ()
static long double epochToJd (double epoch, EpochType type=JULIAN)
static KStarsDateTime fromString (const QString &s)
static double jdToEpoch (long double jd, EpochType type=JULIAN)
static double stringToEpoch (const QString &eName, bool &ok)
- Static Public Member Functions inherited from QDateTime
QDateTime currentDateTime ()
QDateTime currentDateTime (const QTimeZone &zone)
QDateTime currentDateTimeUtc ()
qint64 currentMSecsSinceEpoch ()
qint64 currentSecsSinceEpoch ()
QDateTime fromCFDate (CFDateRef date)
QDateTime fromMSecsSinceEpoch (qint64 msecs)
QDateTime fromMSecsSinceEpoch (qint64 msecs, const QTimeZone &timeZone)
QDateTime fromMSecsSinceEpoch (qint64 msecs, Qt::TimeSpec spec, int offsetSeconds)
QDateTime fromNSDate (const NSDate *date)
QDateTime fromSecsSinceEpoch (qint64 secs)
QDateTime fromSecsSinceEpoch (qint64 secs, const QTimeZone &timeZone)
QDateTime fromSecsSinceEpoch (qint64 secs, Qt::TimeSpec spec, int offsetSeconds)
QDateTime fromStdLocalTime (const std::chrono::local_time< std::chrono::milliseconds > &time)
QDateTime fromStdTimePoint (const std::chrono::local_time< std::chrono::milliseconds > &time)
QDateTime fromStdTimePoint (const std::chrono::time_point< Clock, Duration > &time)
QDateTime fromStdZonedTime (const std::chrono::zoned_time< std::chrono::milliseconds, const std::chrono::time_zone * > &time)
QDateTime fromString (const QString &string, const QString &format, QCalendar cal)
QDateTime fromString (const QString &string, QStringView format, QCalendar cal)
QDateTime fromString (const QString &string, Qt::DateFormat format)
QDateTime fromString (QStringView string, QStringView format, QCalendar cal)
QDateTime fromString (QStringView string, Qt::DateFormat format)

Static Public Attributes

static constexpr const double B1900 = 2415020.31352
static constexpr const double JD_PER_BYEAR = 365.242198781

Additional Inherited Members

- Public Attributes inherited from QDateTime

Detailed Description

Extension of QDateTime for KStars KStarsDateTime can represent the date/time as a Julian Day, using a long double, in which the fractional portion encodes the time of day to a precision of a less than a second.

Also adds Greenwich Sidereal Time and "epoch", which is just the date expressed as a floating point number representing the year, with the fractional part representing the date and time (with poor time resolution; typically the Epoch is only taken to the hundredths place, which is a few days).

Local time and Local sideral time are not handled here. Because they depend on the geographic location, they are part of the GeoLocation class.
The default timespec is UTC unless the passed value has different timespec value.
See also
Jason Harris
Jasem Mutlaq

Definition at line 35 of file kstarsdatetime.h.

Member Enumeration Documentation

◆ EpochType

description options

After 1976, the IAU standard for epochs is Julian Years.

Julian epoch (see http://scienceworld.wolfram.com/astronomy/JulianEpoch.html)


Besselian epoch (see http://scienceworld.wolfram.com/astronomy/BesselianEpoch.html)

Definition at line 185 of file kstarsdatetime.h.

Constructor & Destructor Documentation

◆ KStarsDateTime() [1/5]

KStarsDateTime::KStarsDateTime ( )

Default constructor Creates a date/time at J2000 (noon on Jan 1, 200)

This sets the timespec to UTC.

Definition at line 16 of file kstarsdatetime.cpp.

◆ KStarsDateTime() [2/5]

KStarsDateTime::KStarsDateTime ( long double djd)

Constructor Creates a date/time at the specified Julian Day.

jd The Julian Day

This sets the timespec to UTC.

Definition at line 66 of file kstarsdatetime.cpp.

◆ KStarsDateTime() [3/5]

KStarsDateTime::KStarsDateTime ( const KStarsDateTime & kdt)

Copy constructor kdt The KStarsDateTime object to copy.

The timespec is copied from kdt.

Definition at line 22 of file kstarsdatetime.cpp.

◆ KStarsDateTime() [4/5]

KStarsDateTime::KStarsDateTime ( const QDateTime & qdt)

Copy constructor qdt The QDateTime object to copy.

The timespec is copied from qdt.

Definition at line 46 of file kstarsdatetime.cpp.

◆ KStarsDateTime() [5/5]

KStarsDateTime::KStarsDateTime ( const QDate & _d,
const QTime & _t,
Qt::TimeSpec timeSpec = Qt::UTC )

Constructor Create a KStarsDateTimne based on the specified Date and Time.

_d The QDate to assign _t The QTime to assign timespec The desired timespec, UTC by default.

Definition at line 57 of file kstarsdatetime.cpp.

Member Function Documentation

◆ addDays()

KStarsDateTime KStarsDateTime::addDays ( int nd) const

Modify the Date/Time by adding a number of days.

nd the number of days to add. The number can be negative.

Definition at line 110 of file kstarsdatetime.h.

◆ addSecs()

KStarsDateTime KStarsDateTime::addSecs ( double s) const
a KStarsDateTime that is the given number of seconds later than this KStarsDateTime. s the number of seconds to add. The number can be negative.

Definition at line 153 of file kstarsdatetime.cpp.

◆ currentDateTime()

KStarsDateTime KStarsDateTime::currentDateTime ( )
the date and time according to the CPU clock

Definition at line 73 of file kstarsdatetime.cpp.

◆ currentDateTimeUtc()

KStarsDateTime KStarsDateTime::currentDateTimeUtc ( )
the UTC date and time according to the CPU clock

Definition at line 82 of file kstarsdatetime.cpp.

◆ djd()

long double KStarsDateTime::djd ( ) const
the julian day as a long double, including the time as the fractional portion.

Definition at line 163 of file kstarsdatetime.h.

◆ epoch()

double KStarsDateTime::epoch ( ) const

This is (approximately) the year expressed as a floating-point value.

the (Julian) epoch value of the Date/Time.
See also
The definition of Julian Epoch used here comes from http://scienceworld.wolfram.com/astronomy/JulianEpoch.html

Definition at line 197 of file kstarsdatetime.h.

◆ epochToJd()

long double KStarsDateTime::epochToJd ( double epoch,
EpochType type = JULIAN )

Takes in an epoch and returns a Julian Date.

the Julian Date (date with fraction)
epochA floating-point year value specifying the Epoch
typeJULIAN or BESSELIAN depending on what convention the epoch is specified in

Definition at line 256 of file kstarsdatetime.cpp.

◆ fromString()

KStarsDateTime KStarsDateTime::fromString ( const QString & s)
a KStarsDateTime object parsed from the given string.
This function is format-agnostic; it will try several formats when parsing the string.
sthe string expressing the date/time to be parsed.

Definition at line 91 of file kstarsdatetime.cpp.

◆ gst()

dms KStarsDateTime::gst ( ) const
The Greenwich Sidereal Time The Greenwich sidereal time is the Right Ascension coordinate that is currently transiting the Prime Meridian at the Royal Observatory in Greenwich, UK (longitude=0.0)

Definition at line 167 of file kstarsdatetime.cpp.

◆ GSTtoUT()

QTime KStarsDateTime::GSTtoUT ( dms GST) const

Convert a given Greenwich Sidereal Time to Universal Time (=Greenwich Mean Time).

GST the Greenwich Sidereal Time to convert to Universal Time.

Definition at line 206 of file kstarsdatetime.cpp.

◆ jdToEpoch()

double KStarsDateTime::jdToEpoch ( long double jd,
KStarsDateTime::EpochType type = JULIAN )

Takes in a Julian Date and returns the corresponding epoch year in the given system.

the epoch as a floating-point year value
jdJulian date
typeEpoch system (KStarsDateTime::JULIAN or KStarsDateTime::BESSELIAN)

Definition at line 269 of file kstarsdatetime.cpp.

◆ operator!=()

bool KStarsDateTime::operator!= ( const KStarsDateTime & d) const

Definition at line 121 of file kstarsdatetime.h.

◆ operator<()

bool KStarsDateTime::operator< ( const KStarsDateTime & d) const

Definition at line 125 of file kstarsdatetime.h.

◆ operator<=()

bool KStarsDateTime::operator<= ( const KStarsDateTime & d) const

Definition at line 129 of file kstarsdatetime.h.

◆ operator=()

KStarsDateTime & KStarsDateTime::operator= ( const KStarsDateTime & kdt)

Definition at line 27 of file kstarsdatetime.cpp.

◆ operator==()

bool KStarsDateTime::operator== ( const KStarsDateTime & d) const

Definition at line 117 of file kstarsdatetime.h.

◆ operator>()

bool KStarsDateTime::operator> ( const KStarsDateTime & d) const

Definition at line 133 of file kstarsdatetime.h.

◆ operator>=()

bool KStarsDateTime::operator>= ( const KStarsDateTime & d) const

Definition at line 137 of file kstarsdatetime.h.

◆ setDate()

void KStarsDateTime::setDate ( const QDate & d)

Assign the Date according to a QDate object.

d the QDate to assign

Definition at line 144 of file kstarsdatetime.cpp.

◆ setDJD()

void KStarsDateTime::setDJD ( long double jd)

Assign the static_cast<long double> Julian Day value, which includes the time of day encoded in the fractional portion.

jd the Julian Day value to assign.

Definition at line 118 of file kstarsdatetime.cpp.

◆ setFromEpoch() [1/3]

bool KStarsDateTime::setFromEpoch ( const QString & e)

Set the Date/Time from an epoch value, represented as a string.

e the epoch value

true if date set successfully
See also

Definition at line 245 of file kstarsdatetime.cpp.

◆ setFromEpoch() [2/3]

void KStarsDateTime::setFromEpoch ( double e)

Set the Date/Time from an epoch value, represented as a double.

e the epoch value

This method assumes that the epoch 1950.0 is Besselian, otherwise assumes that the epoch is a Julian epoch. This is provided for backward compatibility, and because custom catalogs may still use 1950.0 to mean B1950.0 despite the IAU standard for epochs being Julian.
See also

Definition at line 228 of file kstarsdatetime.cpp.

◆ setFromEpoch() [3/3]

bool KStarsDateTime::setFromEpoch ( double e,
EpochType type )

Set the Date/Time from an epoch value, represented as a double.

e the epoch value

See also

Definition at line 236 of file kstarsdatetime.cpp.

◆ setTime()

void KStarsDateTime::setTime ( const QTime & t)

Assign the Time according to a QTime object.

t the QTime to assign

timespec is NOT changed even if the passed QTime has a different timespec than current.

Definition at line 161 of file kstarsdatetime.cpp.

◆ stringToEpoch()

double KStarsDateTime::stringToEpoch ( const QString & eName,
bool & ok )

Takes in a string and returns a Julian epoch.

Definition at line 288 of file kstarsdatetime.cpp.

Member Data Documentation

◆ B1900

constexpr const double KStarsDateTime::B1900 = 2415020.31352

The following values were obtained from Eric Weisstein's world of science: http://scienceworld.wolfram.com/astronomy/BesselianEpoch.html.

Definition at line 250 of file kstarsdatetime.h.


constexpr const double KStarsDateTime::JD_PER_BYEAR = 365.242198781

Definition at line 251 of file kstarsdatetime.h.

The documentation for this class was generated from the following files:
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Tue Mar 26 2024 11:19:04 by doxygen 1.10.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.