Dada una fecha de entrada, su entrada generará la lista completa de versiones compatibles de la distribución Ubuntu Linux en esa fecha.
La lista completa de todos los lanzamientos es la siguiente:
Versión Nombre del código Fecha de lanzamiento Compatible hasta 4.10 Warty Warthog 2004-10-20 2006-04-30 5.04 Erizo canoso 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 (Servidor) 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 (Servidor) 8.10 Ibex Intrepid 2008-10-30 2010-04-30 9.04 Jaunty Jackalope 2009-04-23 2010-10-23 9.10 Karmic Koala 2009-10-29 2011-04-30 10.04 LTS Lucid Lynx 2010-04-29 2013-05-09 2015-04-30 (Servidor) 10.10 Maverick Meerkat 2010-10-10 2012-04-10 11.04 Natty Narwhal 2011-04-28 2012-10-28 11.10 Ocelote onírico 13/10/2011 2013-05-09 12.04 LTS Pangolin Preciso 2012-04-26 2017-04-26 12.10 Quetzal Quantal 2012-10-18 2014-05-16 13.04 Raring 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
Reglas
- Para cada versión compatible, se generará la cadena de versión exacta, p. Ej.
4.10
- Para las versiones LTS (soporte a largo plazo),
LTS
se agregarán a la versión - Las tres versiones más antiguas de LTS vienen en dos sabores: escritorio y servidor. Si ambas versiones de LTS son compatibles en la fecha dada, la salida será simplemente la cadena de versión como se indicó anteriormente. Sin embargo, si solo se admite la versión del servidor, debe agregar
-server
al final de la cadena de versión - Al momento de escribir, 4 de las versiones recientes solo tienen AAAA-MM en sus fechas admitidas hasta. Debe tratar estas fechas como si fueran el último día del mes dado. por ejemplo, 2019-04 debe tratarse como 2019-04-30
- No habrá salida para fechas fuera del rango de fechas completo capturado en la tabla
- Los formatos de fecha de entrada son flexibles, pero deben contener alguna enumeración de Año, Mes y Día. El número de días o segundos (u otras unidades) de una época no son formatos de entrada válidos.
- Las listas de salida se pueden dar en cualquier formato que sea conveniente para su idioma
- Puede usar las funciones de fecha y hora de su idioma
- Puede suponer que todas las entradas son válidas
Ejemplos:
De entrada y salida: 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-server, 8.04LTS, 9.04, 9.10, 10.04LTS, 10.10 2021-04-30 16.04LTS 2021-05-01
2010-10-10
debería volver6.06LTS-server, 8.04LTS, 9.04, 9.10LTS, 10.04LTS, 10.10
Respuestas:
JavaScript (ES6), 552 bytes
La construcción de la matriz de datos ocupa ~ 68% del tamaño total. El resto es formato de entrada, búsqueda de matriz y construcción de cadena de salida.
La cadena de datos se divide en una matriz de matrices de 2 (normal) o 3 (servidor) de longitud. Las fechas se reducen a formato numérico, con el "20" inicial eliminado (junto con los ceros iniciales después de eso). LTS se denota por una fecha de inicio negativa. Los números de versión pueden derivarse convenientemente de todos menos los dos últimos dígitos de la fecha de inicio positiva, divididos por 100.
fuente
F=
antes del código anterior) y luego simplemente llame a la función a través de ella (F("2010-10-10")
). Puede ejecutarlo en cualquier consola de desarrollador de navegador moderna (tecla f12).