Program powinien sprawdzać w określonych odstępach czasu aktualną godzinę i porównywać ją z zadaną godziną. Może to robić w zdarzeniu
OnTimer obiektu
Timer w odstępach minutowych. Samo sprawdzanie godziny może okazać się niewystarczające, dlatego należałoby sprawdzać godzinę i minutę, zakładając, że program ma to robić z dokładnością do minuty:
- Kod: Zaznacz cały
int hour = 10; int min = 45; void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
SYSTEMTIME sTime;
GetLocalTime(&sTime); if(sTime.wHour >= hour)
{
if(sTime.wMinute >= min)
{
}
}
}
Jeżeli tych czasów ma być więcej, to należy je gdzieś umieszczać, można zapamiętywać w pliku i wczytywać do listy typu
TStringList, potem z wykorzystaniem pętli porównywać wszystkie zapisy w zdarzeniu
OnTimer. Zapis godziny w pliku musi być zawsze tak samo formatowany, przykład z wypełnioną listą:
- Kod: Zaznacz cały
TStrings *timeList = new TStringList;
timeList->Add("19:18");
timeList->Add("11:15");
timeList->Add("13:5");
timeList->Add("20:25");
SYSTEMTIME sTime;
GetLocalTime(&sTime);
for(int i = 0; i < timeList->Count; i++)
{
String hTekst = timeList->Strings[i];
int p = hTekst.Pos(":");
int hour = (hTekst.SubString(0, p - 1)).ToInt();
int min = (hTekst.SubString(p + 1, 2)).ToInt();
if(sTime.wHour == hour)
{
if(sTime.wMinute == min)
{
}
}
}
}
To tyle jeżeli chodzi o sprawdzanie czasu, gdyż zadanie wymaga jeszcze opracowania funkcji, która będzie o określonym czasie wykonywać określone zadanie. Zadanie również powinno być przechowywane w pliku obok godziny i wykonywane przez funkcję. Funkcja wykona tylko zadania pre-definiowane w programie, czyli program musi mieć zaprogramowane zadania do wykonania. No ale przecież to Ty piszesz ten program nie ja. Na pytanie odnośnie czasu już odpowiedziałem.