Какие версии Ubuntu поддерживаются?


16

Учитывая дату ввода, ваша запись выведет полный список поддерживаемых версий дистрибутива Ubuntu Linux на эту дату.

Полный список всех релизов выглядит следующим образом :

Версия Кодовое название Дата выпуска Поддерживается до

4.10 Warty Warthog 2004-10-20 2006-04-30
5.04 Седой Еж 2005-04-08 2006-10-31
5.10 Breezy Badger 2005-10-13 2007-04-13
6.06 LTS Dapper Drake 2006-06-01 2009-07-14 2011-06-01 (Сервер)
6.10 Edgy Eft 2006-10-26 2008-04-25
7.04 Feisty Fawn 2007-04-19 2008-10-19
7.10 Gutsy Gibbon 2007-10-18 2009-04-18
8.04 LTS Hardy Heron 2008-04-24 2011-05-12 2013-05-09 (Сервер)
8.10 Intrepid Ibex 2008-10-30 2010-04-30
9.04 Jaunty Jackalope 2009-04-23 2010-10-23
9.10 Кармическая Коала 2009-10-29 2011-04-30
10.04 LTS Lucid Lynx 2010-04-29 2013-05-09 2015-04-30 (Сервер)
10.10 Maverick Meerkat 2010-10-10 2012-04-10
11.04 Натти Нарвал 2011-04-28 2012-10-28
11.10 Oneiric Ocelot 2011-10-13 2013-05-09
12.04 LTS Precise Pangolin 2012-04-26 2017-04-26
12.10 Квантовая Кецаль 2012-10-18 2014-05-16
13,04 рвения Ringtail 2013-04-25 2014-01-27
13.10 Saucy Salamander 2013-10-17 2014-07-17
14.04 LTS Trusty Tahr 2014-04-17 2019-04
14.10 Utopic Unicorn 2014-10-23 2015-07-23
15.04 Vivid Vervet 2015-04-23 2016-01
15.10 Wily Werewolf 2015-10-22 2016-07
16.04 LTS Xenial Xerus 2016-04-21 2021-04

правила

  • Для каждой поддерживаемой версии будет выведена точная строка версии, например 4.10
  • Для версий LTS (долгосрочная поддержка), LTSбудут добавлены к версии
  • Три самые старые версии LTS выпускаются в двух вариантах - для настольных компьютеров и серверов. Если обе эти версии LTS поддерживаются на данную дату, выводом будет просто строка версии, как указано выше. Однако, если поддерживается только версия сервера, вы должны добавить -serverв конец строки версии
  • На момент написания этой статьи 4 из последних версий имели только YYYY-MM в поддерживаемых до даты. Вы должны относиться к этим датам, как если бы они были последним днем ​​данного месяца. например, 2019-04 должен рассматриваться как 2019-04-30
  • Для дат за пределами полного диапазона дат, зафиксированного в таблице, вывод не будет
  • Форматы вводимых дат являются гибкими, но должны содержать некоторые перечисления года, месяца и дня. Количество дней или секунд (или других единиц) из эпохи не являются допустимыми форматами ввода.
  • Списки вывода могут быть предоставлены в любом формате, удобном для вашего языка
  • Вы можете использовать функции даты и времени на вашем языке
  • Вы можете предположить, что все данные верны

Примеры:

Ввод, вывод:

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-сервер, 8.04LTS, 9.04, 9.10, 10.04LTS, 10.10
2021-04-30 16.04LTS
2021-05-01    

4
Breezy Badger ...?
Алекс А.

Некоторые из ваших примеров неверны. 2010-10-10должен вернуться6.06LTS-server, 8.04LTS, 9.04, 9.10LTS, 10.04LTS, 10.10
Mwr247

@ Mwr247 Спасибо - я исправил это. Вы видите другие ошибки?
Цифровая травма

@ Mwr247 Ах - я забыл процитировать строку даты при передаче функции.
Цифровая травма

1
@DigitalTrauma Ой! Я удалил группу, чтобы сохранить два символа, но не осознал, как это отразилось на этом аспекте условия. Это сейчас исправлено.
Mwr247

Ответы:


5

JavaScript (ES6), 552 байта

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

Построение массива данных занимает ~ 68% от общего размера. Остальное - форматирование ввода, поиск в массиве и построение выходной строки.

Строка данных разбивается на массив массивов длиной 2 (обычная) или 3 (серверная). Даты сокращаются до числового формата с удалением начального «20» (вместе с любыми начальными нулями после этого). LTS обозначается отрицательной датой начала. Номера версий могут быть легко получены из всех, кроме двух последних цифр положительной даты начала, разделенных на 100.


Woohoo - первый ответ! Извините - я новичок в JS - могу ли я как-нибудь протестировать ES6 в браузере? Или какой самый простой способ проверить?
Цифровая травма

@DigitalTrauma Да, просто назначьте функцию переменной (добавьте F=перед кодом выше), а затем просто вызовите функцию через нее ( F("2010-10-10")). Вы можете запустить его в любой современной браузерной консоли разработчика (клавиша f12).
Mwr247

+1 - хорошо выглядит сейчас! (не уверен, почему я сравнил свои предыдущие комментарии со своим собственным вопросом, а не с вашим ответом - о, хорошо - вы поняли :))
Цифровая травма
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.