Readme.md/Tanggal Yang Tak Pasti/Tanggal Yang Tak Pasti.py

56 lines
1.5 KiB
Python

def evaluasi_tanggal(tanggal_list):
hasil = []
nama_bulan = ['jan', 'feb', 'mar', 'apr', 'may', 'jun',
'jul', 'aug', 'sep', 'oct', 'nov', 'dec']
for tanggal in tanggal_list:
tgl_lower = tanggal.lower()
# Jika mengandung nama bulan (tidak ambigu)
if any(bln in tgl_lower for bln in nama_bulan):
hasil.append((tanggal, "YA"))
continue
# Ganti pemisah agar seragam
parts = tanggal.replace("/", "-").split("-")
try:
parts_int = [int(p) for p in parts]
except ValueError:
hasil.append((tanggal, "TIDAK"))
continue
if len(parts_int) != 3:
hasil.append((tanggal, "TIDAK"))
continue
# Identifikasi tahun (4 digit)
tahun = next((x for x in parts_int if x > 999), None)
if not tahun:
hasil.append((tanggal, "TIDAK"))
continue
lainnya = [x for x in parts_int if x != tahun]
if all(x <= 12 for x in lainnya):
hasil.append((tanggal, "TIDAK"))
else:
hasil.append((tanggal, "YA"))
return hasil
# Contoh data
tanggal_data = [
"15/02/1998",
"04/05/2010",
"1-3-2004",
"2011-08-22",
"23-mar-2000",
"04/07/2010",
"1965-3-4"
]
# Jalankan evaluasi
hasil_cek = evaluasi_tanggal(tanggal_data)
# Cetak hasil
for tgl, status in hasil_cek:
print(f"{tgl}: {status}")