Este é o meu primeiro código de golfe, então, deixe-me saber se é muito amplo ou se estou perdendo alguma informação para um bom quebra-cabeça!
Desafio
Em Ontário e possivelmente em outras áreas do mundo, a eletricidade é cobrada com base no preço do tempo de uso (TOU) , que varia o custo por quilowatt-hora de acordo com o uso da energia.
Dada a data e a hora, quero saber se estou no período de pico (vermelho), pico médio (amarelo) ou fora do pico (verde).
Entrada
Suponha que a entrada seja fornecida em um formato de data e hora ISO 8601 aceitável, sem fuso horário, com a precisão mínima de horas:YYYY-MM-DDThh[:mm[:ss]]
(o T é literal).
Exemplos
- 2014-09-01T14
- 2014-09-01T17: 30
- 2014-09-01T17: 30: 02
Saída
A saída deve ser uma string On
, Mid
ouOff
.
Regras
- O código mais curto vence
- Para os fins deste desafio, ignore os feriados legais
- Suponha as informações encontradas nesta postagem. As regras reais de preços por tempo de uso podem mudar no futuro pelo Ministério da Energia de Ontário.
Em formação
Dias de semana de verão (1º de maio a 31 de outubro)
- Fora do pico: 19h00 - 07h00
- Pico médio: 07h00 - 11h00 e 17h00 - 19h00
- No pico: 11h00 - 17h00
Dias úteis de inverno (1 de novembro a 30 de abril)
- Fora do pico: 19h00 - 07h00
- Pico médio: 11h00 - 17h00
- No horário de pico: 07h00 - 11h00 e 17h00 - 19h00
Finais de semana
- Fora do pico: o dia todo
YYYY-MM-DDThh[:mm[:ss]]
porque os segundos só podem ser aplicados se os minutos forem aplicados?