Calculadora de Datas
Some ou subtraia dias, semanas, meses e anos de uma data.
Gratis ate 10 MB por arquivo100 MB por enviosem anuncio antes do limite
$titulo = 'Calculadora de Datas';
$descricao = 'Some ou subtraia dias, meses ou anos de uma data';
$palavrasChave = 'calcular datas, somar dias, subtrair dias, calendario';
$data = date('Y-m-d');
$operacao = 'somar';
$valor = 0;
$unidade = 'dias';
$resultado = null;
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$data = $_POST['data'] ?? date('Y-m-d');
$operacao = $_POST['operacao'] ?? 'somar';
$valor = intval($_POST['valor'] ?? 0);
$unidade = $_POST['unidade'] ?? 'dias';
$dataObj = new DateTime($data);
if ($operacao === 'somar') {
switch ($unidade) {
case 'dias':
$dataObj->add(new DateInterval("P{$valor}D"));
break;
case 'meses':
$dataObj->add(new DateInterval("P{$valor}M"));
break;
case 'anos':
$dataObj->add(new DateInterval("P{$valor}Y"));
break;
case 'semanas':
$dataObj->add(new DateInterval("P" . ($valor * 7) . "D"));
break;
}
} else {
switch ($unidade) {
case 'dias':
$dataObj->sub(new DateInterval("P{$valor}D"));
break;
case 'meses':
$dataObj->sub(new DateInterval("P{$valor}M"));
break;
case 'anos':
$dataObj->sub(new DateInterval("P{$valor}Y"));
break;
case 'semanas':
$dataObj->sub(new DateInterval("P" . ($valor * 7) . "D"));
break;
}
}
$resultado = [
'data_original' => $data,
'data_resultado' => $dataObj->format('Y-m-d'),
'data_formatada' => $dataObj->format('d/m/Y'),
'dia_semana' => $dataObj->format('l'),
'dias_uteis' => calcularDiasUteis(new DateTime($data), $dataObj, $operacao)
];
}
function calcularDiasUteis($dataInicio, $dataFim, $operacao) {
$diasUteis = 0;
$current = clone $dataInicio;
$interval = $operacao === 'somar' ? 1 : -1;
while ($current != $dataFim) {
$current->modify(($interval > 0 ? '+' : '-') . '1 day');
$diaSemana = $current->format('N');
if ($diaSemana < 6) {
$diasUteis += $interval;
}
}
return abs($diasUteis);
}
?>
Proximo passo recomendado
Faca este resultado trabalhar por voce
A Minike conecta a ferramenta que voce esta usando com o produto que tem maior chance de gerar valor recorrente.
R$ 49,90/mo
Minike Ferramentas Pro
Conversoes maiores, sem anuncios principais e prioridade.
Gratis: 10 MB por arquivo e 100 MB por lote.
R$ 29,90/mo
Minike Sites
Transforme arquivos convertidos em paginas, landing pages e lojas.
Previa gratis antes de publicar.
Precos exibidos para Brasil e EUA. O checkout local cobra em BRL ate ativarmos gateway internacional.