### Bookstore

 Computer Math and Games in Pascal (preview) Lazarus Handbook

### Author Topic: Calculating hours  (Read 2095 times)

#### Tirans

• New member
• Posts: 9
##### Calculating hours
« on: June 09, 2021, 11:18:23 am »
Hello, i cant seem to figure out how to calculate hours for a specific person. Does anyone have any ideas or tips on how should i tackle this problem?

Code: Pascal  [Select][+][-]
1. procedure TForm1.FormCreate(Sender: TObject);
2. const
3.   mask = 'mm/dd/yyyy"," hh:nn:ss AM/PM';
4.   lekcijas = 7;
5. var
6.   Lines, list: TStringList;
7.   s: string;
8.   i: integer;
9.   d, atnaca, aizgaja: TDateTime;
10.   fs: TformatSettings;
11.
12. begin
13.   Lines := TStringList.Create;
15.   list := TStringList.Create;
16.   setLength(Fails, Lines.Count);
17.
18.   list.delimiter := ';';
19.   list.strictdelimiter := True;
20.
21.   for i := 1 to High(Fails) do
22.   begin
23.     list.DelimitedText := Lines[i];
24.     with Fails[i] do
25.
26.     begin
27.       Vards := list[0];
28.       if pos('(', Vards) > 0 then
29.         Vards := leftstr(Vards, pos('(', Vards) - 2);
30.       if (combobox1.items.indexof(Vards) < 0) then
32.       Darbiba := not (list[1] = 'Left');
33.
34.       s := list[2];
35.       fs := DefaultFormatSettings;
36.       fs.DateSeparator := '/';
37.       laiks := ScanDateTime(mask, s, fs);
38.     end;
39.   end;
40.

I have managed to get the time read in the memory correctly and that works all fine, but now i need to figure out how would i calculate total hours for a person https://gyazo.com/48797ac202108236a0cd012fd1e178e1 The file that is read in looks like this and it has joined/left for every person in each day that the meeting took place. Any advice would be appriciated.

#### paweld

• Sr. Member
• Posts: 289
##### Re: Calculating hours
« Reply #1 on: June 09, 2021, 11:58:47 am »
HoursBetween function in DateUtils unit
Best regards
paweld

#### winni

• Hero Member
• Posts: 2487
##### Re: Calculating hours
« Reply #2 on: June 09, 2021, 12:53:41 pm »
Hi!

Code: Pascal  [Select][+][-]
1. var StartDate, EndDate : TDateTime;
2. hours : single;
3.
4. hours := (EndDate-StartDate) / 24;
5.
6.
done

Winni

#### wp

• Hero Member
• Posts: 8559
##### Re: Calculating hours
« Reply #3 on: June 09, 2021, 01:25:01 pm »
Code: Pascal  [Select][+][-]
1. var StartDate, EndDate : TDateTime;
2. hours : single;
3.
4. hours := (EndDate-StartDate) / 24;
done
No: times 24: hours := (EndDate-StartDate) * 24;
« Last Edit: June 09, 2021, 02:54:37 pm by wp »
Mainly Lazarus trunk / fpc 3.2.0 / all 32-bit on Win-10, but many more...