Które wersje Ubuntu są obsługiwane?

16

Podana data wejścia spowoduje wyświetlenie pełnej listy obsługiwanych wersji dystrybucji Ubuntu Linux w tym dniu.

Pełny wykaz wszystkich komunikatów jest następująca:

Wersja Nazwa kodowa Data wydania Obsługiwane do

4.10 Warty Warthog 2004-10-20 2006-04-30
5.04 Jeż Hoary 2005-04-08 2006-10-31
5.10 Breezy Badger 13.10.2005 2007-04-13
6.06 LTS Dapper Drake 2006-06-01 2009-07-14 2011-06-01 (Serwer)
6.10 Edgy Eft 2006-10-26 2008-04-25
7.04 Feisty Fawn 2007-04-19 2008-10-19
7.10 Gutsy Gibbon 18.10.2007 18.04.2009
8.04 LTS Hardy Heron 2008-04-24 2011-05-12 2013-05-09 (Serwer)
8.10 Intrepid Ibex 2008-10-30 2010-04-30
9.04 Jaunty Jackalope 23.04.2009 23.10.2010
9.10 Karmiczna koala 29.10.2009 30.04.2011
10.04 LTS Lucid Lynx 2010-04-29 2013-05-09 2015-04-30 (Serwer)
10.10 Maverick Meerkat 2010-10-10 2012-04-10
11.04 Natty Narwhal 28.04.2011 28.10
11.10 Oneiric Ocelot 13.10.2011 2013-05-09
12.04 LTS Precise Pangolin 26.04.2012 26.04.2017
12.10 Quetzal kwantowy 2012-10-18 2014-05-16
13.04 Raring Ringtail 25.04.2013 2014-01-27
13.10 Saucy Salamander 17.10.2013 2014-07-17
14.04 LTS Trusty Tahr 17.04.2014 2019-04
14.10 Utopiczny jednorożec 23.10.2014 2015-07-23
15.04 Vivid Vervet 23.04.2015 2016-01
15.10 Wilkołak wilkołak 22.10.2015 2016-07
16.04 LTS Xenial Xerus 21.04.2016 2021-04

Zasady

  • Dla każdej obsługiwanej wersji zostanie wydrukowany dokładny ciąg wersji, np 4.10
  • W przypadku wersji LTS (wsparcie długoterminowe) LTSzostanie dołączony do wersji
  • Trzy najstarsze wersje LTS występują w dwóch wersjach - stacjonarnej i serwerowej. Jeśli obie wersje LTS są obsługiwane w danym dniu, wynikiem będzie po prostu ciąg wersji, jak wyżej. Jeśli jednak obsługiwana jest tylko wersja serwerowa, musisz dołączyć -serverją na końcu łańcucha wersji
  • W chwili pisania tego artykułu 4 z najnowszych wersji mają tylko RRRR-MM w datach obsługiwanych do. Musisz traktować te daty tak, jakby były ostatnim dniem danego miesiąca. np. 2019-04 należy traktować jak 30.04.2019
  • Nie będzie danych wyjściowych dla dat poza pełnym zakresem dat zarejestrowanym w tabeli
  • Formaty danych wejściowych są elastyczne, ale muszą zawierać pewne wyliczenie roku, miesiąca i dnia. Liczba dni lub sekund (lub innych jednostek) z epoki nie jest prawidłowym formatem wejściowym.
  • Listy wyników można podawać w dowolnym formacie odpowiednim dla Twojego języka
  • Możesz korzystać z funkcji datetime w swoim języku
  • Możesz założyć, że wszystkie dane wejściowe są prawidłowe

Przykłady:

Wejście wyjście:

2000-01-01    
2004-10-20 4.10
2005-05-05 4.10, 5.04
2006-06-06 5.04, 5.10, 6.06LTS
2010-10-10 6.06LTS-serwer, 8.04LTS, 9.04, 9.10, 10.04LTS, 10.10
2021-04-30 16.04LTS
2021-05-01    
Cyfrowa trauma
źródło
4
Wietrzny Borsuk ...?
Alex A.,
Niektóre z twoich przykładów są niepoprawne. 2010-10-10powinien wrócić6.06LTS-server, 8.04LTS, 9.04, 9.10LTS, 10.04LTS, 10.10
Mwr247,
@ Mwr247 Dzięki - Naprawiłem ten. Czy widzisz jakieś inne błędy?
Cyfrowa trauma
@ Mwr247 Ah - Zapomniałem zacytować ciąg daty podczas przekazywania do funkcji.
Cyfrowa trauma
1
@DigitalTrauma Whoops! Usunąłem tam grupę, aby uratować dwie postacie, ale nie zdawałem sobie sprawy, jaki to miało wpływ na ten aspekt stanu. Teraz jest naprawione.
Mwr247

Odpowiedzi:

5

JavaScript (ES6), 552 bajtów

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`, `)

Zbudowanie tablicy danych zajmuje ~ 68% całkowitego rozmiaru. Reszta to formatowanie danych wejściowych, wyszukiwanie tablic i konstrukcja łańcucha wyjściowego.

Łańcuch danych jest podzielony na tablicę tablic o długości 2 (normalnej) lub 3 (serwerowej). Daty są redukowane do formatu numerycznego, z usuniętą początkową „20” (wraz z późniejszymi zerami). LTS jest oznaczony ujemną datą rozpoczęcia. Numery wersji można wygodnie wyprowadzić ze wszystkich oprócz dwóch ostatnich cyfr dodatniej daty początkowej, podzielonych przez 100.

Mwr247
źródło
Woohoo - pierwsza odpowiedź! Przepraszam - jestem nowicjuszem JS - czy mogę jakoś przetestować ES6 w przeglądarce? Lub jaki jest najłatwiejszy sposób weryfikacji?
Cyfrowa trauma
@DigitalTrauma Tak, po prostu przypisz funkcję do zmiennej (dodaj F=przed kodem powyżej), a następnie po prostu wywołaj funkcję przez nią ( F("2010-10-10")). Możesz go uruchomić w dowolnej nowoczesnej konsoli programisty przeglądarki (klawisz F12).
Mwr247
+1 - Teraz wygląda dobrze! (Nie jestem pewien, dlaczego moje poprzednie komentarze były sprzeczne z moim własnym pytaniem, a nie z odpowiedzią - no cóż - masz rację :))
Cyfrowa trauma