Czas do zachodu słońca

0

Witam,
Na początku powiem, że to dopiero początki mojego programowania i przydałaby mi się mała pomoc, a więc...
Chciałbym zrobić program w którym samemu wpisuję się godzinę zachodu słońca a następnie aby tę godzinę odjęło od aktualnego czasu i odliczało aż do zera a potem wyświetliło komunikat. Program zapewne banalny, ale po ponad godzinie męczenia i przynajmniej jeszcze jednej szukania podobnych tematów postanowiłem że raczej nie dam rady i dlatego piszę. Jeśli ktoś mógłby pomóc byłbym wdzięczny, szybka instrukcja/podpowiedź powinna wystarczyć ;)

usunięcie prefiksu z tematu - fp

0

Reakcja na Timer

delta:=Floor(DateTimePicker1.Time)-Floor(Now);
if delta<0 then delta:=1-delta;
msDelta:=Round(delta*24*60*60*1000);
if msDelta<100 then
begin
  DateTimePicker1.Time:=delta;
  Timer1.Interval:=200;
end
else Timer1.Interval:=Round(0.9*msDelta);
0

A dlaczego by nie wyliczyć zachodu słońca? ;-) /to nie będzie takie trywialne, ale większa satysfakcja.../

0

Z chęcią, ale to początki... więc rozumiesz, raczej nie dam rady :C

0

więc kłania się hello world i jakiś poradnik, a nie spam na forum.

0

Wystarczyło trochę pomyśleć i pogooglowac. Masz przykład na zachętę. Pobieranie czasu z komponentów. A także sprawdzanie błędów. Ewentualnie operowanie na pełnych datach wraz z czasem, a nie na samym czasie. To już zrób sobie sam. A temat przenoszę do Newbie, bo dotyczy banalnych podstaw. Wszystko na temat elementów modułu DateUtils, a także zmiennych typu TDate, TDateTime oraz TTime w Delphi - bez problemów można znaleźć w google. Trzeba tylko użyć swojego TBrain. A na forum pisać, kiedy się będzie miało konretne problemy i wcześniej samodzielnie się chociaż spróbuje coś zrobić. To teraz pora na wykazanie się chęcią do samodzielnej nauki na podstawie tego małęgo przykładu.

//...
uses
  DateUtils;

var
  TimeSunset : TTime;

procedure TForm1.FormCreate(Sender : TObject);
begin
  Timer.Enabled := False;
  Timer.Interval := 1000;
  Application.Title := Caption;
end;

procedure TForm1.Button1Click(Sender : TObject);
var
  TimeNow : TTime;
begin
  TimeNow := Time;
  TimeSunset := EncodeTime(20, 21, 0, 0);
  TimeSunset := TimeNow - TimeSunset;
  Timer.Enabled := True;
end;

procedure TForm1.TimerTimer(Sender : TObject);
begin
  TimeSunset := IncSecond(TimeSunset, -1);
  Caption := TimeToStr(TimeSunset);
  if SecondOf(TimeSunset) = 0 then
  begin
    Timer.Enabled := False;
    ShowMessage('Use your TBrain or die!');
  end;
end;
//...

1 użytkowników online, w tym zalogowanych: 0, gości: 1