fix(CI): Remove Friendly Date Ranges

This commit is contained in:
Mrugesh Mohapatra
2017-01-02 08:00:35 +00:00
parent 96e563fbe2
commit c0410ab071

View File

@ -378,87 +378,6 @@
} }
} }
}, },
{
"id": "a19f0fbe1872186acd434d5a",
"title": "Friendly Date Ranges",
"description": [
"Convert a date range consisting of two dates formatted as <code>YYYY-MM-DD</code> into a more readable format.",
"The friendly display should use month names instead of numbers and ordinal dates instead of cardinal (<code>1st</code> instead of <code>1</code>).",
"Do not display information that is redundant or that can be inferred by the user: if the date range ends in <em>less than a year</em> from when it begins, do not display the <em>ending year</em>.",
"Additionally, if the date range begins in the <em>current year</em> (i.e. it is currently the year 2016) and ends within one year, the year should not be displayed at the <em>beginning</em> of the friendly range.",
"If the range ends in the <em>same month</em> that it begins, do not display the <em>ending year or month</em>.",
"Examples:",
"<code>makeFriendlyDates([\"2016-07-01\", \"2016-07-04\"])</code> should return <code>[\"July 1st\",\"4th\"]</code>",
"<code>makeFriendlyDates([\"2016-07-01\", \"2018-07-04\"])</code> should return <code>[\"July 1st, 2016\", \"July 4th, 2018\"]</code>.",
"Remember to use <a href='http://forum.freecodecamp.com/t/how-to-get-help-when-you-are-stuck/19514' target='_blank'>Read-Search-Ask</a> if you get stuck. Try to pair program. Write your own code."
],
"challengeSeed": [
"function makeFriendlyDates(arr) {",
" return arr;",
"}",
"",
"makeFriendlyDates(['2016-07-01', '2016-07-04']);"
],
"solutions": [
"function makeFriendlyDates(str) {\n var thisYear = new Date().getFullYear();\n var dates = str.map(function(s) {return s.split('-').map(Number);});\n var start = dates[0];\n var end = dates[1];\n if (str[0] === str[1]) {\n return [readable(start)];\n }\n if (start[0] !== end[0]) {\n if (start[0] + 1 === end[0]){\n if (start[1] > end[1]){\n end[0] = undefined;\n }\n if (start[1] === end[1] && start[2] > end[2]){\n end[0] = undefined;\n }\n if (start[0] === thisYear){\n start[0] = undefined;\n }\n }\n return dates.map(readable);\n }\n end[0] = undefined;\n if (start[0] === thisYear){\n start[0] = undefined;\n }\n if (start[1] === end[1]) {\n end[1] = undefined;\n }\n return dates.map(readable);\n}\n\nfunction readable(arr) {\n var ordD = arr[2] + nth(arr[2]);\n if (!arr[1]) {\n return ordD;\n }\n return MONTH[arr[1]] + \" \" + ordD + (!arr[0] ? \"\" : \", \" + arr[0]);\n}\n\nvar MONTH = {1: \"January\",\n 2: \"February\",\n 3: \"March\",\n 4: \"April\",\n 5: \"May\",\n 6: \"June\",\n 7: \"July\",\n 8: \"August\",\n 9: \"September\",\n 10: \"October\",\n 11: \"November\",\n 12: \"December\"};\n\nfunction nth(d) {\n if(d>3 && d<21) return 'th';\n switch (d % 10) {\n case 1: return \"st\";\n case 2: return \"nd\";\n case 3: return \"rd\";\n default: return \"th\";\n }\n}"
],
"tests": [
"assert.deepEqual(makeFriendlyDates(['2016-07-01', '2016-07-04']), ['July 1st','4th'], 'message: <code>makeFriendlyDates([\"2016-07-01\", \"2016-07-04\"])</code> should return <code>[\"July 1st\",\"4th\"]</code>.');",
"assert.deepEqual(makeFriendlyDates(['2016-12-01', '2017-02-03']), ['December 1st','February 3rd'], 'message: <code>makeFriendlyDates([\"2016-12-01\", \"2017-02-03\"])</code> should return <code>[\"December 1st\",\"February 3rd\"]</code>.');",
"assert.deepEqual(makeFriendlyDates(['2016-12-01', '2018-02-03']), ['December 1st, 2016','February 3rd, 2018'], 'message: <code>makeFriendlyDates([\"2016-12-01\", \"2018-02-03\"])</code> should return <code>[\"December 1st, 2016\",\"February 3rd, 2018\"]</code>.');",
"assert.deepEqual(makeFriendlyDates(['2017-03-01', '2017-05-05']), ['March 1st, 2017','May 5th'], 'message: <code>makeFriendlyDates([\"2017-03-01\", \"2017-05-05\"])</code> should return <code>[\"March 1st, 2017\",\"May 5th\"]</code>');",
"assert.deepEqual(makeFriendlyDates(['2018-01-13', '2018-01-13']), ['January 13th, 2018'], 'message: <code>makeFriendlyDates([\"2018-01-13\", \"2018-01-13\"])</code> should return <code>[\"January 13th, 2018\"]</code>.');",
"assert.deepEqual(makeFriendlyDates(['2022-09-22', '2023-09-21']), ['September 22nd, 2022','September 21st'], 'message: <code>makeFriendlyDates([\"2022-09-22\", \"2023-09-21\"])</code> should return <code>[\"September 22nd, 2022\",\"September 21st\"]</code>.');",
"assert.deepEqual(makeFriendlyDates(['2022-09-05', '2023-09-05']), ['September 5th, 2022','September 5th, 2023'], 'message: <code>makeFriendlyDates([\"2022-09-05\", \"2023-09-05\"])</code> should return <code>[\"September 5th, 2022\",\"September 5th, 2023\"]</code>.');"
],
"type": "bonfire",
"MDNlinks": [
"String.prototype.split()",
"String.prototype.substr()",
"parseInt()"
],
"challengeType": 5,
"translations": {
"es": {
"title": "Rangos de Fechas Amigables",
"description": [
"Convierte un rango de fecha que conste de dos fechas en formato AAAA-MM-DD a un formato más legible",
"",
"La presentación amigable debería usar nombres de meses en inglés en lugar de números y fechas ordinales en lugar de cardinales (\"1st\" en lugar de \"1\").",
"No presentes información redundante o que pueda ser inferida por el usuario: si el rango de fechas termina en menos de un año desde la fecha incial, no presentes el año final. Si el rango termina en el mismo mes de la fecha inicial, no presentes ni el mes ni el año final.",
"Además, si el rango de fechas comienza en el año actual y termina en un año o menos, no debes presentar el año al comienzo del rango amigable."
]
},
"it": {
"title": "Intervalli di Date Leggibili",
"description": [
"Converti un intervallo di date composto da due date in formato <code>YYYY-MM-DD</code> in un formato più leggibile.",
"Il formato leggibile deve usare i nomi dei mesi (in inglese) e le i numeri dei giorni in formato ordinale invece che cardinale (sempre in inglese. Ad esempio <code>1st</code> invece di <code>1</code>).",
"Non mostrare informazioni ridondanti o che siano ricavabili dall'utente: se l'intervallo di date termina in <em>meno di un anno</em> da quando inizia, non mostrare l'<em>anno in cui l'intervallo termina</em>.",
"In più, se l'intervallo di date incomincia nell'<em>anno corrente</em> (siamo nell'anno 2016) e finisce nel giro di un anno, l'anno non deve essere mostrato all'<em>inizio</em> del risultato.",
"Se l'intervallo di date finisce nello <em>stesso mese</em> in cui incomincia, non mostrare l'<em>anno di termine nè il mese</em>.",
"Esempi:",
"<code>makeFriendlyDates([\"2016-07-01\", \"2016-07-04\"])</code> deve ritornare <code>[\"July 1st\",\"4th\"]</code>",
"<code>makeFriendlyDates([\"2016-07-01\", \"2018-07-04\"])</code> deve ritornare <code>[\"July 1st, 2016\", \"July 4th, 2018\"]</code>.",
"Ricorda di usare <a href='http://forum.freecodecamp.com/t/how-to-get-help-when-you-are-stuck/19514' target='_blank'>Leggi-Cerca-Chiedi</a> se rimani bloccato. Prova a programmare in coppia. Scrivi il codice da te."
]
},
"pt-br": {
"title": "Intervalo de Datas Amigável",
"description": [
"Converta um intervalo de tempo que consiste de duas datas formatadas como <code>YYYY-MM-DD</code> em um formato mais legível.",
"O resultado deve usar o nome dos meses ao invés de números e datas ordinais ao invés de cardinais(<code>1st</code> ao invés de <code>1</code>).",
"Não mostre informação que é redundante ou que pode ser inferida pelo usuário: se o intevalo termina em <em>menos de um ano</em> da data de início, não mostre <em>o ano na data final</em>.",
"Além disso, se o intervalo começa no <em>no ano atual</em> (i.e. o ano atual é 2016) e termina no mesmo ano, o ano não deve ser mostrado no <em>início</em> do intevalo amigável.",
"Se o intervalo termina no <em>mesmo mês</em> em que começa, não mostre <em>o ano e o mês na data final</em>.",
"Examples:",
"<code>makeFriendlyDates([\"2016-07-01\", \"2016-07-04\"])</code> deve retornar <code>[\"July 1st\",\"4th\"]</code>",
"<code>makeFriendlyDates([\"2016-07-01\", \"2018-07-04\"])</code> deve retornar <code>[\"July 1st, 2016\", \"July 4th, 2018\"]</code>.",
"Lembre-se de usar <a href='http://forum.freecodecamp.com/t/how-to-get-help-when-you-are-stuck/19514' target='_blank'>Ler-Procurar-Perguntar</a> se você ficar preso. Tente programar em par. Escreva seu próprio código."
]
}
}
},
{ {
"id": "a2f1d72d9b908d0bd72bb9f6", "id": "a2f1d72d9b908d0bd72bb9f6",
"title": "Make a Person", "title": "Make a Person",