Kiểm tra xem ngày trong phạm vi python
Tôi muốn kiểm tra bằng Python xem ngày ngẫu nhiên được cung cấp có mơ hồ hay không. Logic của tôi là - Nếu cả ngày và tháng đều nằm trong phạm vi 1-12, thì 'Ngày' & 'Tháng' không rõ ràng. Ngoài ra, nếu 'Năm' chỉ có hai chữ số thì giá trị của nó không rõ ràng Đây là những gì tôi đã thử --> Các bước. 1) Đề cập đến ngày Những gì tôi đã thử date="3/19/1991" dmy_split="" dmy_split=date.split('/, -') date_formats = ['%d/%m/%Y','%m/%d/%Y','%Y/%m/%d','%d-%m-%Y','%m-%d-%Y', '%Y-%m-%d'] if (date_formats==date_formats[0] or date_formats==date_formats[3]): if (dmy_split[0] in range (1,13) and dmy_split[1] in range (1,13) or len(dmy_split[2])==2): print("ambiguous") else: print("not ambiguous") Vấn đề. Kết quả luôn là "không mơ hồ". logic của tôi có vẻ đúng. Xin vui lòng cho tôi biết nơi tôi đã đi sai
Tại sao bạn không sử dụng các chức năng của mô-đun datetime sẽ thực hiện công việc hiệu quả hơn nhiều? . Và sử dụng mã trong câu trả lời đó sẽ tự động báo lỗi nếu ngày không hợp lệ Thêm giải pháp của bạn ở đây B I U S small BIG code Xem trước 0thành viên hiện cóhoặc tham gia với chúng tôiTải xuống, Bình chọn, Nhận xét, Xuất bản Email của bạnEmail này đang được sử dụng. Bạn có cần mật khẩu của bạn? Mật khẩu tùy chọnKhi trả lời câu hỏi, vui lòng.
Nội dung này, cùng với bất kỳ tệp và mã nguồn liên quan nào, được cấp phép theo Giấy phép Mở Dự án Code (CPOL) Nếu việc chuyển chuỗi ngày tới hàm tạo Chúng tôi có thể so sánh các ngày bởi vì ở bên dưới, mỗi ngày lưu trữ một dấu thời gian - số mili giây trôi qua giữa ngày 1 tháng 1 năm 1970 và ngày đã cho Mỗi ngày lưu trữ một dấu thời gian dưới mui xe, vì vậy, hành vi mặc định là so sánh dấu thời gian của các ngày, ngay cả khi bạn không gọi phương thức Chúng tôi đã sử dụng toán tử logic AND (&&) để kiểm tra xem cả hai điều kiện có được đáp ứng hay không trước khi chạy khối Nếu ngày lớn hơn ngày bắt đầu và nhỏ hơn ngày kết thúc, thì ngày đó nằm giữa hai ngày Nếu bạn gặp khó khăn khi tạo đối tượng
Dưới đây là một ví dụ tách một chuỗi và chuyển các tham số cho hàm tạo Chuỗi ngày được định dạng là Lưu ý rằng chúng tôi đã trừ đi Điều này là do hàm tạo Chúng tôi tách chuỗi trên mỗi dấu gạch chéo về phía trước để có được một mảng các chuỗi con Chúng tôi đã sử dụng phá hủy mảng để gán các giá trị tháng, ngày và năm cho các biến và chuyển chúng cho hàm tạo Khi bạn đã tạo đối tượng Chúng tôi đã lặp lại quy trình cho từng ngày và chia nhỏ từng ngày theo dấu gạch chéo về phía trước để nhận các giá trị tháng, ngày và năm Điều rất quan trọng là trừ |