]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/_datetime.i
update from herbert breunung
[wxWidgets.git] / wxPython / src / _datetime.i
index 197eeafe046124e7b2009dd057f416bc3fa6b8fb..e1d03a945bc7136e4375ab245e93a7cb9fdbbb01 100644 (file)
@@ -366,7 +366,7 @@ public:
     DocDeclAStr(
         static void, GetAmPmStrings(wxString *OUTPUT, wxString *OUTPUT),
         "GetAmPmStrings() -> (am, pm)",
-        "Get the AM and PM strings in the current locale (may be empty)");
+        "Get the AM and PM strings in the current locale (may be empty)", "");
 
         // return True if the given country uses DST for this year
     static bool IsDSTApplicable(int year = Inv_Year,
@@ -713,12 +713,39 @@ public:
         wxDateTime __sub__(const wxTimeSpan& other) { return *self - other; }
         wxDateTime __sub__(const wxDateSpan& other) { return *self - other; }
 
-        bool __lt__(const wxDateTime* other) { return other ? (*self <  *other) : False; }
-        bool __le__(const wxDateTime* other) { return other ? (*self <= *other) : False; }
-        bool __gt__(const wxDateTime* other) { return other ? (*self >  *other) : True;  }
-        bool __ge__(const wxDateTime* other) { return other ? (*self >= *other) : True;  }
-        bool __eq__(const wxDateTime* other) { return other ? (*self == *other) : False; }
-        bool __ne__(const wxDateTime* other) { return other ? (*self != *other) : True;  }
+//         bool __lt__(const wxDateTime* other) { return other ? (*self <  *other) : False; }
+//         bool __le__(const wxDateTime* other) { return other ? (*self <= *other) : False; }
+//         bool __gt__(const wxDateTime* other) { return other ? (*self >  *other) : True;  }
+//         bool __ge__(const wxDateTime* other) { return other ? (*self >= *other) : True;  }
+
+
+        // These fall back to just comparing pointers if other is NULL, or if
+        // either operand is invalid.
+        bool __lt__(const wxDateTime* other) { 
+            if (!other || !self->IsValid() || !other->IsValid()) return self <  other; 
+            return (*self <  *other);
+        }
+        bool __le__(const wxDateTime* other) { 
+            if (!other || !self->IsValid() || !other->IsValid()) return self <= other; 
+            return (*self <= *other);
+        }
+        bool __gt__(const wxDateTime* other) { 
+            if (!other || !self->IsValid() || !other->IsValid()) return self >  other; 
+            return (*self >  *other);
+        }
+        bool __ge__(const wxDateTime* other) { 
+            if (!other || !self->IsValid() || !other->IsValid()) return self >= other; 
+            return (*self >= *other);
+        }
+
+        bool __eq__(const wxDateTime* other) {
+            if (!other || !self->IsValid() || !other->IsValid()) return self == other; 
+            return (*self == *other);
+        }
+        bool __ne__(const wxDateTime* other) {
+            if (!other || !self->IsValid() || !other->IsValid()) return self != other; 
+            return (*self != *other);
+        }            
     }