Ничего сложного нет. Немного визуализации, и всё станет ясно. Начнём с предлогов места.
Представьте себе планету на гугл-картах. Начните увеличивать масштаб, то бишь zoom in — увидите сначала материки, потом страны, потом города и даже районы городов и ваш дом, если продолжите увеличивать.
Всё это IN: in Russia, in the USA, in Belgium, in Africa, in Paris и т.д.
Используете IN, потому что материки, страны и города — это не самая конкретная единица география
Смотрите дальше. Продолжаете зумить, и вот уже открываются улицы и проспекты. Всё, больше пока не крутите. Как видите, стало существенно конкретнее. И вот эти географические масштабы описываются предлогом ON: on 15th street, on the Red Square.
Используете ON, потому что улицы и проспекты— это точнее, чем масштабы страны, но ещё не совсем точно
Логично, что at — это самый лютый зум, где вы уже можете разглядеть соседскую машину у подъезда, вход в Пятерочку, свой дом и парк, что рядом.
Собственно поэтому и говорят at work, at the office, at Moe's.
Используете AT, когда говорите о точном месте
Теперь что касается времени. Ровно та же самая логика. Вы уж простите, тут без картинок.
In the 19th century, in 1991, in May и всё такое, потому что информация о времени с точностью до года и месяца, а это большая величина времени.
Дальше по нашей нехитрой логике идёт предлог ON: on 15th of September, on Monday, on Christmas Eve, потому что стало уже чуть более конкретно, с точностью до дня.
И да, at 12 o'clock, at midnight, at the last minute и так далее. Потому что, как вы понимаете, это конкретное время.
Есть исключение: если говорите про праздники, фестивали или мероприятия, которые длятся больше одного дня — тоже используется at: at Easter, at christmas (все каникулы, а не один день, как в примере выше), at Woodstock.
Фиг знает почему, но всё-таки in the morning, in the evening. Может исключение, может ещё что-то — просто запомните, что оно вот так.
At the weekend и on the weekend оба варианта правильные: первый это UK английский, а второй US.