I have a time, in seconds, which has the possibility to be very large. I wish to convert said time into the "appropriate" rounded, readable format.

I already have code which achieves this, however it's not very efficient (and contains a whole bunch of magic numbers):

    String readable = decayTime + " minutes";
    if(decayTime > 60)
    {
        decayTime /= 60;
        readable = decayTime + " hours";

        if(decayTime > 24)
        {
            decayTime /= 24;
            readable = decayTime + " days";

            if(decayTime > 365)
            {
                decayTime /= 365;
                readable = decayTime + " years";

                if(decayTime > 1000000)
                {
                    decayTime /= 1000000;
                    readable = decayTime + "mn years";

                    if(decayTime > 1000)
                    {
                        decayTime /= 1000;
                        readable = decayTime + "bn years"; 
                    }
                }
            }
        }

Apart from switching out the magic numbers, I can't personally think how to make it better.

What would be a better approach to this, or is there something in-built which could help?