# =====================================================
# APLIKASI PREDIKSI JADWAL MENSTRUASI
# =====================================================
from datetime import datetime, timedelta
print("=== APLIKASI PREDIKSI JADWAL MENSTRUASI ===\n")
# Input data pengguna
nama = input("Masukkan nama Anda: ").strip()
usia = int(input("Masukkan usia Anda (tahun): "))
tgl_haid = input("Masukkan tanggal terakhir haid (format: DD/MM/YYYY): ")
siklus = input("Masukkan lama siklus menstruasi (hari) [default 28]: ")
# Validasi input siklus
if siklus == "":
siklus = 28
else:
siklus = int(siklus)
# Konversi tanggal
tgl_haid_dt = datetime.strptime(tgl_haid, "%d/%m/%Y")
# Perhitungan tanggal-tanggal penting
haid_berikut = tgl_haid_dt + timedelta(days=siklus)
masa_subur_mulai = tgl_haid_dt + timedelta(days=siklus - 12)
masa_subur_selesai = tgl_haid_dt + timedelta(days=siklus - 8)
ovulasi = tgl_haid_dt + timedelta(days=siklus - 11)
pms = haid_berikut - timedelta(days=7)
# Hasil prediksi
print(f"\n=== HASIL PREDIKSI UNTUK {nama.upper()} ===")
print(f"Usia: {usia} tahun")
print(f"Panjang siklus: {siklus} hari")
print(f"Tanggal terakhir haid: {tgl_haid_dt.strftime('%d %B %Y')}")
print(f"Perkiraan haid berikutnya: {haid_berikut.strftime('%d %B %Y')}")
print(f"Perkiraan masa subur: {masa_subur_mulai.strftime('%d %B %Y')} s.d {masa_subur_selesai.strftime('%d %B %Y')}")
print(f"Tanggal ovulasi: {ovulasi.strftime('%d %B %Y')}")
print(f"Perkiraan PMS: mulai {pms.strftime('%d %B %Y')}")
print("\nTerima kasih telah menggunakan aplikasi prediksi jadwal menstruasi!")