Another reason for failure is pitted points in the solenoid, it also gives few days of warning that the solenoid will just click and won't rotate the starter, you do it repeatedly and it will start the engine, consider this enough warning.
Just like the battery, it gives you a warning of less than 24 hrs, astute drivers can notice a slow starter, its a dead giveaway that the battery is gone, replace it right away, not even next day.