31 lines
854 B
PHP
31 lines
854 B
PHP
<?php
|
|
|
|
namespace App\Services\Geral;
|
|
|
|
use Carbon\Carbon;
|
|
|
|
class GestacaoService
|
|
{
|
|
private const SEMANAS_PREVISTAS_PARTO = 40;
|
|
|
|
public static function getIdadeGestacional(Carbon $dataUltimaMenstruacao) : array
|
|
{
|
|
$dias = $dataUltimaMenstruacao->diffInDays(new Carbon);
|
|
$semanasTotais = $dias / 7;
|
|
$semanasCompletas = floor($semanasTotais);
|
|
$porcentagemDiasDaSemana = $semanasTotais - $semanasCompletas;
|
|
$diasTotais = $porcentagemDiasDaSemana * 7;
|
|
$diasCompletos = floor($diasTotais);
|
|
|
|
return [
|
|
'semanas' => (int) $semanasCompletas,
|
|
'dias' => (int) $diasCompletos,
|
|
];
|
|
}
|
|
|
|
public static function getDataPrevistaParto(Carbon $dataUltimaMenstruacao) : Carbon
|
|
{
|
|
return $dataUltimaMenstruacao->addWeeks(self::SEMANAS_PREVISTAS_PARTO);
|
|
}
|
|
}
|