فهرست منبع

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 سال پیش
والد
کامیت
d051fffe25
2فایلهای تغییر یافته به همراه10 افزوده شده و 0 حذف شده
  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();
     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)
 const LogStream& operator<<(const LogStream& stream, const DateTime& value)
 {
 {
     return stream << value.to_string();
     return stream << value.to_string();

+ 4 - 0
Libraries/LibCore/DateTime.h

@@ -54,6 +54,10 @@ public:
     static DateTime now();
     static DateTime now();
     static DateTime from_timestamp(time_t);
     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:
 private:
     time_t m_timestamp { 0 };
     time_t m_timestamp { 0 };
     unsigned m_year { 0 };
     unsigned m_year { 0 };