// Purpose: Implementation of time-related functions.
// Author: Vadim Zeitlin
// Created: 2011-11-26
-// RCS-ID: $Id: wxhead.cpp,v 1.11 2010-04-22 12:44:51 zeitlin Exp $
// Copyright: (c) 2011 Vadim Zeitlin <vadim@wxwidgets.org>
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
#include "wx/time.h"
#ifndef WX_PRECOMP
- #ifdef __WXMSW__
+ #ifdef __WINDOWS__
#include "wx/msw/wrapwin.h"
#endif
#include "wx/intl.h"
#ifndef WX_GMTOFF_IN_TM
// Define it for some systems which don't (always) use configure but are
// known to have tm_gmtoff field.
- #if defined(__WXPALMOS__) || defined(__DARWIN__)
+ #if defined(__DARWIN__)
#define WX_GMTOFF_IN_TM
#endif
#endif
# endif
#endif
-#if defined(__MWERKS__) && defined(__WXMSW__)
-# undef HAVE_FTIME
-# undef HAVE_GETTIMEOFDAY
-#endif
-
-#ifndef __WXPALMOS5__
#ifndef __WXWINCE__
#include <time.h>
#else
#include "wx/msw/private.h"
#include "wx/msw/wince/time.h"
#endif
-#endif // __WXPALMOS5__
#if !defined(__WXMAC__) && !defined(__WXWINCE__)
#include <sys/timeb.h>
#endif
-#ifdef __WXPALMOS__
- #include <DateTime.h>
- #include <TimeMgr.h>
- #include <SystemMgr.h>
-#endif
-
-#if defined(__MWERKS__) && wxUSE_UNICODE
- #include <wtime.h>
-#endif
-
#if defined(__DJGPP__) || defined(__WINE__)
#include <sys/timeb.h>
#include <values.h>
#else // VC++ < 8
return timezone;
#endif
-#elif defined(WX_TIMEZONE) // If WX_TIMEZONE was defined by configure, use it.
- return WX_TIMEZONE;
-#elif defined(__BORLANDC__) || defined(__MINGW32__) || defined(__VISAGECPP__)
- return _timezone;
-#elif defined(__MWERKS__)
- return 28800;
-#else // unknown platform -- assume it has timezone
- return timezone;
-#endif // WX_GMTOFF_IN_TM/!WX_GMTOFF_IN_TM
+#else // Use some kind of time zone variable.
+ // In any case we must initialize the time zone before using it.
+ tzset();
+
+ #if defined(WX_TIMEZONE) // If WX_TIMEZONE was defined by configure, use it.
+ return WX_TIMEZONE;
+ #elif defined(__BORLANDC__) || defined(__MINGW32__) || defined(__VISAGECPP__)
+ return _timezone;
+ #else // unknown platform -- assume it has timezone
+ return timezone;
+ #endif // different time zone variables
+#endif // different ways to determine time zone
}
// Get local time as seconds since 00:00:00, Jan 1st 1970
wxLongLong wxGetUTCTimeUSec()
{
-#if defined(__WXMSW__)
+#if defined(__WINDOWS__)
FILETIME ft;
::GetSystemTimeAsFileTime(&ft);
// Get local time as milliseconds since 00:00:00, Jan 1st 1970
wxLongLong wxGetUTCTimeMillis()
{
- wxLongLong val = MILLISECONDS_PER_SECOND;
-
// If possible, use a function which avoids conversions from
// broken-up time structures to milliseconds
-#if defined(__WXPALMOS__)
- DateTimeType thenst;
- thenst.second = 0;
- thenst.minute = 0;
- thenst.hour = 0;
- thenst.day = 1;
- thenst.month = 1;
- thenst.year = 1970;
- thenst.weekDay = 5;
- uint32_t now = TimGetSeconds();
- uint32_t then = TimDateTimeToSeconds (&thenst);
- return SysTimeToMilliSecs(SysTimeInSecs(now - then));
-#elif defined(__WXMSW__)
+#if defined(__WINDOWS__)
FILETIME ft;
::GetSystemTimeAsFileTime(&ft);
t /= 10000;
t -= wxLL(11644473600000); // Unix - Windows epochs difference in ms.
return t;
-#elif defined(HAVE_GETTIMEOFDAY)
+#else // !__WINDOWS__
+ wxLongLong val = MILLISECONDS_PER_SECOND;
+
+#if defined(HAVE_GETTIMEOFDAY)
struct timeval tp;
if ( wxGetTimeOfDay(&tp) != -1 )
{
val *= wxGetUTCTime();
return val;
#endif // time functions
+
+#endif // __WINDOWS__/!__WINDOWS__
}
wxLongLong wxGetLocalTimeMillis()