kstars
kstarsdatetime.h
Go to the documentation of this file.00001 /*************************************************************************** 00002 kstarsdatetime.h - K Desktop Planetarium 00003 ------------------- 00004 begin : Tue 05 May 2004 00005 copyright : (C) 2001 by Jason Harris 00006 email : jharris@30doradus.org 00007 ***************************************************************************/ 00008 00009 /*************************************************************************** 00010 * * 00011 * This program is free software; you can redistribute it and/or modify * 00012 * it under the terms of the GNU General Public License as published by * 00013 * the Free Software Foundation; either version 2 of the License, or * 00014 * (at your option) any later version. * 00015 * * 00016 ***************************************************************************/ 00017 00018 #ifndef KSTARSDATETIME_H 00019 #define KSTARSDATETIME_H 00020 00021 #define J2000 2451545.0 //Julian Date for noon on Jan 1, 2000 (epoch J2000) 00022 //defined here because this file is included in every other class. 00023 #define B1950 2433282.4235 // Julian date for Jan 0.9235, 1950 00024 #define SIDEREALSECOND 1.002737909 //number of sidereal seconds in one solar second 00025 00026 #include "libkdeedu/extdate/extdatetime.h" 00027 00028 class dms; 00029 00043 class KStarsDateTime : public ExtDateTime 00044 { 00045 public: 00050 KStarsDateTime(); 00051 00059 KStarsDateTime( long int jd ); 00060 00066 KStarsDateTime( double djd ); 00067 00073 KStarsDateTime( long double djd ); 00074 00079 KStarsDateTime( const KStarsDateTime &kdt ); 00080 00085 KStarsDateTime( const ExtDateTime &kdt ); 00086 00093 KStarsDateTime( const ExtDate &_d, const QTime &_t ); 00094 00100 void setDJD( long double jd ); 00101 00106 void setDate( const ExtDate &d ); 00107 00112 void setTime( const QTime &t ); 00113 00118 KStarsDateTime addSecs( long double s ) const { return KStarsDateTime( djd() + s/86400. ); } 00119 00124 KStarsDateTime addDays( int nd ) const { return KStarsDateTime( djd() + (long double)nd ); } 00125 00126 bool operator == ( const KStarsDateTime &d ) const { return DJD == d.djd(); } 00127 bool operator != ( const KStarsDateTime &d ) const { return DJD != d.djd(); } 00128 bool operator < ( const KStarsDateTime &d ) const { return DJD < d.djd(); } 00129 bool operator <= ( const KStarsDateTime &d ) const { return DJD <= d.djd(); } 00130 bool operator > ( const KStarsDateTime &d ) const { return DJD > d.djd(); } 00131 bool operator >= ( const KStarsDateTime &d ) const { return DJD >= d.djd(); } 00132 00137 static KStarsDateTime currentDateTime(); 00138 00142 long double djd() const { return DJD; } 00143 00150 double jdFrac() const { return ((time().hour()-12) + (time().minute() 00151 + (time().second() + time().msec()/1000.)/60.)/60.)/24.; } 00152 00157 long double JDat0hUT() const { return int( djd() - 0.5 ) + 0.5; } 00158 00164 dms gst() const; 00165 00170 QTime GSTtoUT( dms GST ) const; 00171 00172 00178 double epoch() const { return ( double( date().year() ) 00179 + double( date().dayOfYear() )/double( date().daysInYear() ) ); } 00180 00186 void setFromEpoch( double e ); 00187 00188 private: 00193 dms GSTat0hUT() const; 00194 00195 long double DJD; 00196 }; 00197 00198 #endif //KSTARSDATETIME_H 00199