forked from airat77786/MQL5Book
69 lines
2 KiB
MQL5
69 lines
2 KiB
MQL5
//+------------------------------------------------------------------+
| |||
//| ConversionStruct.mq5 |
| |||
//| Copyright 2021, MetaQuotes Ltd. |
| |||
//| https://www.mql5.com |
| |||
//+------------------------------------------------------------------+
| |||
| |||
//+------------------------------------------------------------------+
| |||
//| Date and Time including milliseconds |
| |||
//+------------------------------------------------------------------+
| |||
struct DateTimeMsc
| |||
{
| |||
MqlDateTime mdt;
| |||
int msc;
| |||
DateTimeMsc() : msc(0)
| |||
{
| |||
ZeroMemory(mdt);
| |||
}
| |||
DateTimeMsc(MqlDateTime &init, int m = 0) : msc(m)
| |||
{
| |||
mdt = init;
| |||
}
| |||
};
| |||
| |||
//+------------------------------------------------------------------+
| |||
//| Convert datetime to MqlDateTime |
| |||
//+------------------------------------------------------------------+
| |||
MqlDateTime TimeToStructInplace(datetime dt)
| |||
{
| |||
static MqlDateTime m;
| |||
if(!TimeToStruct(dt, m))
| |||
{
| |||
static MqlDateTime z = {};
| |||
return z;
| |||
}
| |||
return m;
| |||
}
| |||
| |||
#define MDT(T) TimeToStructInplace(T)
| |||
| |||
//+------------------------------------------------------------------+
| |||
//| Script program start function |
| |||
//+------------------------------------------------------------------+
| |||
void OnStart()
| |||
{
| |||
DateTimeMsc test(MDT(D'2021.01.01 10:10:15'), 123);
| |||
uchar a[];
| |||
Print(StructToCharArray(test, a));
| |||
Print(ArraySize(a));
| |||
ArrayPrint(a);
| |||
/*
| |||
outputs (array is reformatted):
| |||
true
| |||
36
| |||
229 7 0 0
| |||
1 0 0 0
| |||
1 0 0 0
| |||
10 0 0 0
| |||
10 0 0 0
| |||
15 0 0 0
| |||
5 0 0 0
| |||
0 0 0 0
| |||
123 0 0 0
| |||
*/
| |||
| |||
DateTimeMsc receiver;
| |||
Print(CharArrayToStruct(receiver, a)); // true
| |||
Print(StructToTime(receiver.mdt), "'", receiver.msc);
| |||
}
| |||
//+------------------------------------------------------------------+
|