Trilhas
/
F#
F#
/
Exercícios
/
Agendamento no salão de beleza
Agendamento no salão de beleza

Agendamento no salão de beleza

Exercício de aprendizagem

Introdução

Datas e horas

Um DateTime em F# é um objeto imutável que contém informações tanto de data quanto de hora. As instâncias de DateTime são manipuladas chamando seus métodos. Depois que um DateTime é construído, seu valor nunca pode mudar. Qualquer método ou função que pareça modificar um DateTime na verdade retorna um novo DateTime.

A representação textual de datas e horas depende da cultura. Considere um DateTime com a data definida para 28 de março de 2019 e o horário definido para 14:30:59. Converter esse DateTime em uma string ao usar a cultura en-US (inglês americano) retorna "3/28/19 2:30:59 PM". Ao usar a cultura fr-BE (francês belga), o mesmo código retorna um valor diferente: "28/03/19 14:30:59".

Entender quais métodos de DateTime dependem da cultura é importante. Em geral, qualquer método de DateTime que lide com strings (seja como entrada ou como saída) dependerá da cultura atual.

Instruções

Neste exercício você vai trabalhar em um agendador de compromissos para um salão de beleza em Nova York que abriu em 15 de setembro de 2012.

Você tem quatro tarefas, e todas elas envolvem datas de agendamento. As datas e os horários usarão um dos três formatos a seguir:

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

Os testes vão definir automaticamente a cultura como en-US. Você não precisa definir nem especificar a cultura por conta própria.

1. Interpretar a data do agendamento

Implemente a função schedule, que consegue interpretar uma representação textual de uma data de agendamento no formato DateTime correspondente:

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

2. Verificar se um agendamento já passou

Implemente a função hasPassed, que recebe uma data de agendamento e verifica se o agendamento ficou em algum momento no passado:

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

3. Verificar se o agendamento é à tarde

Implemente a função isAfternoonAppointment, que recebe uma data de agendamento e verifica se o agendamento é à tarde (>= 12:00 e < 18:00):

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

4. Descrever a data e o horário do agendamento

Implemente a função description, que recebe uma data de agendamento e retorna uma descrição dessa data e desse horário:

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

5. Retornar a data de aniversário

Implemente a função anniversaryDate, que retorna a data de aniversário deste ano, que é 15 de setembro:

anniversaryDate()
// => DateTime(2019, 9, 15, 0, 0, 0)
Editar via GitHub O link abre em uma nova janela ou aba
F# Exercism

Tudo pronto para começar Agendamento no salão de beleza?

Crie sua conta no Exercism para aprender e dominar F# com 18 conceitos148 exercícios e mentoria humana de verdade, tudo de graça.