bebo021999
Thành viên gạo cội
- nếu rơi vào ngày T6 thì nó vẫn giữ nguyên, đâu cần trừ 3 làm chi đâu anh?
- càng không rơi vào CN vì bản thân hàm Workday.intl với đối số "0000011" em đã loại luôn T7 CN ra rồi.
- chỉ còn rơi vào T2 (vì ngày kết thúc trùng T7 nên nó loại tiếp T7 CN) thì em mới trừ 2 để cho nó lùi về ngay ngày T7 theo đúng ý như bài đầu tiên thớt nói á anh.
@bebo021999 : em chỉ suy nghĩ về công thức của bác @phuocam á, hình như đúng luôn, em chưa nghĩ ra trường hợp sai nếu quả thật như vậy thì em tệ quá tệ, hiiiii.
Workday = 2 thì workday-2, tức là cố định nó về thứ 7, cho dù ngày đang xét có thể là T6, T7 hay CN. Bài toán mình đặt ra (cho dù có thể thớt k hỏi) nhưng mình thử làm là trả chính xác về ngày xét.
Ví dụ cụ thể trong thực tế nhé:
Anh A ở quê lên làm hồ, nhận thầu 1 công trình với yêu cầu hoàn tất trong 57 ngày làm việc (T7 và CN không được thi công). Xong sớm nghỉ sớm, tranh thủ về quê.
Ngày bắt đầu làm việc: 30/1/2020
Dùng hàm WORKDAY, kết quả là Thứ 2, 20/4/2020.
Câu hỏi 1: Anh A phải chờ đến thứ hai 20/4/2020 mới về quê được, hay có thể về sớm hơn?
Câu hỏi 2: Tối thứ sáu, 17/4/2020 có xe người nhà về quê, anh A có theo xe về được không?
Trả lời 1: Có thể về sớm hơn, vì T7 và CN là ngày nghỉ. Nếu dựa vào kết quả "thứ 2" là không chính xác
Trả lời 2: Dùng hàm networkday để đếm số ngày giữa 30/1 và 17/4, kết quả = 57. Như vậy tối thứ sáu anh A đã hoàn thành công việc và có thể về quê.
Vấn đề đặt ra là, ngày xét là 17/4 tính từ 30/1, trả về 57 ngày LV, lấy 57 ngày LV tính từ 30/1 là về 20/4.
Còn cấu trúc = workday(ngày bắt đầu, số ngày LV-1)+1
là logic loại ngày cuối cùng ra không xét T7,CN, sau đó +1 để trả về ngày bình thường trong tuần