Avatar billede juzas Mester
02. juli 2013 - 16:05 Der er 12 kommentarer

Sidst logget in??? :/

Nogle som ved hvordan dette kan laves/regnes ud?

Når jeg starter mit program gemmer den en fil hvor disse data bliver gemt:

Label1 = Sekunder
Label2 = Minutter
Label3 = Timer

Label4 = Dag
Label5 = Månede
Label6 = År
disse dataer bliver overførst til en memo, og gemt.

>Eksempel: 12:59:15 12/6-2013< Gemmes i filen når programmet lukkes.

- Hvordan kan jeg så lave et regnestykker som viser hvor mange sekunder siden det er sidst jeg var online?
Avatar billede martinlind Nybegynder
02. juli 2013 - 17:46 #1
prøv at kig på daysbetween(); findes i datetime unit'en
Avatar billede juzas Mester
02. juli 2013 - 19:55 #2
Har fundet dette.

procedure TForm1.Timer1Timer(Sender: TObject);
var
  fromdate, toDate : TDateTime;

begin
  // Set up our date variables
  fromDate := EncodeDateTime(2000, 02, 26, 10, 0, 0, 0);
  toDate  := EncodeDateTime(2000, 02, 29,  9, 0, 0, 0);

  // Display these dates and the days between them
  ShowMessage('From date = '+DateTimeToStr(fromDate));
  ShowMessage('To  date = '+DateTimeToStr(toDate));
  ShowMessage('Whole days difference = '+
              IntToStr(DaysBetween(toDate, fromDate))+' days');
end;

Men den kommer med en fejl i "EncodeDateTime", så har prøvet at indsæt:
function DaysBetween ( const ToDate, FromDate  : TDateTime ) : Integer;

under "type", men det gider den ikke. :/
Avatar billede juzas Mester
02. juli 2013 - 23:01 #3
Så fik jeg det næsten til at virker mangler kun at få min label1 ind i EncodeDateTime("Label1.Caption"); hvordan får jeg det? :)
Avatar billede MADOlsen Forsker
03. juli 2013 - 09:34 #4
Det er vel bare:

EncodeDateTime(StrToInt(LabelYear.Caption),
                                  StrToInt(LabelMonth.Caption),
                                  StrToInt(LabelDay.Caption),
                                  StrToInt(LabelHours.Caption),
                                  StrToInt(LabelMins.Caption),
                                  StrToInt(LabelSecs.Caption),
                                  0);

Hvor LabelYear er den label hvor årstallet står osv.
Der er dog ingen fejlhåndtering, så står der bare et enkelt "ikke-tal" i en af de 6 labels, så får du en exception.
Avatar billede juzas Mester
03. juli 2013 - 12:45 #5
Det vil side den ser sådan ud?:
fromDate := EncodeDateTime(StrToInt(Label1.Caption);

men det virker heller ik :/
Avatar billede juzas Mester
03. juli 2013 - 13:16 #6
Så fandt jeg ud af det, men hvordan omregner man det hele til sekunder+ :( Den kan kun skrive dage jo...
Avatar billede kroning Nybegynder
03. juli 2013 - 13:25 #7
Hint: Der er 24 timer i et døgn, 60 minutter i en time og 60 sekunder i et minut.
Avatar billede MADOlsen Forsker
03. juli 2013 - 13:32 #8
#7 Og hvis man ikke gider tænke for meget over det, kan antal sekunder mellem 2 TDateTime findes med SecondsBetween :-)
Avatar billede juzas Mester
03. juli 2013 - 17:20 #9
Har du en kode til det? :)
Avatar billede juzas Mester
03. juli 2013 - 17:33 #10
Har fundet ud af det. :)

"SecondSpan" skulle codes ind :)
Avatar billede juzas Mester
03. juli 2013 - 17:33 #11
Skriv en kommentar med "Svar (til løsninger og pointgivning)" så jeg kan give jer point :)
Avatar billede MADOlsen Forsker
04. juli 2013 - 07:20 #12
Jeg er glad for, at du fik det til at virke :-)
Hvis du kunne bruge mine kommentarer til noget, er her et svar.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester