FreeCodeCampChina / FreeCodeCampChina/freecodecamp.cn

FCC第304题的检验问题

Open
#415 3 comments 0 reactions 0 assignees View on GitHub
in progress
Dominant language
CSS
Stars
37.8k
Forks
1.4k
PR merge metrics
No merged PRs in 30d

Description

#### 浏览器信息
* 浏览器名称,版本号 :360
* 操作系统 win7

#### 问题描述
* 题目:[Friendly Date Ranges]
让日期区间更友好!

把常见的日期格式如:YYYY-MM-DD 转换成一种更易读的格式。

易读格式应该是用月份名称代替月份数字,用序数词代替数字来表示天 (1st 代替 1).

这个题目的通过检测的标准之一是:makeFriendlyDates(["2010-10-23", "2011-10-22"]) 应该返回 ["October 23rd, 2010","October 22nd"],这个不合题目要求
#### 你的代码

```
function makeFriendlyDates(arr) {
var r1=arr[0].split("-"),r2=arr[1].split("-"),res = [];
var year = new Date().getFullYear().toString();
var month= {"01":"January","02":"February","03":"March","04":"April","05":"May","06":"June","07":"July","08":"August","09":"September","10":"October","11":"November","12":"December"};
var lis = {"01":"1st","02":"2nd","03":"3rd","04":"4th","05":"5th","06":"6th","07":"7th","08":"8th","09":"9th","10":"10th","11":"11th","12":"12th","13":"13th","14":"14th","15":"15th","16":"16th","17":"17th","18":"18th","19":"19th","20":"20th","21":"21st","22":"22nd","23":"23rd","24":"24th","25":"25th","26":"26th","27":"27th","28":"28th","29":"29th","30":"30th","31":"31st"};

if(r1[0]>r2[0]){
return undefined;
}

if(r1.join("")===r2.join("")){
res.push(month[r2[1]]+" "+lis[r2[2]]+", "+r2[0]);
return res;
}
if((r2[0]-r1[0]<1)||(r2[0]-r1[0]<2&&r1[1]>r2[1])||(r2[0]-r1[0]<2&&r1[1]===r2[1]&&r1[2]>r2[2])){
//小于一年,后面不写年
if(r1[1] === r2[1]){
//同月,后面不写月
if(r1[0] !== year){
res.push(month[r1[1]]+" "+lis[r1[2]]+", "+r1[0]);
res.push(lis[r2[2]]);
}else{
res.push(month[r1[1]]+" "+lis[r1[2]]);
res.push(lis[r2[2]]);
}

}else{
//不同月,后面写月
if(r1[0] !== year){
res.push(month[r1[1]]+" "+lis[r1[2]]+", "+r1[0]);
res.push(month[r2[1]]+" "+lis[r2[2]]);
}else{
res.push(month[r1[1]]+" "+lis[r1[2]]);
res.push(month[r2[1]]+" "+lis[r2[2]]);
}
}
}else{
//大于一年,全写
res.push(month[r1[1]]+" "+lis[r1[2]]+", "+r1[0]);

res.push(month[r2[1]]+" "+lis[r2[2]]+", "+r2[0]);

}


return res;
}
makeFriendlyDates(["2010-10-23", "2011-10-22"]);
```

#### 截图(如果有)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.