function DateToLongJulian(Date: TDateTime): String;
var
  Year, Month, Day: Word;
  FirstDay, Today: Longint;
begin
  DecodeDate(Date, Year, Month, Day);
  FirstDay := DateToAbsolute(EncodeDate(Year, 1, 1));
  Today := DateToAbsolute(Date);

  Result := FormatDateTime('yyyy', Date) + FormatFloat('000', Today - FirstDay + 1);
end;