This repository has been archived by the owner on Aug 6, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2
/
index.ts
86 lines (83 loc) · 1.75 KB
/
index.ts
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
export interface IGenerationInfo {
name: string,
range: {
min: number,
max: number,
}
}
export function getGenerationByYear(birthYear: number): string {
if (birthYear < 1946) {
return "Traditionalist"
} else if (birthYear >= 1946 && birthYear < 1955) {
return "Older Boomer"
} else if (birthYear >= 1955 && birthYear < 1965) {
return "Younger Boomer"
} else if (birthYear >= 1965 && birthYear < 1971) {
return "Generation X (older)"
} else if (birthYear >= 1971 && birthYear < 1981) {
return "Generation X (younger)"
} else if (birthYear >= 1981 && birthYear < 1996) {
return "Generation Y"
} else if (birthYear >= 1996 && birthYear < 2011) {
return "Generation Z"
} else {
return "Generation Alpha"
}
}
export function getGenerationByAge(age: number): string {
const date = new Date()
const oldYear = date.getFullYear() - age
return getGenerationByYear(oldYear)
}
export function getAllGenerationsInfo(): IGenerationInfo[] {
const thisYear: number = new Date().getFullYear();
return [{
name: 'Traditionalist',
range: {
min: 0,
max: 1954,
},
}, {
name: 'Older Boomer',
range: {
min: 1955,
max: 1964,
},
}, {
name: 'Younger Boomer',
range: {
min: 1965,
max: 1970,
},
}, {
name: 'Generation X (older)',
range: {
min: 1971,
max: 1980,
},
}, {
name: 'Generation X (younger)',
range: {
min: 1971,
max: 1980,
},
}, {
name: 'Generation Y',
range: {
min: 1981,
max: 1995,
},
}, {
name: 'Generation Z',
range: {
min: 1996,
max: 2010,
},
}, {
name: 'Generation Alpha',
range: {
min: 2011,
max: thisYear,
},
}]
}