Introdução:
No hemisfério norte (Europa, América do Norte etc.), as estações são divididas assim:
- Primavera: março, abril, maio
- verão: junho, julho, agosto
- outono: setembro, outubro, novembro
- inverno: dezembro , Janeiro fevereiro
No hemisfério sul, no entanto (Austrália, América do Sul etc.), as estações são divididas assim:
- Primavera: setembro, outubro, novembro
- verão: dezembro, janeiro, fevereiro
- outono: março, abril, maio
- inverno: Junho julho Agosto
Essa diferença se deve à posição do sol em relação ao equador, onde os hemisférios norte e sul têm estações opostas.
Entrada:
Neste desafio, tomaremos duas entradas:
- Um para o mês (
1 <= m <= 12ou0 <= m <= 11) (exemplos e casos de teste são todos com 1 índice). - E um para os cinco "grupos de posições" nas latitudes da Terra (
-2 <= p <= 2), onde-2é o Antártico,-1é o hemisfério sul excluindo o Antártico,0são os trópicos nas proximidades do equador,1é o hemisfério norte excluindo o Ártico e2é o Ártico.
Embora o Ártico, o Antártico e os Trópicos, claro, ainda tenham estações, para o bem desse desafio, diremos que o Ártico e o Antártico estão em um estado constante deWinter, e os Trópicos estão em um estado constante deSummer.
Aqui está uma representação visual desses cinco grupos, onde -2fica o Círculo Antártico; -1entre o Trópico de Capricórnio e o Círculo Antártico; 0entre o Trópico de Capricórnio e o Trópico de Câncer; 1entre o Círculo Polar Ártico e o Trópico de Câncer; e -2o círculo ártico.

Fonte: COSMOS - A Enciclopédia SAO de Astronomia
Resultado:
Um dos Spring, Summer, Autumn, ou Winter, seguindo estas regras:
- É a posição de entrada
2ou-2(Ártico ou Antártico), sempre saídaWinter. - É a posição de entrada
0(trópicos), sempre saídaSummer. - É a entrada de posição
1(hemisfério norte), produz uma das quatro estações do ano com base na entrada do mês:Spring(m = [3,5]);Summer(m = [6,8]);Autumn(m = [9,11]);Winter(m = 12 or m = [1,2]) - É a entrada de posição
-1(hemisfério sul), produz uma das quatro estações do ano com base na entrada do mês:Spring(m = [9,11]);Summer(m = 12 or m = [1,2]);Autumn(m = [3,5]);Winter(m = [6,8])
Regras do desafio:
- Saída de qualquer quatro valores distintos de sua escolha, indicando
Spring,Summer,Autumn, ouWinter(por favor, indicar o que você já usou em sua resposta).
-15 bytes bônus se você saídaSpring,Summer,Autumn, ouWintercomo texto (maiúsculas e minúsculas, por isso pode ser totalmente minúsculas ou totalmente em maiúsculas, bem como, em vez do título de caso de uso). - A entrada do mês pode estar em qualquer formato razoável. Pode ser um número inteiro com índice 0 ou 1, objeto Data, String mês, etc.
- Entrada de posição será sempre uma dessas possíveis cinco entradas
-2,-1,0,1,2.
Regras gerais:
- Isso é código-golfe , então a resposta mais curta em bytes vence.
Não permita que idiomas com código de golfe o desencorajem a postar respostas com idiomas que não sejam codegolf. Tente encontrar uma resposta o mais curta possível para 'qualquer' linguagem de programação. - As regras padrão se aplicam à sua resposta, para que você possa usar STDIN / STDOUT, funções / método com os parâmetros adequados e programas completos do tipo retorno. Sua chamada.
- As brechas padrão são proibidas.
- Se possível, adicione um link com um teste para o seu código.
- Além disso, adicione uma explicação, se necessário.
Casos de teste:
Position 1-indexed Month Output
-2 8 (August) Winter
-2 12 (December) Winter
-1 3 (March) Autumn
-1 5 (May) Autumn
-1 8 (August) Winter
-1 12 (December) Summer
0 1 (January) Summer
0 7 (July) Summer
1 1 (January) Winter
1 4 (April) Spring
1 7 (July) Summer
1 12 (December) Winter
2 2 (February) Winter
2 9 (September) Winter