Quais versões do Ubuntu são suportadas?

16

Dada uma data de entrada, sua entrada exibirá a lista completa de versões suportadas da distribuição Ubuntu Linux nessa data.

A lista completa de todos os lançamentos é a seguinte:

Versão Nome do código Data de lançamento Suportado até

4.10 Warty Warthog 2004-10-20 2006-04-30
5.04 Hoary Hedgehog 2005-04-08 31/10/10
5.10 Breezy Badger 2005-10-13 13-04-2007
6.06 LTS Dapper Drake 2006-06-01 2009-07-14 2011-06-01 (Servidor)
6.10 Edgy Eft 26-10-2006 2008-04-25
7.04 Feisty Fawn 19-04-2007 19-10-2008
7.10 Gutsy Gibbon 18/10/2007 18-04-2009
8.04 LTS Hardy Heron 2008-04-24 2011-05-12 2013-05-09 (Servidor)
8.10 Intrepid Ibex 30/10/2008 30/04/2010
9.04 Jaunty Jackalope 23-04-2009 23-10-10
9.10 Karmic Koala 29-10-2009 30-04-2011
10.04 LTS Lucid Lynx 2010-04-29 2013-05-09 2015-04-30 (Servidor)
10.10 Maverick Meerkat 10/10/2010 10/04/2012
11.04 Natty Narwhal 28/04/2011 28/10/2012
11.10 Oneiric Ocelot 13/10/2011 09/05/2013
12.04 LTS Precise Pangolin 2012-04-26 2017-04-26
12.10 Quetzal Quantal 18/10/2012 16/05/2014
13.04 Raring Ringtail 2013-04-25 27-01-14
13.10 Salamandra picante 2013-10-17 2014-07-17
14.04 LTS Trusty Tahr 2014-04-17 2019-04
14.10 Unicórnio utópico 23-10-2014 23-07-2015
15.04 Vivid Vervet 23-04-2016 2016-01
15.10 Lobisomem astuto 22-10-2016 2016-07
16.04 LTS Xenial Xerus 2016-04-21 2021-04

Regras

  • Para cada versão suportada, a seqüência exata da versão será exibida, 4.10
  • Para versões LTS (suporte a longo prazo), LTSserá anexado à versão
  • As três versões mais antigas do LTS estão disponíveis em dois tipos - desktop e servidor. Se ambas as versões do LTS forem suportadas na data especificada, a saída será simplesmente a string da versão, como acima. No entanto, se apenas a versão do servidor for suportada, você deverá anexar -serverao final da string da versão
  • No momento da redação deste artigo, quatro das versões recentes tinham apenas AAAA-MM em suas datas de suporte até. Você deve tratar essas datas como se fossem o último dia do mês especificado. por exemplo, 2019-04 deve ser tratado como 30-04-2019
  • Não haverá saída para datas fora do período completo capturado na tabela
  • Os formatos de data de entrada são flexíveis, mas devem conter algumas enumerações de Ano, Mês e Dia. O número de dias ou segundos (ou outras unidades) de uma época não é um formato de entrada válido.
  • As listas de saída podem ser fornecidas em qualquer formato que seja conveniente para o seu idioma
  • Você pode usar funções de data e hora do seu idioma
  • Você pode assumir que todas as entradas são válidas

Exemplos:

Entrada: Saída:

01-01-200 2000    
20/10/2004 4.10
05-05-2005 4.10, 5.04
2006-06-06 5.04, 5.10, 6.06LTS
2010-10-10 6.06LTS-server, 8.04LTS, 9.04, 9.10, 10.04LTS, 10.10
2021-04-30 16.04LTS
2021-05-01    
Trauma Digital
fonte
4
Texugo ventoso ...?
Alex A.
Alguns de seus exemplos estão incorretos. 2010-10-10deve retornar #6.06LTS-server, 8.04LTS, 9.04, 9.10LTS, 10.04LTS, 10.10
Mwr247 /
@ Mwr247 Obrigado - eu consertei esse. Você vê outros erros?
Digital Trauma
@ Mwr247 Ah - esqueci de citar a string de data ao passar para uma função.
Digital Trauma
1
@DigitalTrauma Whoops! Eu removi um agrupamento para salvar dois caracteres, mas não percebi o efeito que ele teve sobre esse aspecto da condição. Está consertado agora.
precisa saber é o seguinte

Respostas:

5

JavaScript (ES6), 552 bytes

d=>(d=d.replace(/^20|-/g,'')*1,[for(r of'41020,60430;50408,61031;51013,70413;-60601,90714,110601;61026,80425;70419,81019;71018,90418;-80424,110512,130509;81030,100430;90423,101023;-91029,110430;-100429,130509,150430;101010,120410;110428,121028;111013,130509;-120426,170426;121018,140516;130425,140127;131017,140717;-140417,190430;141023,150723;150423,160131;151022,160731;-160421,210430'.split`;`.map(a=>a.split`,`))if(d>=(a=Math.abs(f=r[0]))&&((m=d<=r[1])||r[2]&&d<=r[2]))((a+'').slice(-6,-2)/100).toFixed(2)+'LTS'.slice(f)+(m?'':'-server')].join`, `)

A construção da matriz de dados ocupa aproximadamente 68% do tamanho total. O restante é formatação de entrada, pesquisa de matriz e construção de cadeias de saída.

A sequência de dados é dividida em uma matriz de matrizes de 2 (normal) ou 3 (servidor) de comprimento. As datas são reduzidas para o formato numérico, com o inicial "20" retirado (junto com os zeros à esquerda depois disso). LTS é indicado por uma data de início negativa. Os números de versão podem ser convenientemente derivados de todos, com exceção dos dois últimos dígitos da data de início positiva, divididos por 100.

Mwr247
fonte
Woohoo - primeira resposta! Desculpe - eu sou iniciante em JS - posso testar o ES6 em um navegador de alguma forma? Ou qual é a maneira mais fácil de verificar?
Digital Trauma
@DigitalTrauma Sim, apenas atribua a função a uma variável (adicione F=antes do código acima) e depois chame a função através dela ( F("2010-10-10")). Você pode executá-lo em qualquer console moderno de desenvolvedor de navegador (tecla f12).
Mwr247
+1 - Parece bom agora! (não tenho certeza por isso que eu coloquei meus comentários anteriores contra a minha própria pergunta e não a sua resposta - oh bem - você tem o ponto :))
Trauma Digital