function [ diaIpos, diaFpos ] = getTestDate_WithLen (D1, diaIstr, quantos, showError)
%
  diaIpos = -1;
  diaFpos = -1;
  qtDate = D1.QtDate;
  
  if quantos <= 0
    fprintf("***** Erro: O número de dias tem de ser maior do que '0'\n");
    return
  end

  diaInum = datenum(diaIstr);
  if or(diaInum < D1.Date1, diaInum > D1.Date2)
    fprintf("A data '%s' está fora dos limites dos dados.\n", diaIstr);
    return
  end
  
  if (quantos <= 0)
    fprintf("***** Erro: 'quantos' tem de ser um número positivo\n");
    diaFpos = -1;
    return
  end
  %fprintf("diaIstr: %s ; quantos: %d\n", diaIstr, quantos)
  
  diaInum = datenum(diaIstr);
  %fprintf("diaIstr: %s ; diaInum: %d\n", diaIstr, diaInum);

  diaIpos = find(D1.nDate == diaInum);
  while (isempty(diaIpos))
    diaInum = diaInum + 1;
    diaIpos = find(D1.nDate == diaInum);
  end
  if diaInum < D1.nDate(1)
    diaInum = D1.nDate(2)
    diaIpos = 2;
  end
  %fprintf("diaIstr: %s ; diaInum: %d ; diaIpos: %d\n", diaIstr, diaInum, diaIpos);
  
  diaFpos = diaIpos + quantos - 1;
  %fprintf("1. diaIpos: %d ; diaFpos: %d ; qtDate: %d\n", diaIpos, diaFpos, qtDate)
  if diaFpos > qtDate
    diaFpos = qtDate;
  end
  %fprintf("2. diaIpos: %d ; diaFpos: %d ; qtDate: %d\n", diaIpos, diaFpos, qtDate)
  
end
