KStarsDateTime::KStarsDateTime( const QDateTime &qdt ) : QDateTime( qdt )//, QDateTime::Spec::UTC() ) { // FIXME: This method might be buggy. Need to write some tests -- asimha (Oct 2016) QTime _t = qdt.time(); QDate _d = qdt.date(); long double jdFrac = ( _t.hour()-12 + ( _t.minute() + ( _t.second() + _t.msec()/1000.)/60.)/60.)/24.; DJD = (long double)( _d.toJulianDay() ) + jdFrac; setUtcOffset(qdt.utcOffset()); }
void KDDateTime::setTimeZone(const QString &timeZone) { d->mTimeZone = timeZone; // Just in case someone cares: set the time spec in QDateTime accordingly. // We can't do this the other way round, there's no public API for the offset-from-utc case. if (timeZone == QLatin1String("Z")) setTimeSpec(Qt::UTC); else if (timeZone.isEmpty()) setTimeSpec(Qt::LocalTime); else { setTimeSpec(Qt::OffsetFromUTC); const int pos = timeZone.indexOf(QLatin1Char(':')); if ( pos > 0 ) { const int hours = timeZone.left(pos).toInt(); const int minutes = timeZone.mid(pos+1).toInt(); const int offset = hours * 3600 + minutes * 60; setUtcOffset(offset); } } }
KStarsDateTime::KStarsDateTime( const KStarsDateTime &kdt ) : QDateTime() { setDJD( kdt.djd() ); setUtcOffset(kdt.utcOffset()); }