Chaque mois, ta partenaire retrouve son meilleur ami. Comme tous les deux ont un emploi du temps très chargé, ce n'est pas facile de trouver une date qui leur convienne ! Et comme ton emploi du temps est lui aussi bien rempli, ta partenaire vérifie toujours avec toi les dates de rencontre envisagées :
Lors de l'appel de ce mois-ci, ta partenaire t'a posé cette question :
Perplexe, tu lui demandes ce qu'est un jour teenth. Ta partenaire t'explique qu'un jour teenth, un concept qu'elle a inventé, désigne les jours du mois qui se terminent par -teenth :
Comme il y a aussi sept jours dans la semaine, chaque jour de la semaine a exactement un jour teenth par mois.
Maintenant que tu as compris le concept de jour teenth, tu consultes ton calendrier. Tu n'as rien de prévu le jeudi teenth, alors tu confirmes joyeusement la date avec ta partenaire.
Ta tâche consiste à trouver la date exacte d'une rencontre, à partir d'un mois, d'une année, d'un jour de la semaine et d'une valeur de semaine.
Il y a cinq valeurs de semaine à considérer : first, second, third, fourth, last, teenth.
Par exemple, on peut te demander de trouver la date de la rencontre du premier lundi de janvier 2018 (1er janvier 2018).
De même, on peut te demander de trouver :
teenth de mai 2020 (13 mai 2020)teenth d'août 1953 (15 août 1953)La semaine teenth désigne les sept jours d'un mois dont le numéro se termine par « -teenth » (13th, 14th, 15th, 16th, 17th, 18th et 19th).
Si on te demande de trouver le samedi teenth d'août 1953, on regarde le calendrier :
August 1953
Su Mo Tu We Th Fr Sa
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
On en déduit que le samedi teenth est le 15 août 1953.
Pour venir à bout de cet exercice, tu dois implémenter la fonction meetupDay.
La signature de type de meetupDay est déjà en place, mais c'est à toi de définir la fonction.
Inscris-toi sur Exercism pour apprendre et maîtriser Haskell avec 107 exercices, et un vrai mentorat humain, le tout gratuitement.