function calculateDate(inputDate, sumValue, sumType, outputFormat) {
let date;
// Converter a data de entrada para objeto Date
if (
inputDate.length === 10 &&
inputDate[4] === '-' &&
inputDate[7] === '-' &&
!isNaN(Date.parse(inputDate))
) {
// Formato US: YYYY-MM-DD
date = new Date(inputDate);
} else if (
inputDate.length === 10 &&
inputDate[2] === '/' &&
inputDate[5] === '/' &&
!isNaN(Date.parse(inputDate.split('/').reverse().join('-')))
) {
// Formato BR: DD/MM/YYYY
const [day, month, year] = inputDate.split('/');
date = new Date(${year}-${month}-${day}
);
} else {
throw new Error('Formato de data inválido. Use YYYY-MM-DD ou DD/MM/YYYY.');
}
// Realizar soma com base no tipo
if (sumType === 'days') {
date.setDate(date.getDate() + sumValue);
} else if (sumType === 'months') {
date.setMonth(date.getMonth() + sumValue);
} else if (sumType === 'years') {
date.setFullYear(date.getFullYear() + sumValue);
}
// Formatar resultado
return outputFormat === 'us'
? date.toISOString().split('T')[0] // Formato US: YYYY-MM-DD
: date.toLocaleDateString('pt-BR'); // Formato BR: DD/MM/YYYY
}
função pronta amanhã faço o bloco..