blob: cbd3c36d4472734f3d957b30694d8c38b557b0af [file] [log] [blame]
jaepark27362762016-08-11 13:10:39 -07001// 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
dsinclair114e46a2016-09-29 17:18:21 -07007#ifndef FPDFSDK_CPDFSDK_DATETIME_H_
8#define FPDFSDK_CPDFSDK_DATETIME_H_
jaepark27362762016-08-11 13:10:39 -07009
Dan Sinclair698aed72017-09-26 16:24:49 -040010#if _FX_OS_ == _FX_OS_ANDROID_
Dan Sinclair85c8e7f2016-11-21 13:50:32 -050011#include <time.h>
jaepark27362762016-08-11 13:10:39 -070012#else
13#include <ctime>
14#endif
15
16#include "fpdfsdk/cfx_systemhandler.h"
17
18class CPDFSDK_DateTime {
19 public:
20 CPDFSDK_DateTime();
Ryan Harrison275e2602017-09-18 14:23:18 -040021 explicit CPDFSDK_DateTime(const ByteString& dtStr);
jaepark27362762016-08-11 13:10:39 -070022 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
Ryan Harrison275e2602017-09-18 14:23:18 -040028 CPDFSDK_DateTime& FromPDFDateTimeString(const ByteString& dtStr);
29 ByteString ToCommonDateTimeString();
30 ByteString ToPDFDateTimeString();
jaepark27362762016-08-11 13:10:39 -070031 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);
jaepark27362762016-08-11 13:10:39 -070036 void ResetDateTime();
37
38 private:
tsepezb31ca712016-09-13 18:10:13 -070039 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;
jaepark27362762016-08-11 13:10:39 -070047};
48
dsinclair114e46a2016-09-29 17:18:21 -070049#endif // FPDFSDK_CPDFSDK_DATETIME_H_