## Lab: Age Calculator

Write a function that calculates the number of seconds old you are when given your age

``````let age = 27

function ageCalc (num) {
//Your code goes here
}

ageCalc(age) // should print "You are 852055200 seconds old." to the console
``````

How could we use ARGV to make this more modular?

## Flip it around!

Can you write the inverse function; one that takes a number of seconds and tells you the exact age?

You can get the current date by calling `Date.now()` which will give you a time in milliseconds, and the date you were born by createing a new `Date` object. You can then figure out the time that's elapsed in milliseconds by subtracting the date you were born from the current date

``````  let date = new Date(1992, 05, 12, 3, 14) //new Date(year, month, day, hour, minute)
let ageInMilliSec = Date.now() - date
``````

## Solution

Here's one solution for the age calculator:

``````let age = 27

function ageCalc(num) {
let secondsInMin = 60
let minInHour = 60
let hrInDay = 24
let dayInYr = 365.25

let secInYr = secondsInMin * minInHour * hrInDay * dayInYr

let ageInSec = num * secInYr

return ageInSec
}

console.log(ageCalc(age))

``````

To flip it you could simply divide the `num` variable by `secInYr` rather than multiplying to get years in a number of seconds.

## Functional Labs

Try to solve the following labs by writing a function which returns output(s) given input(s)

### For Example

Write a function that:

• accepts a number as input
• returns the input number plus the number positive one
``````addOne(1)   // => 2
addOne(2)   // => 3
addOne(41)  // => 42
addOne(-2)  // => -1
addOne(-43) // => -42
``````

## Supply Calculator - Functional Labs

Write a function that:

• accepts three arguments, a starting age, an amount per day, and an item name
• calculates the amount of items used over the course of the rest of your life
• based on a 100 year constant max age
• Outputs "You will need Number Items to last the rest of your life." e.g.
``````supplyCal(20, 3, "cookie") // => "You will need 87600 cookies to last the rest of your life"
supplyCal(99, 3, "cookie") // => "You will need 1095 cookies to last the rest of your life"
supplyCal(0, 3, "cookie") // => "You will need 109500 cookies to last the rest of your life"
``````

Supply Calculator inspired by the Lifetime Supply Calculator lab designed for the Girl Develope It! curriculum. The original can be found here

## Supply Calculator Solution

``````function supplyCalc(age, amountPerDay, item) {
let amountPerYear = amountPerDay * 365
let numberOfYears = 100 - age
let totalNeeded = amountperYear * numberOfYears

let message = "You will need" + totalNeeded + " " + item + "s to last the rest of your life"
}
``````

## Titleize - Functional Labs

Write a function that:

• accepts a string as an argument
• splits apart the words in the string
• capitalizes each word
• returns a string with the first letter of each word capitalized e.g.
``````titilize("all dogs are good dogs") // => "All Dogs Are Good Dogs"
titilize("eveRY green bus drives fAst") // => "Every Green Bus Drives Fast"
titilize("FRIDAY IS THE LONGEST DAY") // => "Friday Is The Longest Day"
``````

## Titilize solution

``````function titilize(string){
let wordArray = string.split(" ")
let newArray = wordArray.map(function(word){
return word.toUpperCase() + word.slice(1).toLowerCase()
})

return newArray.join(" ")
}
``````

## MadLibs - Functional Labs

Write a function that:

• accepts 3 arguments, the subject (noun), action (verb), and direct object (noun)
• outputs a message saying " noun verbed the noun!" e.g.
``````madLib('Bill', 'jump', 'dog') // => "Bill jumped the dog!"
``````
• Bonus: sanatize your inputs so the first word is always capitalized, and the other two words are always lowercase.

• Double Extra Bonus: Expand this to a whole madlib story, not just a single sentence.

``````function madLib(noun, verb, directObject) {