How to create an array of days starting with today and going back the last 30 days in Pascal

1 Answer

0 votes
program Last30Days;

uses SysUtils, DateUtils; // Include DateUtils for the DayOf function

procedure GetLast30Days(var days: array of Integer);
var
  i: Integer;
  today: TDateTime;
  pastDate: TDateTime;
begin
  today := Now; // Get the current date and time
  for i := 0 to High(days) do
  begin
    pastDate := today - i; // Subtract 'i' days from today's date
    days[i] := DayOf(pastDate); // Use DayOf to extract the day of the month
  end;
end;

var
  days: array[0..29] of Integer; // Array to store the last 30 days
  i: Integer;
begin
  // Get the last 30 days
  GetLast30Days(days);

  Write('Days: [');
  for i := 0 to High(days) do
  begin
    Write(days[i]);
    if i < High(days) then
      Write(', ');
  end;
  WriteLn(']');
end.



(*
run:

Days: [10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12]

*)

 



answered Apr 10, 2025 by avibootz
...