#ifdef HAVE_LOCALTIME_R
#define wxLocaltime_r localtime_r
#else
-struct tm *wxLocaltime_r(const time_t*, struct tm*)
+struct tm *wxLocaltime_r(const time_t*, struct tm*);
+#if wxUSE_THREADS && !defined(__WINDOWS__) && !defined(__WATCOMC__)
+ // On Windows, localtime _is_ threadsafe!
#warning using pseudo thread-safe wrapper for localtime to emulate localtime_r
#endif
+#endif
#ifdef HAVE_GMTIME_R
#define wxGmtime_r gmtime_r
#else
-struct tm *wxGmtime_r(const time_t*, struct tm*)
+struct tm *wxGmtime_r(const time_t*, struct tm*);
+#if wxUSE_THREADS && !defined(__WINDOWS__) && !defined(__WATCOMC__)
+ // On Windows, gmtime _is_ threadsafe!
#warning using pseudo thread-safe wrapper for gmtime to emulate gmtime_r
#endif
+#endif
/*
The three (main) classes declared in this header represent:
static bool IsLeapYear(int year = Inv_Year, Calendar cal = Gregorian);
// get the century (19 for 1999, 20 for 2000 and -5 for 492 BC)
- static int GetCentury(int year = Inv_Year);
+ static int GetCentury(int year);
// returns the number of days in this year (356 or 355 for Gregorian
// calendar usually :-)
Month month = Inv_Month,
int year = Inv_Year);
+#if WXWIN_COMPATIBILITY_2_6
// sets the date to the given day of the given week in the year,
// returns true on success and false if given date doesn't exist (e.g.
// numWeek is > 53)
wxDEPRECATED( wxDateTime GetWeek(wxDateTime_t numWeek,
WeekDay weekday = Mon,
WeekFlags flags = Monday_First) const );
+#endif // WXWIN_COMPATIBILITY_2_6
// returns the date corresponding to the given week day of the given
// week (in ISO notation) of the specified year
// if the value is out of range
inline time_t GetTicks() const;
+ // get the century, same as GetCentury(GetYear())
+ int GetCentury(const TimeZone& tz = Local) const
+ { return GetCentury(GetYear(tz)); }
// get the year (returns Inv_Year if date is invalid)
int GetYear(const TimeZone& tz = Local) const
{ return GetTm(tz).year; }
// constructors
// ------------------------------------------------------------------------
+ // return the timespan for the given number of milliseconds
+ static wxTimeSpan Milliseconds(wxLongLong ms) { return wxTimeSpan(0, 0, 0, ms); }
+ static wxTimeSpan Millisecond() { return Milliseconds(1); }
+
// return the timespan for the given number of seconds
- static wxTimeSpan Seconds(long sec) { return wxTimeSpan(0, 0, sec); }
+ static wxTimeSpan Seconds(wxLongLong sec) { return wxTimeSpan(0, 0, sec); }
static wxTimeSpan Second() { return Seconds(1); }
// return the timespan for the given number of minutes
// milliseconds)
inline wxTimeSpan(long hours,
long minutes = 0,
- long seconds = 0,
- long milliseconds = 0);
+ wxLongLong seconds = 0,
+ wxLongLong milliseconds = 0);
// default copy ctor is ok
inline wxTimeSpan::wxTimeSpan(long hours,
long minutes,
- long seconds,
- long milliseconds)
+ wxLongLong seconds,
+ wxLongLong milliseconds)
{
// assign first to avoid precision loss
m_diff = hours;