I want to check if age received from input less than 3 month, lies in range between 3 month and 3 years, or greater than 7 years. So here is my code:
var today = new Date();
var age = (today - new Date('11.11.2010')) / (24 * 60 * 60 * 1000);
var threeMonth = new Date();
var threeYears = new Date();
var sevenYears = new Date();
var threeMonth = new Date(threeMonth.getFullYear(), threeMonth.getMonth() - 3, threeMonth.getDate());
var threeYears = new Date(threeYears.getFullYear() - 3, threeYears.getMonth(), threeYears.getDate());
var sevenYears = new Date(sevenYears.getFullYear() - 7, sevenYears.getMonth(), sevenYears.getDate());
var diff1 = (today - threeMonth) / (24 * 60 * 60 * 1000);
var diff2 = (today - threeYears) / (24 * 60 * 60 * 1000);
var diff3 = (today - sevenYears) / (24 * 60 * 60 * 1000);
if (age < diff1) {
console.log('less than 3 month')
} else if (age > diff2 && age < diff3) {
console.log('greater than 3 month, less than seven years')
} else if (age > diff3) {
console.log('greater than seven years')
}
I just recently got acquainted with programming, and doubts plagued me about whether I had missed something, and besides, the code is huge and hard to read. Is there any more correct way to solve this problem?