-
Notifications
You must be signed in to change notification settings - Fork 0
/
script.js
50 lines (39 loc) · 992 Bytes
/
script.js
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
let userInput = document.getElementById('date');
userInput.max = new Date().toISOString().split("T")[0];
let age = document.getElementById('age')
function calculateAge() {
let birthDate = new Date(userInput.value);
let d1 = birthDate.getDate();
let m1 = birthDate.getMonth() + 1;
let y1 = birthDate.getFullYear();
let toDay = new Date();
let d2 = toDay.getDate();
let m2 = toDay.getMonth() + 1;
let y2 = toDay.getFullYear();
let d3, m3 , y3;
y3 = y2 - y1;
if (m2 >= m1) {
m3 = m2 - m1;
}else{
y3--;
m3 = 12 + m2 - m1
}
if (d2 >= d1) {
d3 = d2 - d1;
}else{
m3--;
d3 = getDaysinMonth(y1 , m1) + d2 - d1;
}
if (m3 < 0) {
m3 = 11;
y3 --;
}
if (isNaN(y3) || isNaN(m3) || isNaN(d3)) {
age.innerHTML = `Please enter valid date.`;
} else {
age.innerHTML = `You are ${y3} years, ${m3} months, and ${d3} days old`;
}
}
function getDaysinMonth (year , month) {
return new Date(year , month , 0).getDate();
}