به خوب الگوریتمی اشاره کردی.
یک نکته:
1.اگه کاربر دو بار توی یک روز لاگین کنه باید برای بار دوم تاریخ همون لاگین اول توی دیتابیس ذخیره بشه که با این کار کاربر میتونه ساعت سیستمش رو عقب بکشه(مثلا بعدظهر رو به قبل ظهر تغییر بده) در این صورت کاربر میتونه مدت خیلی طولانی از برنامه استفاده کنه.
یا یک برنامه برای عقب کشیدن ساعت سیستم به بنویسه.
اگر هم بخواهیم برای هر روز محدودیت لاگین بگذاریم کار درستی نیست و کاربر از برنامه خوشش نمی آید.
معلوم نیست که چه طور Microsoft و یا Adobe برای برنامه هایشان مهلت تست 30 روزه می گذارند؟؟؟؟