1 // Copyright 2016 PDFium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 6 7 #ifndef FPDFSDK_CPDFSDK_DATETIME_H_ 8 #define FPDFSDK_CPDFSDK_DATETIME_H_ 9 10 #if _FX_OS_ == _FX_OS_ANDROID_ 11 #include <time.h> 12 #else 13 #include <ctime> 14 #endif 15 16 #include "fpdfsdk/cfx_systemhandler.h" 17 18 class CPDFSDK_DateTime { 19 public: 20 CPDFSDK_DateTime(); 21 explicit CPDFSDK_DateTime(const ByteString& dtStr); 22 explicit CPDFSDK_DateTime(const FX_SYSTEMTIME& st); 23 CPDFSDK_DateTime(const CPDFSDK_DateTime& datetime); 24 25 bool operator==(const CPDFSDK_DateTime& datetime) const; 26 bool operator!=(const CPDFSDK_DateTime& datetime) const; 27 28 CPDFSDK_DateTime& FromPDFDateTimeString(const ByteString& dtStr); 29 ByteString ToCommonDateTimeString(); 30 ByteString ToPDFDateTimeString(); 31 void ToSystemTime(FX_SYSTEMTIME& st); 32 time_t ToTime_t() const; 33 CPDFSDK_DateTime ToGMT() const; 34 CPDFSDK_DateTime& AddDays(short days); 35 CPDFSDK_DateTime& AddSeconds(int seconds); 36 void ResetDateTime(); 37 38 private: 39 int16_t m_year; 40 uint8_t m_month; 41 uint8_t m_day; 42 uint8_t m_hour; 43 uint8_t m_minute; 44 uint8_t m_second; 45 int8_t m_tzHour; 46 uint8_t m_tzMinute; 47 }; 48 49 #endif // FPDFSDK_CPDFSDK_DATETIME_H_ 50