Time Shield Library
C++ library for working with time
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_ENUMS_MQH__
8#define __TIME_SHIELD_ENUMS_MQH__
9
15
16#property copyright "Copyright 2025, NewYaroslav"
17#property link "https://github.com/NewYaroslav/time-shield-cpp"
18#property strict
19
20namespace time_shield {
21
24
27 UPPERCASE_NAME = 0,
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
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
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
199
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_ENUMS_MQH__
string to_timezone_str(TimeZone value, FormatType format=UPPERCASE_NAME)
Converts a TimeZone enum value to a string.
Definition enums.mqh:154
string to_weekday_str(Weekday value, FormatType format=UPPERCASE_NAME)
Converts a Weekday enum value to a string.
Definition enums.mqh:48
string to_month_str(Month value, FormatType format=UPPERCASE_NAME)
Converts a Month enum value to a string.
Definition enums.mqh:91
@ SHORT_NAME
Short name.
Definition enums.hpp:21
@ FULL_NAME
Full name.
Definition enums.hpp:22
@ UPPERCASE_NAME
Uppercase short name.
Definition enums.hpp:20
const std::string & to_str(Weekday value, FormatType format=UPPERCASE_NAME)
Converts a Weekday enum value to a string.
Definition enums.hpp:70
@ FULL_MOON
Full Moon.
Definition enums.hpp:289
@ NEW_MOON
New Moon.
Definition enums.hpp:293
@ WAXING_GIBBOUS
Waxing Gibbous Moon.
Definition enums.hpp:288
@ FIRST_QUARTER
First Quarter Moon.
Definition enums.hpp:287
@ WANING_CRESCENT
Waning Crescent Moon.
Definition enums.hpp:292
@ WAXING_CRESCENT
Waxing Crescent Moon.
Definition enums.hpp:286
@ LAST_QUARTER
Last Quarter Moon.
Definition enums.hpp:291
@ WANING_GIBBOUS
Waning Gibbous Moon.
Definition enums.hpp:290
@ EUROPEAN_TIME
European time format (e.g., "12:30").
Definition enums.hpp:307
@ ISO8601_NO_TZ
ISO8601 format without time zone (e.g., "2024-06-06T12:30:45").
Definition enums.hpp:300
@ AMERICAN_MONTH_DAY
American date format (e.g., "06/06/2024").
Definition enums.hpp:304
@ ISO8601_WITH_TZ
ISO8601 format with time zone (e.g., "2024-06-06T12:30:45+03:00").
Definition enums.hpp:299
@ MQL5_FULL
MQL5 time format (e.g., "2024.06.06 12:30:45").
Definition enums.hpp:301
@ MQL5_DATE_ONLY
MQL5 date format (e.g., "2024.06.06").
Definition enums.hpp:302
@ MQL5_TIME_ONLY
MQL5 time format (e.g., "12:30:45").
Definition enums.hpp:303
@ AMERICAN_TIME
American time format (e.g., "12:30 PM").
Definition enums.hpp:306
@ EUROPEAN_MONTH_DAY
European date format (e.g., "06.06.2024").
Definition enums.hpp:305
@ SEP
September.
Definition enums.hpp:102
@ OCT
October.
Definition enums.hpp:103
@ FEB
February.
Definition enums.hpp:95
@ JUN
June.
Definition enums.hpp:99
@ MAY
May.
Definition enums.hpp:98
@ NOV
November.
Definition enums.hpp:104
@ MAR
March.
Definition enums.hpp:96
@ AUG
August.
Definition enums.hpp:101
@ DEC
December.
Definition enums.hpp:105
@ APR
April.
Definition enums.hpp:97
@ JAN
January.
Definition enums.hpp:94
@ JUL
July.
Definition enums.hpp:100
@ JST
Japan Standard Time.
Definition enums.hpp:200
@ GST
Gulf Standard Time.
Definition enums.hpp:198
@ PHT
Philippine Time.
Definition enums.hpp:197
@ BYT
Belarus Time.
Definition enums.hpp:194
@ KST
Korea Standard Time.
Definition enums.hpp:201
@ ET
US Eastern Time.
Definition enums.hpp:185
@ EET
Eastern European Time.
Definition enums.hpp:179
@ CEST
Central European Summer Time.
Definition enums.hpp:183
@ WIT
Eastern Indonesia Time.
Definition enums.hpp:191
@ WEST
Western European Summer Time.
Definition enums.hpp:184
@ WITA
Central Indonesia Time.
Definition enums.hpp:190
@ MYT
Malaysia Time.
Definition enums.hpp:188
@ HKT
Hong Kong Time.
Definition enums.hpp:199
@ WET
Western European Time.
Definition enums.hpp:181
@ KZT
Kazakhstan Time.
Definition enums.hpp:192
@ UNKNOWN
Unknown Time Zone.
Definition enums.hpp:202
@ TRT
Turkey Time.
Definition enums.hpp:193
@ UTC
Coordinated Universal Time.
Definition enums.hpp:178
@ ICT
Indochina Time.
Definition enums.hpp:196
@ GMT
Greenwich Mean Time.
Definition enums.hpp:177
@ SGT
Singapore Time.
Definition enums.hpp:195
@ WIB
Western Indonesia Time.
Definition enums.hpp:189
@ EEST
Eastern European Summer Time.
Definition enums.hpp:182
@ CT
US Central Time.
Definition enums.hpp:186
@ CET
Central European Time.
Definition enums.hpp:180
@ IST
India Standard Time.
Definition enums.hpp:187
@ TUE
Tuesday.
Definition enums.hpp:30
@ SUN
Sunday.
Definition enums.hpp:28
@ MON
Monday.
Definition enums.hpp:29
@ FRI
Friday.
Definition enums.hpp:33
@ SAT
Saturday.
Definition enums.hpp:34
@ THU
Thursday.
Definition enums.hpp:32
@ WED
Wednesday.
Definition enums.hpp:31
Main namespace for the Time Shield library.