Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program Project2;
- {$APPTYPE CONSOLE}
- uses
- SysUtils,
- DateUtils;
- type
- T1 = Record
- time: TDateTime;
- closest: Integer;
- end;
- T2 = Record
- time: TDatetime;
- closest: Integer;
- end;
- const
- N = 9;
- var
- k, i: integer;
- mas1: Array [0..N] of T1;
- mas2: Array [0..N] of T2;
- procedure Fclosest1(var arr1: array of T1; var arr2: array of T2);
- var
- z,j,sec: Integer;
- begin
- z := 0;
- j := 0;
- for z := 0 to Length(arr1) - 1 do
- begin
- sec := 61;
- while (SecondsBetween(arr2[j].time, arr1[z].time) < sec) and (j <= Length(arr2)) do
- begin
- sec := SecondsBetween(arr2[j].time, arr1[z].time);
- inc(j);
- end;
- dec(j);
- if sec < 60 then
- arr1[z].closest := j
- else
- arr1[z].closest := -1;
- end;
- end;
- procedure Fclosest2(var arr1: array of T1; var arr2: array of T2);
- var
- z,j,sec: Integer;
- begin
- z := 0;
- j := 0;
- for z := 0 to Length(arr2) - 1 do
- begin
- sec := 61;
- while (SecondsBetween(arr1[j].time, arr2[z].time) < sec) and (j <= Length(arr1)) do
- begin
- sec := SecondsBetween(arr1[j].time, arr2[z].time);
- inc(j);
- end;
- dec(j);
- if sec < 60 then
- arr2[z].closest := j
- else
- arr2[z].closest := -1;
- end;
- end;
- procedure FillClosest(var arr1: array of T1; var arr2: array of T2);
- begin
- Fclosest1(arr1, arr2);
- Fclosest2(arr1, arr2);
- end;
- begin
- //Randomize;
- WriteLn(#10#13 + 'Now first array:');
- for i := 0 to N do
- begin
- mas1[i].time := IncSecond(Now, i*10);
- mas1[i].closest := -1;
- WriteLn(i, ': ' + DateTimeToStr(mas1[i].time));
- end;
- WriteLn(#10#13 + 'Now second array:');
- for i := 0 to N do
- begin
- mas2[i].time := IncSecond(Now, i*8);
- mas2[i].closest := -1;
- WriteLn(i, ': ' + DateTimeToStr(mas2[i].time));
- end;
- Writeln(#10#13 + 'Really now is:');
- WriteLn(DateTimeToStr(Now) + #10#13);
- Fclosest1(mas1, mas2);
- Fclosest2(mas1, mas2);
- for i := 0 to N do
- begin
- Write(i, ': ' + DateTimeToStr(mas1[i].time),' closest: ', mas1[i].closest);
- WriteLn(' || '+ DateTimeToStr(mas2[i].time),' closest: ', mas2[i].closest)
- end;
- ReadLn;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement