Để đếm số lần mỗi ngày trong tuần (Thứ 2 đến Chủ nhật) xuất hiện trong một năm, ta xác định ngày đầu năm và số ngày dư (365 hoặc 366). Mỗi ngày xuất hiện ít nhất 52 lần, các ngày dư sẽ thêm 1 lần cho các ngày đầu tuần tính từ ngày đầu năm.
Ví dụ
import math
def dem_ngay_trong_nam(so_ngay, ngay_dau):
cac_ngay = ["Thứ 2", "Thứ 3", "Thứ 4", "Thứ 5", "Thứ 6", "Thứ 7", "Chủ nhật"]
dem = [4 for _ in range(7)] # Mặc định 4 tuần hoàn chỉnh (28 ngày)
vi_tri = -1
for i in range(7):
if ngay_dau == cac_ngay[i]:
vi_tri = i
break
du = so_ngay - 28
for i in range(vi_tri, vi_tri + du):
if i > 6:
dem[i % 7] = 5
else:
dem[i] = 5
for i in range(7):
print(cac_ngay[i], dem[i])
so_ngay = 31
ngay_dau = "Thứ 5"
dem_ngay_trong_nam(so_ngay, ngay_dau)
Kết quả
Thứ 2 4 Thứ 3 4 Thứ 4 4 Thứ 5 5 Thứ 6 5 Thứ 7 5 Chủ nhật 4
Giải thích
- Nhập số ngày trong tháng/năm và ngày đầu tuần.
- Khởi tạo mảng đếm với giá trị 4 (28 ngày = 4 tuần).
- Tìm vị trí ngày đầu trong mảng.
- Phân bổ các ngày dư (số ngày - 28) cho các ngày liên tiếp từ ngày đầu.
- In kết quả.