That strategy of converting age incrementally from seconds to minutes, from minutes to days and so leads to very nice to read & understand code ... but in the end it's much slower than

// convert to seconds
long age = (System.currentTimeMillis() - when.getTime()) / 1000;

if (age < 90)
...
else if (age < 90*60...)
..