function calculateDuration(startDate, endDate) {
  const start = new Date(startDate);
  const end = endDate ? new Date(endDate) : new Date();

  const years = end.getFullYear() - start.getFullYear();
  const months = end.getMonth() - start.getMonth();

  let totalMonths = years * 12 + months;
  if (end.getDate() < start.getDate()) {
    totalMonths--;
  }

  const finalYears = Math.floor(totalMonths / 12);
  const finalMonths = totalMonths % 12;

  let duration = "";
  if (finalYears > 0) {
    duration += `${finalYears} year${finalYears > 1 ? "s" : ""}`;
  }
  if (finalMonths > 0) {
    if (duration) duration += " ";
    duration += `${finalMonths} month${finalMonths > 1 ? "s" : ""}`;
  }
  return duration;
}

function formatDateRange(startDate, endDate) {
  const start = new Date(startDate);
  const end = endDate ? new Date(endDate) : new Date();

  const formatDate = (date) => {
    return date.toLocaleDateString("en-US", {
      month: "short",
      year: "numeric",
    });
  };

  const duration = calculateDuration(startDate, endDate);
  return `${formatDate(start)} - ${endDate ? formatDate(end) : "Present"} · ${duration}`;
}
