]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/datetime.h
Removed trailing semicolons.
[wxWidgets.git] / include / wx / datetime.h
index 21e98adb728b0095050091aa4dc4fd257eaffecd..c40a90ee8c58508597a03f499e541c3775dc6279 100644 (file)
@@ -13,7 +13,7 @@
 #ifndef _WX_DATETIME_H
 #define _WX_DATETIME_H
 
-#if defined(__GNUG__) && !defined(__APPLE__)
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
     #pragma interface "datetime.h"
 #endif
 
 
 #if wxUSE_DATETIME
 
+#ifndef __WXWINCE__
 #include <time.h>
+#else
+#include "wx/msw/wince/time.h"
+#endif
+
 #include <limits.h>             // for INT_MIN
 
 #include "wx/longlong.h"
@@ -105,7 +110,10 @@ class WXDLLIMPEXP_BASE wxDateSpan;
 // wxInvalidDateTime)
 class WXDLLIMPEXP_BASE wxDateTime;
 
+extern WXDLLIMPEXP_DATA_BASE(const wxChar*) wxDefaultDateTimeFormat;
+extern WXDLLIMPEXP_DATA_BASE(const wxChar*) wxDefaultTimeSpanFormat;
 extern WXDLLIMPEXP_DATA_BASE(const wxDateTime) wxDefaultDateTime;
+
 #define wxInvalidDateTime wxDefaultDateTime
 
 // ----------------------------------------------------------------------------
@@ -323,6 +331,12 @@ public:
         // day or not
         //
         // TODO move this to intl.h
+
+// Required for WinCE
+#ifdef USA
+#undef USA
+#endif
+
     enum Country
     {
         Country_Unknown, // no special information for this country
@@ -342,10 +356,8 @@ public:
         Country_WesternEurope_End = UK,
 
         Russia,
-
         USA
     };
-
         // symbolic names for the months
     enum Month
     {
@@ -454,7 +466,7 @@ public:
         // get the current country
     static Country GetCountry();
 
-        // return TRUE if the country is a West European one (in practice,
+        // return true if the country is a West European one (in practice,
         // this means that the same DST rules as for EEC apply)
     static bool IsWestEuropeanCountry(Country country = Country_Default);
 
@@ -470,7 +482,7 @@ public:
         // return the current month
     static Month GetCurrentMonth(Calendar cal = Gregorian);
 
-        // returns TRUE if the given year is a leap year in the given calendar
+        // returns true if the given year is a leap year in the given calendar
     static bool IsLeapYear(int year = Inv_Year, Calendar cal = Gregorian);
 
         // get the century (19 for 1999, 20 for 2000 and -5 for 492 BC)
@@ -499,7 +511,7 @@ public:
         // get the AM and PM strings in the current locale (may be empty)
     static void GetAmPmStrings(wxString *am, wxString *pm);
 
-        // return TRUE if the given country uses DST for this year
+        // return true if the given country uses DST for this year
     static bool IsDSTApplicable(int year = Inv_Year,
                                 Country country = Country_Default);
 
@@ -655,7 +667,7 @@ public:
     inline wxDateTime GetPrevWeekDay(WeekDay weekday) const;
 
         // set to Nth occurence of given weekday in the given month of the
-        // given year (time is set to 0), return TRUE on success and FALSE on
+        // given year (time is set to 0), return true on success and false on
         // failure. n may be positive (1..5) or negative to count from the end
         // of the month (see helper function SetToLastWeekDay())
     bool SetToWeekDay(WeekDay weekday,
@@ -676,14 +688,23 @@ public:
                                      int year = Inv_Year);
 
         // 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.
+        // returns true on success and false if given date doesn't exist (e.g.
         // numWeek is > 53)
-    bool SetToTheWeek(wxDateTime_t numWeek,
-                      WeekDay weekday = Mon,
-                      WeekFlags flags = Monday_First);
-    inline wxDateTime GetWeek(wxDateTime_t numWeek,
-                              WeekDay weekday = Mon,
-                              WeekFlags flags = Monday_First) const;
+        //
+        // these functions are badly defined as they're not the reverse of
+        // GetWeekOfYear(), use SetToTheWeekOfYear() instead
+    wxDEPRECATED( bool SetToTheWeek(wxDateTime_t numWeek,
+                                    WeekDay weekday = Mon,
+                                    WeekFlags flags = Monday_First) );
+    wxDEPRECATED( wxDateTime GetWeek(wxDateTime_t numWeek,
+                                     WeekDay weekday = Mon,
+                                     WeekFlags flags = Monday_First) const );
+
+        // returns the date corresponding to the given week day of the given
+        // week (in ISO notation) of the specified year
+    static wxDateTime SetToWeekOfYear(int year,
+                                      wxDateTime_t numWeek,
+                                      WeekDay weekday = Mon);
 
         // sets the date to the last day of the given (or current) month or the
         // given (or current) year
@@ -750,12 +771,12 @@ public:
     // ------------------------------------------------------------------------
 
         // transform to any given timezone
-    inline wxDateTime ToTimezone(const TimeZone& tz, bool noDST = FALSE) const;
-    wxDateTime& MakeTimezone(const TimeZone& tz, bool noDST = FALSE);
+    inline wxDateTime ToTimezone(const TimeZone& tz, bool noDST = false) const;
+    wxDateTime& MakeTimezone(const TimeZone& tz, bool noDST = false);
 
         // transform to GMT/UTC
-    wxDateTime ToGMT(bool noDST = FALSE) const { return ToTimezone(GMT0, noDST); }
-    wxDateTime& MakeGMT(bool noDST = FALSE) { return MakeTimezone(GMT0, noDST); }
+    wxDateTime ToGMT(bool noDST = false) const { return ToTimezone(GMT0, noDST); }
+    wxDateTime& MakeGMT(bool noDST = false) { return MakeTimezone(GMT0, noDST); }
 
         // is daylight savings time in effect at this moment according to the
         // rules of the specified country?
@@ -845,20 +866,20 @@ public:
     // comparison (see also functions below for operator versions)
     // ------------------------------------------------------------------------
 
-        // returns TRUE if the two moments are strictly identical
+        // returns true if the two moments are strictly identical
     inline bool IsEqualTo(const wxDateTime& datetime) const;
 
-        // returns TRUE if the date is strictly earlier than the given one
+        // returns true if the date is strictly earlier than the given one
     inline bool IsEarlierThan(const wxDateTime& datetime) const;
 
-        // returns TRUE if the date is strictly later than the given one
+        // returns true if the date is strictly later than the given one
     inline bool IsLaterThan(const wxDateTime& datetime) const;
 
-        // returns TRUE if the date is strictly in the given range
+        // returns true if the date is strictly in the given range
     inline bool IsStrictlyBetween(const wxDateTime& t1,
                                   const wxDateTime& t2) const;
 
-        // returns TRUE if the date is in the given range
+        // returns true if the date is in the given range
     inline bool IsBetween(const wxDateTime& t1, const wxDateTime& t2) const;
 
         // do these two objects refer to the same date?
@@ -917,7 +938,7 @@ public:
         // default, they will not change if they had valid values or will
         // default to Today() otherwise)
     const wxChar *ParseFormat(const wxChar *date,
-                              const wxChar *format = _T("%c"),
+                              const wxChar *format = wxDefaultDateTimeFormat,
                               const wxDateTime& dateDef = wxDefaultDateTime);
         // parse a string containing the date/time in "free" format, this
         // function will try to make an educated guess at the string contents
@@ -932,7 +953,7 @@ public:
         // argument corresponds to the preferred date and time representation
         // for the current locale) and returns the string containing the
         // resulting text representation
-    wxString Format(const wxChar *format = _T("%c"),
+    wxString Format(const wxChar *format = wxDefaultDateTimeFormat,
                     const TimeZone& tz = Local) const;
         // preferred date representation for the current locale
     wxString FormatDate() const { return Format(_T("%x")); }
@@ -975,7 +996,7 @@ private:
     // fixed to 1000
     static const long TIME_T_FACTOR;
 
-    // returns TRUE if we fall in range in which we can use standard ANSI C
+    // returns true if we fall in range in which we can use standard ANSI C
     // functions
     inline bool IsInStdRange() const;
 
@@ -1087,11 +1108,11 @@ public:
         // are two timespans equal?
     inline bool IsEqualTo(const wxTimeSpan& ts) const;
         // compare two timestamps: works with the absolute values, i.e. -2
-        // hours is longer than 1 hour. Also, it will return FALSE if the
+        // hours is longer than 1 hour. Also, it will return false if the
         // timespans are equal in absolute value.
     inline bool IsLongerThan(const wxTimeSpan& ts) const;
         // compare two timestamps: works with the absolute values, i.e. 1
-        // hour is shorter than -2 hours. Also, it will return FALSE if the
+        // hour is shorter than -2 hours. Also, it will return false if the
         // timespans are equal in absolute value.
     bool IsShorterThan(const wxTimeSpan& t) const { return !IsLongerThan(t); }
 
@@ -1120,7 +1141,7 @@ public:
         // resulting text representation. Notice that only some of format
         // specifiers valid for wxDateTime are valid for wxTimeSpan: hours,
         // minutes and seconds make sense, but not "PM/AM" string for example.
-    wxString Format(const wxChar *format = _T("%H:%M:%S")) const;
+    wxString Format(const wxChar *format = wxDefaultTimeSpanFormat) const;
 
     // implementation
     // ------------------------------------------------------------------------
@@ -1283,7 +1304,7 @@ WX_DECLARE_USER_EXPORTED_OBJARRAY(wxDateTime, wxDateTimeArray, WXDLLIMPEXP_BASE)
 // ----------------------------------------------------------------------------
 
 class WXDLLIMPEXP_BASE wxDateTimeHolidayAuthority;
-WX_DEFINE_USER_EXPORTED_ARRAY(wxDateTimeHolidayAuthority *,
+WX_DEFINE_USER_EXPORTED_ARRAY_PTR(wxDateTimeHolidayAuthority *,
                               wxHolidayAuthoritiesArray,
                               class WXDLLIMPEXP_BASE);
 
@@ -1292,7 +1313,7 @@ class WXDLLIMPEXP_BASE wxDateTimeHolidayAuthority
 {
 friend class wxDateTimeHolidaysModule;
 public:
-    // returns TRUE if the given date is a holiday
+    // returns true if the given date is a holiday
     static bool IsHoliday(const wxDateTime& dt);
 
     // fills the provided array with all holidays in the given range, returns
@@ -1379,12 +1400,10 @@ inline wxDateTime wxDateTime::Now()
 /* static */
 inline wxDateTime wxDateTime::Today()
 {
-    struct tm *time = GetTmNow();
-    time->tm_hour = 0;
-    time->tm_min = 0;
-    time->tm_sec = 0;
+    wxDateTime dt(Now());
+    dt.ResetTime();
 
-    return wxDateTime(*time);
+    return dt;
 }
 
 #if (!(defined(__VISAGECPP__) && __IBMCPP__ >= 400))
@@ -1481,8 +1500,9 @@ inline bool wxDateTime::SetToLastWeekDay(WeekDay weekday,
     return SetToWeekDay(weekday, -1, month, year);
 }
 
-inline wxDateTime wxDateTime::GetWeekDayInSameWeek(WeekDay weekday,
-                                                   WeekFlags flags) const
+inline wxDateTime
+wxDateTime::GetWeekDayInSameWeek(WeekDay weekday,
+                                 WeekFlags WXUNUSED(flags)) const
 {
     MODIFY_AND_RETURN( SetToWeekDayInSameWeek(weekday) );
 }
@@ -1516,15 +1536,6 @@ inline wxDateTime wxDateTime::GetLastWeekDay(WeekDay weekday,
     return dt.SetToLastWeekDay(weekday, month, year) ? dt : wxInvalidDateTime;
 }
 
-inline wxDateTime wxDateTime::GetWeek(wxDateTime_t numWeek,
-                                      WeekDay weekday,
-                                      WeekFlags flags) const
-{
-    wxDateTime dt(*this);
-
-    return dt.SetToTheWeek(numWeek, weekday, flags) ? dt : wxInvalidDateTime;
-}
-
 inline wxDateTime wxDateTime::GetLastMonthDay(Month month, int year) const
 {
     MODIFY_AND_RETURN( SetToLastMonthDay(month, year) );