متاسفانه قانونی نیست که تفاوت قطعی حروف اضافه رو نشون بده. کاربرد حروف اضافه بهتره تابع نحوه کاربردشان توسط گویشوران بومی باشه، که میشه از طریق مطالعه متون اوریجینال یا تماشای فیلمها یاد گرفت. قوانین دستوری که تفاوت حروف اضافه رو به صورت قاطع نشون بده بسیار کمه. مثلا برای وقتهای دقیق از at استفاده میشه مثل at noon. چون ظهر یک لحظه است. بدین معنا که قبل از اون صبحه و بعد از اون وارد بعدالظهر میشیم. ولی برای زمانهای غیردقیق و طولانی از in استفاده میشه مثل in the morning، چون علی القاعده صبح از روشن شدن هوا شروع میشه و تا هنگام ظهر طول میکشه.
حروف اضافه مکانی هم همینطور بیشتر تابع مفاهیم شکل گرفته در ذهن گویشوران است. مثلا in the plane و on the plane هر دو یه معنا میده چون شخص برای استفاده از هواپیما حتما باید توی اون باشه نه روی اون. ولی in the car و on the car یه معنا نمیدن چون مسافرت در توی ماشین و همچنین سوار بر روی اون ممکنه.
برای جزئیات لازمه چند تا کتاب دستور رو مطالعه فرمائید.