# FAQ: Code Challenges: JavaScript Fundamentals - howOld()

ha! wow, that fixed it xD I guess I’m living in the past.

1 Like

My next guess was going to be the missing full stops, but it looks like they are not expected.

1 Like

This one was ■■■■■■ hard to figure out for me!

This one gave me a bit of a headache trying to figure out the necessary equations. I feel pretty proud of my code, as I was able to write it out and run it on the first try - considering with how tricky the logic can be with this one, I surprised myself. Thought I’d share my code with some comments in case it might help anyone out, or if anyone notices another way to streamline it more.

``````const howOld = (age, year) => {
const currentYear = new Date().getFullYear(); // get current year
let ageDifference = year - currentYear; // dealing with differences
let calculatedAge = Math.abs(ageDifference + age); /* This is offsetting
the given negative value from when the year given is before the year born
for the second case */
if (year > currentYear) { //easy - future years
return `You will be \${calculatedAge} in the year \${year}`;
} else if (Math.abs(ageDifference) > age) { /* this is making sure the
ageDifference value is a positive integer for comparitive purposes */
return `The year \${year} was \${calculatedAge} years before you were born`;
} else { //only one case left, no need to explicitly specify
return `You were \${calculatedAge} in the year \${year}`;
}
}
``````

I’m so sad that my code wasn’t aproved, but it works! it gives you exactly what we need to know. I will try other way now, but before I deleted everything, I just wanted to share and ask what you think of my code

``````function howOld (age, year){
const actualYear = 2021;
if (year > actualYear){
newAge = (age + year) - actualYear
return 'You will be ' +newAge+' in the year '+year
}else if (year < actualYear){
newAge = (age - actualYear)+year
return 'You were '+newAge+ ' in the year '+year+' passed in'
} else {
newAge = (age - actualYear)+year
return 'The year '+year+' was' +newAge+' years before you were born'
}
}

console.log(howOld(40, 1960))
//It prints: You were -21 in the year 1960 passed in
``````

Here`s what I tried

const howOld = (age , year) => {

``````const today = new Date();

const CurrentYear = today.getFullYear();

const YearBorn = CurrentYear - age;

//console.log(YearBorn);
``````

if (year > CurrentYear ){

age = age + (year - CurrentYear);

return `You will be \${age} in the year \${year}.`

}else if (year < YearBorn ){

age = YearBorn - year;

return `The year \${year} was \${age} years before you were born.`;

}else if (year > YearBorn && year < CurrentYear ){

age = year - YearBorn;

return `You were \${age} in the year \${year}.`;

}

};

console.log(howOld(32,2000));

console.log(howOld(32,2050));

console.log(howOld(32,1950));

I had to search for this “new Date();” & “today.getFullYear();” as I entered date manually before."

If you have any comments, I would be glade as this is my 1st time coding

This is what I used.

``````const howOld = (age, year) => {

if ( year > 2021) {

let yearDifference = year - 2021;

return `You will be \${age + yearDifference} in the year \${year}`;

} else if (year < 2021) {

let yearDifference = 2021 - year;

if (age < yearDifference) {

return `The year \${year} was \${yearDifference - age} years before you were born`;

} else {

return `You were \${age - yearDifference} in the year \${year}`;

}

}

};
``````

This is what I used. I added one option more if the year passed is equals to the current year

I am so confused as to why this is not working,

``````function howOld(age,year){
const theCurrentYear = 2021;
const yearDifference = year - theCurrentYear;
const newAge = age + yearDifference;

if (newAge < 0 ){
return `The year \${year} was \${newAge} years before you were born`;
} else if( newAge > age){
return `You will be \${newAge} in the year \${year}`;
} else {
return `You were \${newAge} in the year \${year}`;
}

}

console.log(howOld(25,1995))
``````

Welcome fellow learner xD,

from what i can see, passing in 1995 to your code will create a negative “year difference” so you may be receiving a double negative somewhere in your code which although unintended will add when you intend to subtract, or subtract when you intend to add.

Take what i say with a grain of salt because I am new and still learning, but I would try to reorder the variable (yearDifference) to = theCurrentYear - year.

The instructions are not clear. What exactly asking us to do by using words like “currently and was” in one sentence. If its “currently” they should be using “is”, if its “was” they should be using in the “past”.Or at least usage of a comma would make it easier.I don’t know what I am asked to code here in this exercise because of not clear instructions, and Codecademy has this problem once in a while by not writing clear instructions.