// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
-// You should have received a copy of the GNU Library General Public
-// License along with this library; if not, write to the
-// Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-// Boston, MA 02111-1307, USA.
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
//
// $Id$
#include <errno.h> // for errno
-#ifdef SG_HAVE_STD_INCLUDES
-# include <cstdio>
-# include <cstdlib>
-# include <ctime>
-#else
-# include <math.h>
-# include <stdio.h>
-# include <stdlib.h>
-#endif
+#include <cstdio>
+#include <cstdlib>
+#include <ctime>
+#include <cstring>
#include <string>
#define DEGHR(x) ((x)/15.)
#define RADHR(x) DEGHR(x*SGD_RADIANS_TO_DEGREES)
+using std::string;
static const double MJD0 = 2415020.0;
static const double J2000 = 2451545.0 - MJD0;
SG_LOG( SG_EVENT, SG_INFO, "Reading timezone info from: "
<< zone.str() );
tzContainer = new SGTimeZoneContainer( zone.c_str() );
-
- SGGeoCoord location( SGD_RADIANS_TO_DEGREES * lat_rad, SGD_RADIANS_TO_DEGREES * lon_rad );
- SGGeoCoord* nearestTz = tzContainer->getNearest(location);
+ SGGeod location(SGGeod::fromRad(lon_rad, lat_rad));
+ SGTimeZone* nearestTz = tzContainer->getNearest(location);
SGPath name( root );
name.append( nearestTz->getDescription() );
SGTime::~SGTime()
{
- if ( tzContainer != NULL ) {
- SGTimeZoneContainer *tmp = tzContainer;
- tzContainer = NULL;
- delete tmp;
- }
+ delete tzContainer;
}
{
double gst_precise, gst_course;
-#if defined(_MSC_VER) || defined(__MINGW32__)
+
tm * gmt = &m_gmt;
-#endif
+
SG_LOG( SG_EVENT, SG_DEBUG, "Updating time" );
<< " warp = " << warp );
// get GMT break down for current time
-#if defined(_MSC_VER) || defined(__MINGW32__)
+
memcpy( gmt, gmtime(&cur_time), sizeof(tm) );
-#else
- gmt = gmtime(&cur_time);
-#endif
SG_LOG( SG_EVENT, SG_DEBUG,
" Current GMT = " << gmt->tm_mon+1 << "/"
<< gmt->tm_mday << "/" << (1900 + gmt->tm_year) << " "
}
time_t currGMT;
time_t aircraftLocalTime;
- SGGeoCoord location( SGD_RADIANS_TO_DEGREES * lat_rad,
- SGD_RADIANS_TO_DEGREES * lon_rad );
- SGGeoCoord* nearestTz = tzContainer->getNearest(location);
+ SGGeod location(SGGeod::fromRad(lon_rad, lat_rad));
+ SGTimeZone* nearestTz = tzContainer->getNearest(location);
SGPath zone( root );
zone.append ( nearestTz->getDescription() );
zonename = zone.str();
// since 1900 jan 0.5), mjd.
double sgTimeCurrentMJD( time_t ct, long int warp ) {
-#if defined(_MSC_VER) || defined(__MINGW32__)
struct tm m_gmt; // copy of system gmtime(&time_t) structure
struct tm *gmt = &m_gmt;
-#else
- struct tm *gmt;
-#endif
// get current Unix calendar time (in seconds)
// warp += warp_delta;
<< " warp = " << warp );
// get GMT break down for current time
-#if defined(_MSC_VER) || defined(__MINGW32__)
memcpy( gmt, gmtime(&cur_time), sizeof(tm) );
-#else
- gmt = gmtime(&cur_time);
-#endif
SG_LOG( SG_EVENT, SG_DEBUG,
" Current GMT = " << gmt->tm_mon+1 << "/"
<< gmt->tm_mday << "/" << (1900 + gmt->tm_year) << " "