-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path06-friendly-date-ranges.js
More file actions
91 lines (76 loc) · 2.28 KB
/
06-friendly-date-ranges.js
File metadata and controls
91 lines (76 loc) · 2.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
function makeFriendlyDates(arr) {
//Set variables for current date and dates passed to function
var today = new Date();
var currentMonth = today.getMonth();
var currentDate = today.getDate();
var currentYear = today.getFullYear();
var startDateMonth = parseInt(arr[0].slice(5,7));
var startDateDate = parseInt(arr[0].slice(-2));
var startDateYear = parseInt(arr[0].slice(0,4));
var endDateMonth = parseInt(arr[1].slice(5,7));
var endDateDate = parseInt(arr[1].slice(-2));
var endDateYear = parseInt(arr[1].slice(0,4));
// Define function to convert cardinal numbers to ordinal numbers
function ordinalDate(date) {
if (date === 1 || date === 21 || date === 31) {
return date + "st";
} else if (date === 2 || date === 22) {
return date + "nd";
} else if (date ===3 || date === 23) {
return date + "rd";
} else {
return date + "th";
}
}
// Define funciton to convert number month to string month name
function monthName(month) {
var months = ["", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
return months[month];
}
var toPrint = [true, true, true, true, true, true];
if (arr[0] === arr[1]) {
toPrint[3] = false;
toPrint[4] = false;
toPrint[5] = false;
}
if (startDateYear === endDateYear || endDateYear === startDateYear + 1) {
toPrint[5] = false;
if (startDateMonth === endDateMonth && endDateDate > startDateDate){
toPrint[3] = false;
}
}
if (startDateYear === currentYear && toPrint[5] === false) {
toPrint[2] = false;
}
if (startDateMonth === endDateMonth && startDateDate === endDateDate){
toPrint[5] = true;
}
// Build friendly date strings
var startDateStr = "";
var endDateStr = "";
if (toPrint[0]) {
startDateStr += monthName(startDateMonth) + " ";
}
if (toPrint[1]) {
startDateStr += ordinalDate(startDateDate);
}
if (toPrint[2]) {
startDateStr += ", " + startDateYear;
}
if (toPrint[3]) {
endDateStr += monthName(endDateMonth) + " ";
}
if (toPrint[4]) {
endDateStr += ordinalDate(endDateDate);
}
if (toPrint[5]) {
endDateStr += ", " + endDateYear;
}
if (arr[0] === arr[1]) {
console.log([startDateStr]);
return [startDateStr];
} else {
console.log([startDateStr, endDateStr]);
return [startDateStr, endDateStr];
}
}