Dada uma lista de períodos r
como entrada, saída ou retorno de qualquer intervalo não encontrado r
.
Para fins deste exemplo, a entrada estará em YYYY-MM-DD
formato.
Digamos que você tenha três períodos:
[2019-01-01, 2019-02-01]
[2019-02-02, 2019-04-05]
[2019-06-01, 2019-07-01]
Você pode ver que há uma lacuna entre 2019-04-05
e 2019-06-01
.
A saída será essa lacuna: [2019-04-06, 2019-05-31]
Regras
- A entrada e a saída podem estar em qualquer formato de data ou coleção razoável, desde que consistente.
- Suponha que a entrada não esteja ordenada.
- Seu período não precisa ser
[latest, earliest]
, mas deve seguir a regra 2. - Suponha que não haja datas sobrepostas na entrada
Casos de teste:
Entrada: [[2019-01-01, 2019-02-01],[2019-02-02, 2019-04-05],[2019-06-01, 2019-07-01]]
Resultado: [[2019-04-06, 2019-05-31]]
Entrada: [[2019-01-01, 2019-02-01],[2018-02-02, 2018-04-05],[2019-06-01, 2019-07-01]]
Resultado: [[2018-04-06, 2018-12-31], [2019-02-02, 2019-05-31]]
Entrada: [[2019-01-01, 2019-02-01],[2019-02-02, 2019-03-02],[2019-03-03, 2019-07-01]]
Resultado: []
Entrada: [[2019-01-01, 2019-02-01], [2019-11-02, 2019-11-20]]
Resultado: [[2019-02-02, 2019-11-01]]
Entrada: [[2019-01-01, 2019-02-01],[2019-02-03, 2019-04-05]]
Saída: [[2019-02-02, 2019-02-02]]
ou[[2019-02-02]]
YYYY-MM-DD
pois o formato atual é estrangeiro para muitas pessoas e ficou ainda mais difícil de analisar devido ao uso de pequenos dias do mês12.