Calculadora Menstrual Para Saber Si Estoy Embarazada
.calculadora-menstrual-embarazo {
font-family: 'Arial', sans-serif;
max-width: 700px;
margin: 20px auto;
padding: 25px;
border: 1px solid #e0e0e0;
border-radius: 10px;
background-color: #ffffff;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
}
.calculadora-menstrual-embarazo h2 {
color: #4a4a4a;
text-align: center;
margin-bottom: 20px;
font-size: 1.8em;
}
.calculadora-menstrual-embarazo h3 {
color: #5a5a5a;
margin-top: 30px;
margin-bottom: 15px;
font-size: 1.4em;
}
.calculadora-menstrual-embarazo h4 {
color: #6a6a6a;
margin-top: 20px;
margin-bottom: 10px;
font-size: 1.2em;
}
.calculadora-menstrual-embarazo p, .calculadora-menstrual-embarazo li {
color: #666;
line-height: 1.6;
margin-bottom: 10px;
}
.calculator-form label {
display: block;
margin-bottom: 8px;
font-weight: bold;
color: #555;
}
.calculator-form input[type="date"],
.calculator-form input[type="number"] {
width: calc(100% – 22px);
padding: 10px;
margin-bottom: 15px;
border: 1px solid #ccc;
border-radius: 5px;
font-size: 1em;
}
.checkbox-group {
display: flex;
align-items: center;
margin-bottom: 15px;
}
.checkbox-group input[type="checkbox"] {
margin-right: 10px;
transform: scale(1.2);
}
.checkbox-group label {
margin-bottom: 0;
font-weight: normal;
}
.calculator-form button {
display: block;
width: 100%;
padding: 12px 20px;
background-color: #e91e63; /* A common pink/red for feminine topics */
color: white;
border: none;
border-radius: 5px;
font-size: 1.1em;
cursor: pointer;
transition: background-color 0.3s ease;
margin-top: 20px;
}
.calculator-form button:hover {
background-color: #c2185b;
}
.calculator-result {
margin-top: 25px;
padding: 15px;
border: 1px solid #f0f0f0;
border-radius: 8px;
background-color: #f9f9f9;
min-height: 50px;
color: #333;
line-height: 1.8;
}
.calculator-result strong {
color: #e91e63;
}
.calculator-article {
margin-top: 30px;
padding-top: 20px;
border-top: 1px solid #eee;
}
.calculator-article ul {
list-style-type: disc;
margin-left: 20px;
padding-left: 0;
}
.calculator-article li {
margin-bottom: 5px;
}
function calcularPosibilidadEmbarazo() {
var lastPeriodDateStr = document.getElementById("lastPeriodDate").value;
var cycleLengthStr = document.getElementById("cycleLength").value;
var unprotectedSexChecked = document.getElementById("unprotectedSex").checked;
var earlySymptomsChecked = document.getElementById("earlySymptoms").checked;
var resultadoDiv = document.getElementById("resultadoEmbarazo");
// Input validation
if (!lastPeriodDateStr || !cycleLengthStr) {
resultadoDiv.innerHTML = "Por favor, ingresa la fecha de tu último período y la duración de tu ciclo.";
return;
}
var cycleLength = parseInt(cycleLengthStr);
if (isNaN(cycleLength) || cycleLength 45) {
resultadoDiv.innerHTML = "La duración del ciclo debe ser un número entre 21 y 45 días.";
return;
}
var lastPeriodDate = new Date(lastPeriodDateStr + "T00:00:00"); // Add T00:00:00 to ensure local time interpretation
var currentDate = new Date();
currentDate.setHours(0, 0, 0, 0); // Normalize current date to start of day
// Calculate estimated next period date
var estimatedNextPeriodDate = new Date(lastPeriodDate);
estimatedNextPeriodDate.setDate(lastPeriodDate.getDate() + cycleLength);
// Calculate days late
var timeDiff = currentDate.getTime() – estimatedNextPeriodDate.getTime();
var daysLate = Math.ceil(timeDiff / (1000 * 60 * 60 * 24)); // Use Math.ceil to count partial days as late
var assessmentMessage = "";
var detailsMessage = "";
detailsMessage += "Fecha de tu Último Período: " + lastPeriodDate.toLocaleDateString('es-ES') + "";
detailsMessage += "Duración Promedio de tu Ciclo: " + cycleLength + " días";
detailsMessage += "Fecha Estimada de tu Próximo Período: " + estimatedNextPeriodDate.toLocaleDateString('es-ES') + "";
if (daysLate > 0) {
detailsMessage += "Días de Retraso: " + daysLate + " día(s)";
if (unprotectedSexChecked) {
if (earlySymptomsChecked) {
assessmentMessage = "Tu período está retrasado y presentas síntomas de embarazo temprano después de relaciones sin protección. Hay una alta posibilidad de embarazo. Se recomienda encarecidamente realizar una prueba de embarazo y consultar a un médico.";
} else {
assessmentMessage = "Tu período está retrasado después de relaciones sin protección. Hay una posibilidad de embarazo. Se recomienda realizar una prueba de embarazo.";
}
} else {
assessmentMessage = "Tu período está retrasado. Si no has tenido relaciones sexuales sin protección, podría haber otras razones para el retraso (estrés, cambios hormonales, etc.). Si tienes dudas, consulta a un médico.";
}
} else { // Period is not late or too early
var daysUntilNextPeriod = Math.abs(daysLate);
if (daysUntilNextPeriod > 0) {
detailsMessage += "Días Faltantes para tu Próximo Período: " + daysUntilNextPeriod + " día(s)";
} else {
detailsMessage += "Tu período debería comenzar hoy.";
}
if (unprotectedSexChecked) {
if (earlySymptomsChecked) {
assessmentMessage = "Aún no es la fecha esperada de tu período, pero has tenido relaciones sin protección y presentas síntomas. Podría ser demasiado pronto para una prueba, pero observa si tu período se retrasa. Consulta a un médico si los síntomas persisten.";
} else {
assessmentMessage = "Aún no es la fecha esperada de tu período. Si has tenido relaciones sexuales sin protección, espera a ver si tu período se retrasa antes de considerar una prueba de embarazo.";
}
} else {
assessmentMessage = "Según la información proporcionada, la probabilidad de embarazo es baja en este momento. Si tienes dudas o tu período se retrasa, consulta a un médico.";
}
}
resultadoDiv.innerHTML = detailsMessage + assessmentMessage + "Esta calculadora es una herramienta orientativa y no sustituye el consejo médico ni una prueba de embarazo.";
}