i need to run a specific class in 12 am everyday, except predefined 2 days in the week , i found the TimerTask class but i saw it will not provide me to stop in the 2 days i want , so any recommendation to accomplish this ?
Use the operating system. Linux has cron, Windows has its own Scheduled Tasks / Task Scheduler. Both give you a lot of freedom, and you don't need to have your application running in the background all the time. With Windows you'll need to go to the more advanced settings, but even these are not really advanced.
I don't see one as being more professional than the other. I'd use the Windows Task Scheduler, but that's because it's easier to configure. And of course you should document that there is a scheduled task and what it's for