Funkcja datetime StrToTime() konwertuje tekst, zawierający datę i/lub czas w formacie "yyyy.mm.dd hh:mi", do wartości daty i czasu typu datetime . Więcej informacji można znaleźć w specyfikacji MQL4.
#property strict
void OnStart()
{
string A = "2010.01.01 12:00";
//--- przekształcić wartość tekstową do wartości typu datetime
datetime AA = StrToTime(A);
//--- sprawdzić czy wybrana data znajduje się w przyszłości czy w przeszłości
if(AA > TimeCurrent())
Print("Wybrany czas ",A," znajduje się w przyszłości. Teraz jest ",TimeToString(TimeCurrent()));
if(AA < TimeCurrent())
Print("Wybrany czas ",A," znajduje się w przeszłości. Teraz jest ",TimeToString(TimeCurrent()));
}
Rys. 1. Przykład stosowania funkcji StrToTime().
Jeśli wartość tekstową zapisać jako "yyyy.mm.dd", wtedy godzina i minuta "hh:mi" zostaną potraktowane jako 00:00 (rys. 2, przykład 2). Jeśli zapisać tylko "hh:mi", wtedy to będzie godzina i minuta dnia dziesiejszego (rys. 2, przykład 3).
#property strict
void OnStart()
{
string DateTimeValue = "2010.01.01 12:00";
string DateValue = "2010.01.01";
string TimeValue = "12:00";
//--- przekształcić wartości tekstowe do wartości typu datetime
datetime DTV = StrToTime(DateTimeValue);
datetime DV = StrToTime(DateValue); // godzina i minuta = 00:00
datetime TV = StrToTime(TimeValue); // data = dzisiejszy dzień
//--- wyświetlić wartości
Print("1) Data i czas (DTV) = ",TimeToString(DTV,TIME_DATE|TIME_MINUTES));
Print("2) Data i czas (DV) = ", TimeToString(DV, TIME_DATE|TIME_MINUTES));
Print("3) Data i czas (TV) = ", TimeToString(TV, TIME_DATE|TIME_MINUTES));
}
Rys. 2. Przykłady stosowania funkcji StrToTime().
Zamiast StrToTime() zalecane jest stosowanie funkcji StringToTime() . Zobacz lekcję 7.3. Konwersja za pomocą funkcji.