Gần đây tôi đã thêm tuổi của bản thân và vợ con và nhận ra rằng đến một lúc nào đó trong tương lai không xa, tất cả các lứa tuổi của chúng ta sẽ có chính xác đến 100 năm.
Thử thách
Đối với đầu vào bao gồm tuổi kết hợp (tổng cộng) và danh sách ngày sinh, hãy xuất ngày mà tất cả các độ tuổi kết hợp cộng với tổng số đã cho.
- Tuổi kết hợp đầu vào (tính bằng năm) sẽ là số nguyên dương
- Danh sách đầu vào của ngày sinh sẽ là một danh sách (bất kỳ định dạng nào thuận tiện cho ngôn ngữ của bạn) của ngày phải chứa đại diện bằng số của Ngày, Tháng và Năm. Số ngày kể từ một kỷ nguyên cụ thể không được chấp nhận. Bạn có thể giả sử danh sách ngày đầu vào được sắp xếp theo thứ tự thời gian.
- Đầu ra sẽ là một ngày có cùng định dạng với ngày đầu vào
- Đối với mục đích của độ tuổi kết hợp, 1 năm được coi là chính xác 365,25 ngày
- Đối với một số đầu vào, sẽ không thể tìm thấy ngày sau tất cả các ngày sinh khi tất cả đều cộng với tuổi kết hợp. Chẳng hạn, hãy xem xét hai ngày sinh cách nhau 20 năm, nhưng chúng tôi muốn kết hợp 10 năm. Trong trường hợp đó, đầu ra sẽ là sinh nhật lần thứ 10 của ngày sinh cũ. Nói cách khác, độ tuổi cá nhân được coi là 0 cho tất cả các ngày trước ngày sinh của cá nhân đó
- Đầu ra sẽ là ngày đầu tiên mà độ tuổi kết hợp cộng với ít nhất là tuổi đầu vào
- Bạn có thể sử dụng các hàm ngày giờ tích hợp
- Bạn phải hỗ trợ ngày trở lại cho đến ngày 1970/01/01.
Ví dụ
Ở đây tôi đang đưa ra tất cả các ngày ở định dạng YYYY / MM / DD, nhưng bạn có thể bất kỳ định dạng nào bạn thích.
Input Output
10 2000/01/01 2010/01/01
100 1975/03/05,1978/07/23,2008/11/12,2012/12/20 2018/11/22
100 1975/03/06,1978/07/23,2008/11/12,2012/12/20 2018/11/23
100 1975/03/09,1978/07/23,2008/11/12,2012/12/20 2018/11/23
100 1975/03/10,1978/07/23,2008/11/12,2012/12/20 2018/11/24
3 1990/08/01,1995/07/02 1993/08/01
50 1975/03/05,1978/07/23,2008/11/12,2012/12/20 2001/11/13
Lưu ý rằng trong hai ví dụ gần nhất, ngày đầu ra nằm trong phạm vi ngày đầu vào, theo quy tắc 5.