支持哪些Ubuntu版本?


16

给定输入日期,您的输入将输出该日期Ubuntu Linux发行版受支持版本的完整列表。

所有版本完整列表如下:

版本代码名称发布日期

4.10 Warty Warthog 2004-10-20 2006-04-30
5.04 Hoary Hedgehog 2005-04-08 2006-10-31
5.10微风Bad 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长臂猿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 Karmic Koala 2009-10-29 2011-04-30
10.04 LTS Lucid Lynx 2010-04-29 2013-05-09 2015-04-30(服务器)
10.10特立独行的猫鼬2010-10-10 2012-04-10
11.04 Natty Narwhal 2011-04-28 2012-10-28
11.10 Oneiric豹猫2011-10-13 2013-05-09
12.04 LTS精确的穿山甲2012-04-26 2017-04-26
12.10量子格查尔2012-10-18 2014-05-16
13.04环环尾赛2013-04-25 2014-01-27
13.10 uc鱼Sal 2013-10-17 2014-07-17
14.04 LTS Trusty Tahr 2014-04-17 2019-04
14.10 Utopic独角兽2014-10-23 2015-07-23
15.04生动的Vervet 2015-04-23 2016-01
15.10狡猾的狼人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
  • 超出表中捕获的完整日期范围的日期将没有输出
  • 输入日期格式灵活,但必须包含年,月和日的一些枚举。从一个纪元开始的天数或秒数(或其他单位)不是有效的输入格式。
  • 输出列表可以以您的语言方便的任何格式给出
  • 您可以使用自己语言的datetime函数
  • 您可以假设所有输入均有效

例子:

输入输出:

2000-01-01    
2004-10-20 4.10
2005-05-05 4.10,5.04
2006-06-06 5.04、5.10、6.06
2010-10-10 6.06LTS服务器,8.04LTS,9.04、9.10、10.04LTS,10.10
2021-04-30 16.04LTS
2021-05-01    

4
微风Bad ...?
Alex A.

您的一些示例是不正确的。2010-10-10应该返回6.06LTS-server, 8.04LTS, 9.04, 9.10LTS, 10.04LTS, 10.10
Mwr247 '16

@ Mwr247谢谢-我解决了那个问题。您还看到其他错误吗?
Digital Trauma

@ Mwr247啊-我在传递给函数时忘了引用日期字符串。
Digital Trauma

1
@DigitalTrauma哎呀!我在那里删除了一个分组以保存两个字符,但没有意识到它对条件的影响。现在已修复。
Mwr247 '16

Answers:


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吗?或最简单的验证方法是什么?
Digital Trauma

@DigitalTrauma是的,只需将函数分配给变量(F=在上面的代码之前添加),然后通过它调用函数(F("2010-10-10"))。您可以在任何现代浏览器开发人员控制台(f12键)中运行它。
Mwr247 '16

+1-现在看起来不错!(不确定我为什么对我自己的问题而不是你的回答发表我先前的评论-哦,对了-你明白了:))
Digital Trauma
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.