blob: 6f6f4039fd3f7938e263220390e9bd04754dd645 [file] [log] [blame]
K. Moon832a6942022-10-31 20:11:31 +00001// Copyright 2018 The PDFium Authors
Tom Sepez86e5fbf2018-11-01 21:21:52 +00002// 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 FXJS_FX_DATE_HELPERS_H_
8#define FXJS_FX_DATE_HELPERS_H_
9
Tom Sepezd105d2e2018-11-02 16:56:37 +000010#include <stddef.h>
11
Tom Sepez1e151c62021-11-22 23:46:09 +000012#include "core/fxcrt/widestring.h"
Tom Sepezd105d2e2018-11-02 16:56:37 +000013
Tom Sepez86e5fbf2018-11-01 21:21:52 +000014namespace fxjs {
15
Tom Sepezf71b5632018-11-07 23:41:52 +000016enum class ConversionStatus { kSuccess = 0, kBadFormat, kBadDate };
17
18extern const wchar_t* const kMonths[12];
19extern const wchar_t* const kFullMonths[12];
20
Tom Sepez86e5fbf2018-11-01 21:21:52 +000021double FX_GetDateTime();
22int FX_GetYearFromTime(double dt);
23int FX_GetMonthFromTime(double dt);
24int FX_GetDayFromTime(double dt);
25int FX_GetHourFromTime(double dt);
26int FX_GetMinFromTime(double dt);
27int FX_GetSecFromTime(double dt);
Tom Sepezf71b5632018-11-07 23:41:52 +000028bool FX_IsValidMonth(int m);
29bool FX_IsValidDay(int d);
30bool FX_IsValid24Hour(int h);
31bool FX_IsValidMinute(int m);
32bool FX_IsValidSecond(int s);
Tom Sepez86e5fbf2018-11-01 21:21:52 +000033double FX_LocalTime(double d);
34double FX_MakeDay(int nYear, int nMonth, int nDay);
35double FX_MakeTime(int nHour, int nMin, int nSec, int nMs);
36double FX_MakeDate(double day, double time);
37
Tom Sepezd105d2e2018-11-02 16:56:37 +000038int FX_ParseStringInteger(const WideString& str,
39 size_t nStart,
40 size_t* pSkip,
41 size_t nMaxStep);
42
Tom Sepezf71b5632018-11-07 23:41:52 +000043ConversionStatus FX_ParseDateUsingFormat(const WideString& value,
44 const WideString& format,
45 double* result);
46
Tom Sepez86e5fbf2018-11-01 21:21:52 +000047} // namespace fxjs
48
49using fxjs::FX_GetDateTime;
Tom Sepez86e5fbf2018-11-01 21:21:52 +000050using fxjs::FX_GetDayFromTime;
51using fxjs::FX_GetHourFromTime;
52using fxjs::FX_GetMinFromTime;
Lei Zhang537d3a62019-12-13 17:39:38 +000053using fxjs::FX_GetMonthFromTime;
Tom Sepez86e5fbf2018-11-01 21:21:52 +000054using fxjs::FX_GetSecFromTime;
Lei Zhang537d3a62019-12-13 17:39:38 +000055using fxjs::FX_GetYearFromTime;
Tom Sepezf71b5632018-11-07 23:41:52 +000056using fxjs::FX_IsValid24Hour;
Lei Zhang537d3a62019-12-13 17:39:38 +000057using fxjs::FX_IsValidDay;
Tom Sepezf71b5632018-11-07 23:41:52 +000058using fxjs::FX_IsValidMinute;
Lei Zhang537d3a62019-12-13 17:39:38 +000059using fxjs::FX_IsValidMonth;
Tom Sepezf71b5632018-11-07 23:41:52 +000060using fxjs::FX_IsValidSecond;
Tom Sepez86e5fbf2018-11-01 21:21:52 +000061using fxjs::FX_LocalTime;
Lei Zhang537d3a62019-12-13 17:39:38 +000062using fxjs::FX_MakeDate;
Tom Sepez86e5fbf2018-11-01 21:21:52 +000063using fxjs::FX_MakeDay;
64using fxjs::FX_MakeTime;
Tom Sepezf71b5632018-11-07 23:41:52 +000065using fxjs::FX_ParseDateUsingFormat;
Lei Zhang537d3a62019-12-13 17:39:38 +000066using fxjs::FX_ParseStringInteger;
Tom Sepez86e5fbf2018-11-01 21:21:52 +000067
68#endif // FXJS_FX_DATE_HELPERS_H_