The closest and only way to do automatic ticket closures is by using a status that has the automatic ticket closure after a set period of time.
Set it to the status and if there's no update after the amount of time you've set, it will automatically close. This will take working business hours into account so it's unlikely you'll be able to get this closing tickets out of hours.
If you need to close tickets automatically and this isn't good enough for you, you will need to manually apply rules like you've already been doing, or create an automated script such as PowerShell or SQL which will do this on your behalf.
Scripting may be the way to then in this case, just to eliminate the possibility of human error. I'll make a suggestion to WHD to add a criteria for "Time" (being set on a 12/24 hour clock or days of the week)