C7-05 · Đổi định dạng ngày
Xem dạng PDFNguồn: Bài C7-05, mục 7.10, giáo trình Lập trình cơ sở với Python — TS. Nguyễn Quốc Long.
Đề
Ngày ở Việt Nam thường viết dd/mm/yyyy, còn cơ sở dữ liệu và tên tệp hay dùng dạng quốc tế yyyy-mm-dd. Cho một chuỗi ~s~. Chuỗi được coi là đúng định dạng khi thỏa cả ba điều kiện:
- ~s~ dài đúng ~10~ ký tự;
- ký tự ở chỉ số ~2~ và chỉ số ~5~ (đếm từ ~0~) là dấu
/; - tám ký tự còn lại đều là chữ số
0–9.
Nếu đúng định dạng, in ngày theo dạng yyyy-mm-dd (giữ nguyên các chữ số, kể cả số 0 ở đầu); ngược lại in SAI DINH DANG.
Không cần xét ngày có thật hay không: 31/02/2026 vẫn đúng định dạng và in 2026-02-31.
Dữ liệu vào
Một dòng chứa chuỗi ~s~.
Kết quả
Một dòng: ngày dạng yyyy-mm-dd, hoặc SAI DINH DANG.
Ràng buộc
- ~1 \le |s| \le 200~; ~s~ gồm ký tự ASCII in được (có thể có chữ cái, dấu câu, dấu cách ở giữa).
- ~s~ không bắt đầu và không kết thúc bằng dấu cách.
Gợi ý
Lát cắt s[:2], s[3:5], s[6:] (mục 7.1); isdigit() (mục 7.2). Kiểm tra độ dài trước khi truy cập s[2], s[5] để không vượt chỉ số.
Ví dụ 1
Dữ liệu vào:
03/10/2026
Kết quả:
2026-10-03
Ví dụ 2
Dữ liệu vào:
3/10/2026
Kết quả:
SAI DINH DANG
Giải thích ví dụ
- Ví dụ 1: chuỗi dài 10,
s[2]vàs[5]là/, các ký tự khác là chữ số. Ngày03, tháng10, năm2026ghép thành2026-10-03— giữ nguyên số0của03. - Ví dụ 2: chuỗi chỉ dài 9 ký tự (ngày viết một chữ số) nên sai định dạng.
Nguồn trong sách: bài tập C7-05 (mục 7.10) · Mức: (**)