Browse Source

LibCore: Add a primitive comparison function to DateTime

This should go away when we get the ability to parse strings to
DateTime's.
AnotherTest 5 years ago
parent
commit
d051fffe25
2 changed files with 10 additions and 0 deletions
  1. 6 0
      Libraries/LibCore/DateTime.cpp
  2. 4 0
      Libraries/LibCore/DateTime.h

+ 6 - 0
Libraries/LibCore/DateTime.cpp

@@ -280,6 +280,12 @@ String DateTime::to_string(const String& format) const
     return builder.build();
 }
 
+bool DateTime::is_before(const String& other) const
+{
+    auto now_string = String::format("%04d%02d%02d%02d%02d%02dZ", year(), month(), weekday(), hour(), minute(), second());
+    return __builtin_strcasecmp(now_string.characters(), other.characters()) < 0;
+}
+
 const LogStream& operator<<(const LogStream& stream, const DateTime& value)
 {
     return stream << value.to_string();

+ 4 - 0
Libraries/LibCore/DateTime.h

@@ -54,6 +54,10 @@ public:
     static DateTime now();
     static DateTime from_timestamp(time_t);
 
+    // FIXME: This should be replaced with a proper comparison
+    //        operator when we get the equivalent of strptime
+    bool is_before(const String&) const;
+
 private:
     time_t m_timestamp { 0 };
     unsigned m_year { 0 };