Time Shield Library
C++ library for working with time
Toggle main menu visibility
Loading...
Searching...
No Matches
enums.mqh
Go to the documentation of this file.
1
//+------------------------------------------------------------------+
2
//| enums.mqh |
3
//| Time Shield - MQL5 Enumerations |
4
//| Copyright 2025, NewYaroslav |
5
//| https://github.com/NewYaroslav/time-shield-cpp |
6
//+------------------------------------------------------------------+
7
#ifndef TIME_SHIELD_MQL5_HEADER_TIME_SHIELD_ENUMS_MQH_INCLUDED
8
#define TIME_SHIELD_MQL5_HEADER_TIME_SHIELD_ENUMS_MQH_INCLUDED
9
15
16
#property copyright "Copyright 2025, NewYaroslav"
17
#property link "https://github.com/NewYaroslav/time-shield-cpp"
18
#property strict
19
20
namespace
time_shield
{
21
24
26
enum
FormatType
{
27
UPPERCASE_NAME
= 0,
28
SHORT_NAME
,
29
FULL_NAME
,
30
};
31
33
enum
Weekday
{
34
SUN
= 0,
35
MON
,
36
TUE
,
37
WED
,
38
THU
,
39
FRI
,
40
SAT
41
};
42
48
string
to_weekday_str
(
Weekday
value,
FormatType
format =
UPPERCASE_NAME
) {
49
static
const
string
uppercase_names[] = {
50
"SUN"
,
"MON"
,
"TUE"
,
"WED"
,
"THU"
,
"FRI"
,
"SAT"
51
};
52
static
const
string
short_names[] = {
53
"Sun"
,
"Mon"
,
"Tue"
,
"Wed"
,
"Thu"
,
"Fri"
,
"Sat"
54
};
55
static
const
string
full_names[] = {
56
"Sunday"
,
"Monday"
,
"Tuesday"
,
"Wednesday"
,
"Thursday"
,
"Friday"
,
"Saturday"
57
};
58
switch
(format) {
59
default
:
60
case
UPPERCASE_NAME
:
61
return
uppercase_names[(int)value];
62
case
SHORT_NAME
:
63
return
short_names[(int)value];
64
case
FULL_NAME
:
65
return
full_names[(int)value];
66
}
67
return
""
;
68
}
69
71
enum
Month
{
72
JAN
= 1,
73
FEB
,
74
MAR
,
75
APR
,
76
MAY
,
77
JUN
,
78
JUL
,
79
AUG
,
80
SEP
,
81
OCT
,
82
NOV
,
83
DEC
84
};
85
91
string
to_month_str
(
Month
value,
FormatType
format =
UPPERCASE_NAME
) {
92
static
const
string
uppercase_names[] = {
93
""
,
94
"JAN"
,
"FEB"
,
"MAR"
,
"APR"
,
"MAY"
,
"JUN"
,
95
"JUL"
,
"AUG"
,
"SEP"
,
"OCT"
,
"NOV"
,
"DEC"
96
};
97
static
const
string
short_names[] = {
98
""
,
99
"Jan"
,
"Feb"
,
"Mar"
,
"Apr"
,
"May"
,
"Jun"
,
100
"Jul"
,
"Aug"
,
"Sep"
,
"Oct"
,
"Nov"
,
"Dec"
101
};
102
static
const
string
full_names[] = {
103
""
,
104
"January"
,
"February"
,
"March"
,
"April"
,
"May"
,
"June"
,
105
"July"
,
"August"
,
"September"
,
"October"
,
"November"
,
"December"
106
};
107
switch
(format) {
108
default
:
109
case
UPPERCASE_NAME
:
110
return
uppercase_names[(int)value];
111
case
SHORT_NAME
:
112
return
short_names[(int)value];
113
case
FULL_NAME
:
114
return
full_names[(int)value];
115
}
116
return
""
;
117
}
118
120
enum
TimeZone
{
121
GMT
,
122
UTC
,
123
EET
,
124
CET
,
125
WET
,
126
EEST
,
127
CEST
,
128
WEST
,
129
ET
,
130
CT
,
131
IST
,
132
MYT
,
133
WIB
,
134
WITA
,
135
WIT
,
136
KZT
,
137
TRT
,
138
BYT
,
139
SGT
,
140
ICT
,
141
PHT
,
142
GST
,
143
HKT
,
144
JST
,
145
KST
,
146
UNKNOWN
147
};
148
154
string
to_timezone_str
(
TimeZone
value,
FormatType
format =
UPPERCASE_NAME
) {
155
static
const
string
uppercase_names[] = {
156
"GMT"
,
"UTC"
,
"EET"
,
"CET"
,
"WET"
,
"EEST"
,
"CEST"
,
"WEST"
,
157
"ET"
,
"CT"
,
"IST"
,
"MYT"
,
"WIB"
,
"WITA"
,
"WIT"
,
"KZT"
,
"TRT"
,
158
"BYT"
,
"SGT"
,
"ICT"
,
"PHT"
,
"GST"
,
"HKT"
,
"JST"
,
"KST"
,
"UNKNOWN"
159
};
160
static
const
string
short_names[] = {
161
"GMT"
,
"UTC"
,
"EET"
,
"CET"
,
"WET"
,
"EEST"
,
"CEST"
,
"WEST"
,
162
"ET"
,
"CT"
,
"IST"
,
"MYT"
,
"WIB"
,
"WITA"
,
"WIT"
,
"KZT"
,
"TRT"
,
163
"BYT"
,
"SGT"
,
"ICT"
,
"PHT"
,
"GST"
,
"HKT"
,
"JST"
,
"KST"
,
"Unknown"
164
};
165
static
const
string
full_names[] = {
166
"Greenwich Mean Time"
,
"Coordinated Universal Time"
,
"Eastern European Time"
,
167
"Central European Time"
,
"Western European Time"
,
"Eastern European Summer Time"
,
168
"Central European Summer Time"
,
"Western European Summer Time"
,
169
"US Eastern Time"
,
"US Central Time"
,
"India Standard Time"
,
170
"Malaysia Time"
,
"Western Indonesia Time"
,
"Central Indonesia Time"
,
171
"Eastern Indonesia Time"
,
"Kazakhstan Time"
,
"Turkey Time"
,
172
"Belarus Time"
,
"Singapore Time"
,
"Indochina Time"
,
173
"Philippine Time"
,
"Gulf Standard Time"
,
"Hong Kong Time"
,
174
"Japan Standard Time"
,
"Korea Standard Time"
,
"Unknown Time Zone"
175
};
176
switch
(format) {
177
default
:
178
case
UPPERCASE_NAME
:
179
return
uppercase_names[(int)value];
180
case
SHORT_NAME
:
181
return
short_names[(int)value];
182
case
FULL_NAME
:
183
return
full_names[(int)value];
184
}
185
return
""
;
186
}
187
189
enum
MoonPhase
{
190
WAXING_CRESCENT
,
191
FIRST_QUARTER
,
192
WAXING_GIBBOUS
,
193
FULL_MOON
,
194
WANING_GIBBOUS
,
195
LAST_QUARTER
,
196
WANING_CRESCENT
,
197
NEW_MOON
198
};
199
201
enum
TimeFormatType
{
202
ISO8601_WITH_TZ
,
203
ISO8601_NO_TZ
,
204
MQL5_FULL
,
205
MQL5_DATE_ONLY
,
206
MQL5_TIME_ONLY
,
207
AMERICAN_MONTH_DAY
,
208
EUROPEAN_MONTH_DAY
,
209
AMERICAN_TIME
,
210
EUROPEAN_TIME
211
};
212
214
215
string
to_str
(
Weekday
value,
FormatType
format =
UPPERCASE_NAME
) {
216
return
to_weekday_str
(value, format);
217
}
218
219
string
to_str
(
Month
value,
FormatType
format =
UPPERCASE_NAME
) {
220
return
to_month_str
(value, format);
221
}
222
223
string
to_str
(
TimeZone
value,
FormatType
format =
UPPERCASE_NAME
) {
224
return
to_timezone_str
(value, format);
225
}
226
227
};
// namespace time_shield
228
229
#endif
// TIME_SHIELD_MQL5_HEADER_TIME_SHIELD_ENUMS_MQH_INCLUDED
time_shield::to_timezone_str
string to_timezone_str(TimeZone value, FormatType format=UPPERCASE_NAME)
Converts a TimeZone enum value to a string.
Definition
enums.mqh:154
time_shield::to_weekday_str
string to_weekday_str(Weekday value, FormatType format=UPPERCASE_NAME)
Converts a Weekday enum value to a string.
Definition
enums.mqh:48
time_shield::to_month_str
string to_month_str(Month value, FormatType format=UPPERCASE_NAME)
Converts a Month enum value to a string.
Definition
enums.mqh:91
time_shield::SHORT_NAME
@ SHORT_NAME
Short name.
Definition
enums.hpp:21
time_shield::FULL_NAME
@ FULL_NAME
Full name.
Definition
enums.hpp:22
time_shield::UPPERCASE_NAME
@ UPPERCASE_NAME
Uppercase short name.
Definition
enums.hpp:20
time_shield::to_str
const std::string & to_str(Weekday value, FormatType format=UPPERCASE_NAME)
Converts a Weekday enum value to a string.
Definition
enums.hpp:70
time_shield::MoonPhase
MoonPhase
Definition
enums.hpp:285
time_shield::TimeFormatType
TimeFormatType
Definition
enums.hpp:298
time_shield::FormatType
FormatType
Definition
enums.hpp:19
time_shield::Month
Month
Definition
enums.hpp:93
time_shield::TimeZone
TimeZone
Definition
enums.hpp:176
time_shield::Weekday
Weekday
Definition
enums.hpp:27
time_shield::FULL_MOON
@ FULL_MOON
Full Moon.
Definition
enums.hpp:289
time_shield::NEW_MOON
@ NEW_MOON
New Moon.
Definition
enums.hpp:293
time_shield::WAXING_GIBBOUS
@ WAXING_GIBBOUS
Waxing Gibbous Moon.
Definition
enums.hpp:288
time_shield::FIRST_QUARTER
@ FIRST_QUARTER
First Quarter Moon.
Definition
enums.hpp:287
time_shield::WANING_CRESCENT
@ WANING_CRESCENT
Waning Crescent Moon.
Definition
enums.hpp:292
time_shield::WAXING_CRESCENT
@ WAXING_CRESCENT
Waxing Crescent Moon.
Definition
enums.hpp:286
time_shield::LAST_QUARTER
@ LAST_QUARTER
Last Quarter Moon.
Definition
enums.hpp:291
time_shield::WANING_GIBBOUS
@ WANING_GIBBOUS
Waning Gibbous Moon.
Definition
enums.hpp:290
time_shield::EUROPEAN_TIME
@ EUROPEAN_TIME
European time format (e.g., "12:30").
Definition
enums.hpp:307
time_shield::ISO8601_NO_TZ
@ ISO8601_NO_TZ
ISO8601 format without time zone (e.g., "2024-06-06T12:30:45").
Definition
enums.hpp:300
time_shield::AMERICAN_MONTH_DAY
@ AMERICAN_MONTH_DAY
American date format (e.g., "06/06/2024").
Definition
enums.hpp:304
time_shield::ISO8601_WITH_TZ
@ ISO8601_WITH_TZ
ISO8601 format with time zone (e.g., "2024-06-06T12:30:45+03:00").
Definition
enums.hpp:299
time_shield::MQL5_FULL
@ MQL5_FULL
MQL5 time format (e.g., "2024.06.06 12:30:45").
Definition
enums.hpp:301
time_shield::MQL5_DATE_ONLY
@ MQL5_DATE_ONLY
MQL5 date format (e.g., "2024.06.06").
Definition
enums.hpp:302
time_shield::MQL5_TIME_ONLY
@ MQL5_TIME_ONLY
MQL5 time format (e.g., "12:30:45").
Definition
enums.hpp:303
time_shield::AMERICAN_TIME
@ AMERICAN_TIME
American time format (e.g., "12:30 PM").
Definition
enums.hpp:306
time_shield::EUROPEAN_MONTH_DAY
@ EUROPEAN_MONTH_DAY
European date format (e.g., "06.06.2024").
Definition
enums.hpp:305
time_shield::SEP
@ SEP
September.
Definition
enums.hpp:102
time_shield::OCT
@ OCT
October.
Definition
enums.hpp:103
time_shield::FEB
@ FEB
February.
Definition
enums.hpp:95
time_shield::JUN
@ JUN
June.
Definition
enums.hpp:99
time_shield::MAY
@ MAY
May.
Definition
enums.hpp:98
time_shield::NOV
@ NOV
November.
Definition
enums.hpp:104
time_shield::MAR
@ MAR
March.
Definition
enums.hpp:96
time_shield::AUG
@ AUG
August.
Definition
enums.hpp:101
time_shield::DEC
@ DEC
December.
Definition
enums.hpp:105
time_shield::APR
@ APR
April.
Definition
enums.hpp:97
time_shield::JAN
@ JAN
January.
Definition
enums.hpp:94
time_shield::JUL
@ JUL
July.
Definition
enums.hpp:100
time_shield::JST
@ JST
Japan Standard Time.
Definition
enums.hpp:200
time_shield::GST
@ GST
Gulf Standard Time.
Definition
enums.hpp:198
time_shield::PHT
@ PHT
Philippine Time.
Definition
enums.hpp:197
time_shield::BYT
@ BYT
Belarus Time.
Definition
enums.hpp:194
time_shield::KST
@ KST
Korea Standard Time.
Definition
enums.hpp:201
time_shield::ET
@ ET
US Eastern Time.
Definition
enums.hpp:185
time_shield::EET
@ EET
Eastern European Time.
Definition
enums.hpp:179
time_shield::CEST
@ CEST
Central European Summer Time.
Definition
enums.hpp:183
time_shield::WIT
@ WIT
Eastern Indonesia Time.
Definition
enums.hpp:191
time_shield::WEST
@ WEST
Western European Summer Time.
Definition
enums.hpp:184
time_shield::WITA
@ WITA
Central Indonesia Time.
Definition
enums.hpp:190
time_shield::MYT
@ MYT
Malaysia Time.
Definition
enums.hpp:188
time_shield::HKT
@ HKT
Hong Kong Time.
Definition
enums.hpp:199
time_shield::WET
@ WET
Western European Time.
Definition
enums.hpp:181
time_shield::KZT
@ KZT
Kazakhstan Time.
Definition
enums.hpp:192
time_shield::UNKNOWN
@ UNKNOWN
Unknown Time Zone.
Definition
enums.hpp:202
time_shield::TRT
@ TRT
Turkey Time.
Definition
enums.hpp:193
time_shield::UTC
@ UTC
Coordinated Universal Time.
Definition
enums.hpp:178
time_shield::ICT
@ ICT
Indochina Time.
Definition
enums.hpp:196
time_shield::GMT
@ GMT
Greenwich Mean Time.
Definition
enums.hpp:177
time_shield::SGT
@ SGT
Singapore Time.
Definition
enums.hpp:195
time_shield::WIB
@ WIB
Western Indonesia Time.
Definition
enums.hpp:189
time_shield::EEST
@ EEST
Eastern European Summer Time.
Definition
enums.hpp:182
time_shield::CT
@ CT
US Central Time.
Definition
enums.hpp:186
time_shield::CET
@ CET
Central European Time.
Definition
enums.hpp:180
time_shield::IST
@ IST
India Standard Time.
Definition
enums.hpp:187
time_shield::TUE
@ TUE
Tuesday.
Definition
enums.hpp:30
time_shield::SUN
@ SUN
Sunday.
Definition
enums.hpp:28
time_shield::MON
@ MON
Monday.
Definition
enums.hpp:29
time_shield::FRI
@ FRI
Friday.
Definition
enums.hpp:33
time_shield::SAT
@ SAT
Saturday.
Definition
enums.hpp:34
time_shield::THU
@ THU
Thursday.
Definition
enums.hpp:32
time_shield::WED
@ WED
Wednesday.
Definition
enums.hpp:31
time_shield
Main namespace for the Time Shield library.
MQL5
Include
time_shield
enums.mqh
Generated by
1.17.0