Recentemente stavo sommando le età di me stesso, di mia moglie e dei miei figli e mi sono reso conto che ad un certo punto in un futuro non troppo lontano le nostre età si sommeranno esattamente a 100 anni.
Sfida
Per un input costituito da un'età (totale) combinata e un elenco di date di nascita, fornire la data in cui tutte le età combinate si sommano al totale dato.
- L'età combinata di input (in anni) sarà un numero intero positivo
- L'elenco di input delle date di nascita sarà un elenco (qualunque sia il formato più comodo per la tua lingua) di date che devono contenere una rappresentazione numerica di Giorno, Mese e Anno. Numero di giorni trascorsi da un'epoca specifica non accettabile. Si può presumere che l'elenco delle date di input sia ordinato in ordine cronologico.
- L'output sarà una singola data nello stesso formato delle date di input
- Ai fini dell'età combinata, 1 anno è considerato esattamente 365,25 giorni
- Per alcuni input, sarà impossibile trovare una data dopo tutte le date di nascita quando tutte si sommano all'età combinata. Ad esempio, prendiamo in considerazione due date di nascita distanti 20 anni, ma vogliamo una combinazione di 10 anni. In tal caso, l'output sarebbe il decimo compleanno della data di nascita più vecchia. In altre parole, le singole età sono considerate 0 per tutte le date precedenti alla data di nascita dell'individuo
- L'output sarà la prima data in cui le età combinate si sommano almeno all'età di input
- È possibile utilizzare le funzioni di data e ora integrate
- È necessario supportare le date che risalgono al 1970/01/01.
Esempi
Qui sto dando tutte le date nel formato AAAA / MM / GG, ma puoi in qualunque formato tu voglia.
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
Si noti che negli ultimi due esempi, la data di output rientra nell'intervallo di date di input, come da regola 5.