Зустріч

Зустріч

Середня

Вступ

Щомісяця наш партнер зустрічається зі своїм найкращим другом. У них обох дуже щільний графік, тож знайти слушну дату непросто! А оскільки графік щільний і в нас, партнер завжди уточнює можливі дати зустрічі з нами:

  • «Можемо зустрітися першої пʼятниці наступного місяця?»
  • «А як щодо третьої середи?»
  • «Може, останньої неділі?»

Під час дзвінка цього місяця партнер запитує нас:

  • «Хотілося б зустрітися в надцятий четвер, гаразд?»

Спантеличені, ми питаємо, що таке надцятий день. Партнер пояснює, що надцятий день - це вигадане поняття, яке означає дні місяця, що закінчуються на «-надцяте»:

  • 13-те (тринадцяте)
  • 14-те (чотирнадцяте)
  • 15-те (пʼятнадцяте)
  • 16-те (шістнадцяте)
  • 17-те (сімнадцяте)
  • 18-те (вісімнадцяте)
  • 19-те (девʼятнадцяте)

Оскільки днів тижня теж сім, кожен день тижня гарантовано має рівно один надцятий день щомісяця.

Тепер, коли ми розуміємо, що таке надцятий день, ми перевіряємо свій календар. На надцятий четвер у нас нічого не заплановано, тож ми радо підтверджуємо дату партнерові.

Вказівки

Наше завдання - знайти точну дату зустрічі, маючи місяць, рік, день тижня і тиждень.

Потрібно врахувати пʼять значень тижня: first, second, third, fourth, last, teenth.

Наприклад, нас можуть попросити знайти дату зустрічі на перший понеділок січня 2018 року (1 січня 2018 року).

Так само нас можуть попросити знайти:

  • третій вівторок серпня 2019 року (20 серпня 2019 року)
  • середу з «teenth» травня 2020 року (13 травня 2020 року)
  • четверту неділю липня 2021 року (25 липня 2021 року)
  • останній четвер листопада 2022 року (24 листопада 2022 року)
  • суботу з «teenth» серпня 1953 року (15 серпня 1953 року)

Teenth

Тиждень «teenth» охоплює сім днів місяця, назви яких закінчуються на «-teenth» (13-те, 14-те, 15-те, 16-те, 17-те, 18-те і 19-те).

Якщо нас попросять знайти суботу з «teenth» серпня 1953 року, ми переглянемо його календар:

    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

З нього бачимо, що субота з «teenth» припадає на 15 серпня 1953 року.

Підказки

Щоб виконати цю вправу, потрібно реалізувати функцію meetupDay.

Сигнатура типу для meetupDay уже на місці, але саму функцію потрібно визначити самостійно.


Джерело

Джеремі Гайнеґарднер згадав про зустріч у Боулдері, що відбувається на «Wednesteenth» кожного місяця
Редагувати через GitHub Посилання відкривається в новому вікні або вкладці
Haskell Exercism

Час розпочати Зустріч?

Зареєструйтеся на Exercism, щоб вивчати й опановувати Haskell, а також 107 вправ та справжнє наставництво від людей, і все це безкоштовно.