This commit is contained in:
30
api/app/Services/Geral/GestacaoService.php
Normal file
30
api/app/Services/Geral/GestacaoService.php
Normal file
@@ -0,0 +1,30 @@
|
||||
<?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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user