-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathscript.js
More file actions
105 lines (90 loc) · 3.69 KB
/
script.js
File metadata and controls
105 lines (90 loc) · 3.69 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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
function calculateAge() {
const dayInput = document.getElementById("dayInput").value.trim();
const monthInput = document.getElementById("MonthInput").value.trim();
const yearInput = document.getElementById("YearInput").value.trim();
// Check if any of the input fields are empty
if (dayInput === "" || monthInput === "" || yearInput === "") {
const errorMessage1 = document.getElementById("dayErrorMessage");
const errorMessage2 = document.getElementById("monthErrorMessage");
const errorMessage3 = document.getElementById("yearErrorMessage");
errorMessage1.innerText = "This field is required";
errorMessage2.innerText = "This field is required";
errorMessage3.innerText = "This field is required";
const inputFields = document.querySelectorAll("input");
inputFields.forEach((input) => {
input.style.border = "1px solid var(--errorColor)";
});
const labels = document.querySelectorAll("label");
labels.forEach((label) => {
label.style.color = "var(--errorColor)";
});
// Add event listener to each input field
inputFields.forEach((input) => {
// Event listener for click
input.addEventListener("click", () => {
// Reset error messages
const errorMessage1 = document.getElementById("dayErrorMessage");
const errorMessage2 = document.getElementById("monthErrorMessage");
const errorMessage3 = document.getElementById("yearErrorMessage");
errorMessage1.innerText = "";
errorMessage2.innerText = "";
errorMessage3.innerText = "";
// Reset border styles
inputFields.forEach((input) => {
input.style.border = "1px solid var(--backgroundColor)"; // Change border to transparent
});
// Reset label colors
const labels = document.querySelectorAll("label");
labels.forEach((label) => {
label.style.color = ""; // Reset color to default (inherit)
});
});
});
return;
}
// Parse the input values as integers
const day = parseInt(dayInput);
const month = parseInt(monthInput);
const year = parseInt(yearInput);
let currentDate = new Date();
// Reset error messages
const errorMessage1 = document.getElementById("dayErrorMessage");
errorMessage1.innerText = "";
const errorMessage2 = document.getElementById("monthErrorMessage");
errorMessage2.innerText = "";
const errorMessage3 = document.getElementById("yearErrorMessage");
errorMessage3.innerText = "";
// Validate input fields
if (dayInput > 31) {
errorMessage1.innerText = "Must be a valid day";
}
if (monthInput > 12) {
errorMessage2.innerText = "Must be a valid month";
}
if (yearInput > 2024 || yearInput.length < 4 || yearInput < 1940) {
errorMessage3.innerText = "Must be a valid year";
}
// Check if any error messages were displayed
if (
!errorMessage1.innerText &&
!errorMessage2.innerText &&
!errorMessage3.innerText
) {
// Calculate the Age
let age = currentDate.getFullYear() - year;
let currentMonth = currentDate.getMonth() + 1;
let currentDay = currentDate.getDate();
if (currentMonth < month || (currentMonth === month && currentDay < day)) {
age--;
console.log(
age + " years, " + currentMonth + " months, " + currentDay + " days"
);
}
const yearResult = document.getElementById("yearResult");
yearResult.textContent = age;
const monthResult = document.getElementById("monthResult");
monthResult.textContent = currentMonth;
const dayResult = document.getElementById("dayResult");
dayResult.textContent = currentDay;
}
}