Треки
/
F#
F#
/
Вправи
/
Запис на красу
Запис на красу

Запис на красу

Навчальна вправа

Вступ

Дати й час

DateTime у F# - це незмінний обʼєкт, який містить інформацію як про дату, так і про час. З екземплярами DateTime працюють, викликаючи їхні методи. Після створення DateTime його значення вже не може змінитися. Будь-які методи або функції, які нібито змінюють DateTime, насправді повертають новий DateTime.

Текстове представлення дат і часу залежить від культури. Розгляньмо DateTime, у якого дату встановлено на 28 березня 2019 року, а час встановлено на 14:30:59. Перетворення цього DateTime на string під час використання культури en-US (американська англійська) повертає "3/28/19 2:30:59 PM". Під час використання культури fr-BE (бельгійська французька), той самий код повертає інше значення: "28/03/19 14:30:59".

Важливо знати, які методи DateTime залежать від культури. Загалом, будь-який метод DateTime, який працює з strings (як вхідними, так і вихідними даними), залежатиме від поточної культури.

Вказівки

У цій вправі ми будемо працювати над планувальником зустрічей для салону краси в Нью-Йорку, який відкрився 15 вересня 2012 року.

На нас чекають чотири завдання, і всі вони стосуються дат зустрічей. Дати й час будуть використовувати один із трьох наведених нижче форматів:

  • "7/25/2019 13:45:00"
  • "July 25, 2019 13:45:00"
  • "Thursday, July 25, 2019 13:45:00:00"
Caution

Тести автоматично встановлять культуру en-US, тож нам не потрібно встановлювати чи вказувати її самостійно.

1. Розберіть дату зустрічі

Реалізуйте функцію schedule, яка вміє розібрати текстове подання дати зустрічі у відповідний формат DateTime:

schedule "7/25/2019 13:45:00"
// => DateTime(2019, 7, 25, 13, 45, 0)

2. Перевірте, чи зустріч уже минула

Реалізуйте функцію hasPassed, яка приймає дату зустрічі й перевіряє, чи відбулася зустріч десь у минулому:

hasPassed (DateTime(1999, 12, 31, 9, 0, 0))
// => true

3. Перевірте, чи припадає зустріч на другу половину дня

Реалізуйте функцію isAfternoonAppointment, яка приймає дату зустрічі й перевіряє, чи припадає зустріч на другу половину дня (>= 12:00 і < 18:00):

isAfternoonAppointment (DateTime(2019, 03, 29, 15, 0, 0))
// => true

4. Опишіть час і дату зустрічі

Реалізуйте функцію description, яка приймає дату зустрічі й повертає опис цієї дати та часу:

description (DateTime(2019, 03, 29, 15, 0, 0))
// => "You have an appointment on 3/29/2019 3:00:00 PM."

5. Поверніть дату річниці

Реалізуйте функцію anniversaryDate, яка повертає дату річниці цього року, а саме 15 вересня:

anniversaryDate()
// => DateTime(2019, 9, 15, 0, 0, 0)
Редагувати через GitHub Посилання відкривається в новому вікні або вкладці
F# Exercism

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

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