|
1 |
| -## AdventJS Challenges |
2 |
| - |
3 |
| - |
4 |
| - |
5 |
| -## <img src="https://adventjs.dev/android-icon-192x192.png" width="20" height="20" /> <strong> [adventJS](https://adventjs.dev/es) es una iniciativa de [@midudev](https://midu.dev/)</strong> |
6 |
| - |
7 |
| -## Retos |
8 |
| - |
9 |
| -| Reto | Título | Solución | Puntos | |
10 |
| -| ---- | ---------------------------------------------------------------------------------------------- | ------------------------------ | ------ | |
11 |
| -| #01 | [¡Automatizando envolver regalos de navidad!](https://adventjs.dev/es/challenges/2022/1) | [Ver solución](./challenge01/) | 131 | |
12 |
| -| #02 | [Nadie quiere hacer horas extra](https://adventjs.dev/es/challenges/2022/2) | [Ver solución](./challenge02/) | 121 | |
13 |
| -| #03 | [¿Cuántas cajas de regalos puede llevar Papá Noel?](https://adventjs.dev/es/challenges/2022/3) | [Ver solución](./challenge03/) | 165 | |
14 |
| -| #04 | [Una caja dentro de otra caja y otra...](https://adventjs.dev/es/challenges/2022/4) | [Ver solución](./challenge04/) | 172 | |
15 |
| -| #05 | [Optimizando viajes de Santa](https://adventjs.dev/es/challenges/2022/5) | [Ver solución](./challenge05/) | 140 | |
16 |
| -| #06 | [Creando adornos navideños](https://adventjs.dev/es/challenges/2022/6) | [Ver solución](./challenge06/) | 160 | |
17 |
| -| #07 | [Haciendo inventario de regalos](https://adventjs.dev/es/challenges/2022/7) | [Ver solución](./challenge07/) | 400 | |
18 |
| -| #08 | [¡Necesitamos un mecánico!](https://adventjs.dev/es/challenges/2022/8) | [Ver solución](./challenge08/) | 240 | |
19 |
| -| #09 | [Las locas luces de Navidad](https://adventjs.dev/es/challenges/2022/9) | [Ver solución](./challenge09/) | 300 | |
20 |
| -| #10 | [El salto del trineo de Papá Noel](https://adventjs.dev/es/challenges/2022/10) | [Ver solución](./challenge10/) | 260 | |
21 |
| -| #11 | [Papá Noel es Scrum Master](https://adventjs.dev/es/challenges/2022/11) | [Ver solución](./challenge11/) | 260 | |
22 |
| -| #12 | [Trineos eléctricos, ¡guau!](https://adventjs.dev/es/challenges/2022/12) | [Ver solución](./challenge12/) | 400 | |
23 |
| -| #13 | [Backup de los archivos de Papá Noel](https://adventjs.dev/es/challenges/2022/13) | [Ver solución](./challenge13/) | 300 | |
24 |
| -| #14 | [El mejor camino](https://adventjs.dev/es/challenges/2022/14) | [Ver solución](./challenge14/) | 300 | |
25 |
| -| #15 | [Decorando el árbol de Navidad](https://adventjs.dev/es/challenges/2022/15) | [Ver solución](./challenge15/) | 260 | |
26 |
| -| #16 | [Arreglando las cartas de Papá Noel](https://adventjs.dev/es/challenges/2022/16) | [Ver solución](./challenge16/) | 300 | |
27 |
| -| #17 | [Llevando los regalos en sacos](https://adventjs.dev/es/challenges/2022/17) | [Ver solución](./challenge17/) | 260 | |
28 |
| -| #18 | [¡Nos quedamos sin tinta!](https://adventjs.dev/es/challenges/2022/18) | [Ver solución](./challenge18/) | 200 | |
29 |
| -| #19 | [Ordenando los regalos](https://adventjs.dev/es/challenges/2022/19) | [Ver solución](./challenge19/) | 400 | |
30 |
| -| #20 | [Más viajes retadores](https://adventjs.dev/es/challenges/2022/20) | [Ver solución](./challenge20/) | 10 | |
31 |
| -| #21 | [Creando la tabla de regalos](https://adventjs.dev/es/challenges/2022/21) | [Ver solución](./challenge21/) | 300 | |
32 |
| -| #22 | [La iluminación en sintonía](https://adventjs.dev/es/challenges/2022/22) | [Ver solución](./challenge22/) | 400 | |
33 |
| -| #23 | [Compilador de Papá Noel](https://adventjs.dev/es/challenges/2022/23) | [Ver solución](./challenge23/) | 10 | |
34 |
| -| #24 | | | | |
35 |
| - |
36 |
| -## Tests |
37 |
| - |
38 |
| -Cada challenge viene con su propio test basado en los test visibles de la cada reto, para ejecutarlos se necesita entrar aen la carpeta correspondiente de cada challenge y ejecutar `npm install`, luego `npm run test` para correr los test del correspondiente challenge. |
| 1 | +# [Reto #2: Nadie quiere hacer horas extra](https://adventjs.dev/es/challenges/2022/2) |
| 2 | + |
| 3 | + |
| 4 | + |
| 5 | +Un millonario ha comprado una red social y no trae buenas noticias. Ha anunciado que <strong>cada vez que una jornada de trabajo se pierde por un día festivo</strong>, habrá que compensarlo con <strong>dos horas extra otro día de ese mismo año</strong>. |
| 6 | + |
| 7 | +Obviamente la gente que trabaja en la empresa no le ha hecho ni pizca de gracia y están <strong>preparando un programa que les diga el número de horas extras que harían</strong> en el año si se aplicara la nueva norma. |
| 8 | + |
| 9 | +Al ser trabajo de oficina, su horario laboral es <strong>de lunes a viernes</strong>. Así que sólo tienes que preocuparte de los días festivos que caen en esos días. |
| 10 | + |
| 11 | +Dado un año y un array con las fechas de los días festivos, devuelve el número de horas extra que se harían ese año: |
| 12 | + |
| 13 | +```js |
| 14 | +const year = 2022; |
| 15 | +const holidays = ['01/06', '04/01', '12/25']; // formato MM/DD |
| 16 | + |
| 17 | +// 01/06 es el 6 de enero, jueves. Cuenta. |
| 18 | +// 04/01 es el 1 de abril, un viernes. Cuenta. |
| 19 | +// 12/25 es el 25 de diciembre, un domingo. No cuenta. |
| 20 | + |
| 21 | +countHours(year, holidays); // 2 días -> 4 horas extra en el año |
| 22 | +``` |
| 23 | + |
| 24 | +Cosas a tener en cuenta y consejos: |
| 25 | + |
| 26 | +- El año puede ser bisiesto. Haz las comprobaciones que necesitas para ello, si fuese necesario. |
| 27 | +- Aunque el 31 de diciembre sea festivo, las horas extra se harán el mismo año y no el siguiente. |
| 28 | +- El método Date.getDay() te devuelve el día de la semana de una fecha. El 0 es domingo, el 1 es lunes, etc. |
| 29 | + |
| 30 | +--- |
| 31 | + |
| 32 | +## Resultados |
| 33 | + |
| 34 | +### Test #01 |
| 35 | + |
| 36 | +```js |
| 37 | +Test: return type; |
| 38 | + |
| 39 | +Expected: 'number'; |
| 40 | + |
| 41 | +Actual: 'number'; |
| 42 | +``` |
| 43 | + |
| 44 | +### Test #02 |
| 45 | + |
| 46 | +```js |
| 47 | +Test: countHours(2023, ['01/06', '04/01', '12/25']); |
| 48 | + |
| 49 | +Expected: 4; |
| 50 | + |
| 51 | +Actual: 4; |
| 52 | +``` |
| 53 | + |
| 54 | +### Test #03 |
| 55 | + |
| 56 | +```js |
| 57 | +Test: countHours(2022, ['01/06', '04/01', '12/25']); |
| 58 | + |
| 59 | +Expected: 4; |
| 60 | + |
| 61 | +Actual: 4; |
| 62 | +``` |
| 63 | + |
| 64 | +### Test #04 |
| 65 | + |
| 66 | +```js |
| 67 | +Test: countHours(1985, ['01/01', '01/06', '02/02', '02/17', '02/28', '06/03', '12/06', '12/25']); |
| 68 | + |
| 69 | +Expected: 10; |
| 70 | + |
| 71 | +Actual: 10; |
| 72 | +``` |
| 73 | + |
| 74 | +### Test #05 |
| 75 | + |
| 76 | +```js |
| 77 | +Test: countHours(2000, ['01/01']); |
| 78 | + |
| 79 | +Expected: 0; |
| 80 | + |
| 81 | +Actual: 0; |
| 82 | +``` |
0 commit comments