Recientemente me dijeron que leyera un libro de texto de física completo para el año nuevo (historia verdadera, desafortunadamente). Necesito su ayuda para determinar qué capítulos debería leer cada día. Aquí es donde tu entras.
Entrada
- Dos fechas, en cualquier formato. La segunda fecha siempre será posterior a la primera.
- Una lista de números de capítulos. Esta lista separada por comas puede contener capítulos individuales (
12
) o rangos inclusivos (1-3
). Ex.1-3,5,6,10-13
. - Una lista de días de la semana (representada por las dos primeras letras del nombre
Monday -> Mo
:) para excluir de la programación. Ex.Mo,Tu,Fr
.
Salida
La salida será una lista separada por una nueva línea de fechas y números de capítulo (vea el formato a continuación). Los capítulos deben distribuirse de manera uniforme en todos los días del rango, excluyendo los días laborables provistos. Si los capítulos no se distribuyen de manera uniforme, tenga los días con menor cantidad de capítulos al final del período de tiempo. Las fechas de salida pueden estar en un formato diferente al de entrada. Los días sin capítulos pueden omitirse, o simplemente no tener capítulos con ellos.
Ejemplo:
Entrada: 9/17/2015 9/27/2015 1-15 Tu
Salida:
9/17/2015: 1 2
9/18/2015: 3 4
9/19/2015: 5 6
9/20/2015: 7 8
9/21/2015: 9 10
9/23/2015: 11
9/24/2015: 12
9/25/2015: 13
9/26/2015: 14
9/27/2015: 15
Respuestas:
PowerShell v4,
367357323313308307305277 BytesEditar: jugó 28 bytes con formato de entrada explícito.
Explicado:
Uso
Espera que las fechas estén en
DateTime
formato .NET . Espera que los días "omitidos" estén en una matriz (equivalente a PowerShell de una lista).fuente
$
... Eso en realidad es bastante promedio para los campos de golf PowerShell, que parece estar alrededor del 10% al 15% (según mis propios cálculos informales de respuestas que he publicado).JavaScript (ES6),
317310291 bytesUso
Explicación
fuente
Pitón 2 -
338317308304300Aquí vamos a hacer rodar la pelota ...
Entrada de ejemplo:
Salida de ejemplo:
fuente