JavaScript: cantidad de viernes 13 que tiene un año (ejercicio resuelto)

Publicado por parzibyte en

En este post voy a resolver un ejercicio de JavaScript tomado originalmente de Codewars.

Un día desafortunado o sin suerte es un viernes que además es 13.

Nuestra tarea es escribir una función que reciba el número de un año y devuelva la cantidad de “días desafortunados” que tiene, es decir, el conteo de viernes 13 que existen en ese año.

Explicación del algoritmo

Vamos a trabajar con fechas, porque esa es la forma más fácil según mi forma de ver las cosas.

Hacemos un ciclo y recorremos cada mes de ese año (las conversiones de días, años bisiestos y esas cosas las maneja JS) poniéndole el valor de 13 en la fecha; después llamamos a getDay que devuelve el día de la semana y si es viernes aumentamos un contador.

Al terminar el ciclo, regresamos ese contador. Cabe mencionar que los meses en JavaScript comienzan en 0 por lo que 0 es enero y 11 es diciembre.

Para el día de la semana, 0 es domingo, 1 es lunes y así hasta que el sábado es 6. Por lo tanto, para saber si es viernes comprobamos si el día es 5.

Función que devuelve la cantidad de viernes 13 en JavaScript

El código es el siguiente:

Al inicio creamos una fecha con el año que nos pasaron, en el mes de enero. Cambiamos de mes y en cada mes comprobamos si el día 13 es viernes.

Probar función

A continuación dejo el código completo para probar la función:

Puedes ejecutar el código haciendo click aquí.


parzibyte

He trabajado por más de 4 años en el desarrollo de software con experiencia en Java, PHP, JavaScript, HTML, Node.JS, Python, Android y Go. También he trabajado con bases de datos SQL como MySQL y SQLite, así como con bases de datos NoSQL usando MongoDB.Soy bueno utilizando algunos frameworks y herramientas como Firebase, jQuery, AngularJS, VueJS, CodeIgniter, Laravel, BulmaCSS, Bootstrap y Electron.Otros términos que conozco son: Arduino, GraphQL, API's, REST, AJAX, PouchDB, CouchDB, Experiencia de usuario, buenas prácticas de programación, Webpack, NPM, Administración de servidores y programación de scriptsLa plataforma en la que tengo más experiencia es la web, pero en mis ratos libres realizo unos pequeños ejercicios en C# y C.Estoy aquí para ayudarte a resolver tus problemas de programación y depuración :-)

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

A %d blogueros les gusta esto: