70 lines
2 KiB
MQL5
70 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);
|
||
|
}
|
||
|
//+------------------------------------------------------------------+
|