This is a solution to the Age calculator app challenge on Frontend Mentor. Frontend Mentor challenges help you improve your coding skills by building realistic projects.
Note: Delete this note and update the table of contents based on what sections you keep.
Users should be able to:
- View an age in years, months, and days after submitting a valid date through the form
- Receive validation errors if:
- Any field is empty when the form is submitted
- The day number is not between 1-31
- The month number is not between 1-12
- The year is in the future
- The date is invalid e.g. 31/04/1991 (there are 30 days in April)
- View the optimal layout for the interface depending on their device's screen size
- See hover and focus states for all interactive elements on the page
- Bonus: See the age numbers animate to their final number when the form is submitted
- Solution URL: [https://www.frontendmentor.io/solutions/age-caculator-haA0eegIs0]
- Live Site URL: [https://age-caculator-rho.vercel.app/]
- Semantic HTML5 markup
- CSS custom properties
- Flexbox
- CSS Grid
- Desktop-first workflow
Form Validation and error handling Got a beter understanding of dates
function calcDate() {
if (isValid) {
//converting the user input into a birthdate
let birthDate = `${inputMonth.value}/${inputDay.value}/${inputYear.value}`;
console.log(birthDate);
//passing the birthdate and converting it into milliseconds
let birthdayOBj = new Date(birthDate);
console.log(birthdayOBj);
//subtracting the birthdate in milliseconds from the current millisecond
let age = Date.now() - birthdayOBj;
console.log(age);
//changing the millisecond into an actual date
let ageDate = new Date(age);
console.log(ageDate);
//subtracting the actual date
let ageYear = ageDate.getUTCFullYear() - 1970; //the 1970 is to get the actual age of the perosn if it is
// not there it would show how many years has passed since 1970
let ageMonth = ageDate.getUTCMonth();
let ageDay = ageDate.getDate() - 1;
///displaying everythin
outputDay.textContent = ageDay;
outputMonth.textContent = ageMonth;
outputYear.textContent = ageYear;
} else {
alert("error");
}
}
- Frontend Mentor - Oluwatobiiiiii
- Twitter - @Oluwatobicodes