One day, I took an oath that if I ever committed a certain sin - which I used to commit - I would fast a day each time I committed it. At the beginning I kept that oath and fasted a day for each time I committed that sin. But, it did not take long before I once again committed this sin and it became hard for me to keep the oath and fast all these days. I would like to repent to Allaah The Exalted, what should I do?
All perfect praise be to Allaah, The Lord of the Worlds. I testify that there is none worthy of worship except Allaah, and that Muhammad is His slave and Messenger.
If you mean that you took an oath that you would not commit that sin and that if you did, you would fast a day, then an expiation is due on you if you commit this sin and do not fast a day as you swore. If you did not commit the sin or committed it and fasted a day, no expiation is due.
However, if you mean that you vowed to fast a day whenever you commit this particular sin, this is considered a vow of Lajaaj (anger). The majority of Muslim scholars believed that the person in such a case has the choice either to fulfill his vow (and fast as he swore) or offer expiation for breaking his oath.
The expiation for breaking an oath is feeding ten needy people, or clothing them, or freeing a believer from slavery. If he fails to do any of these three options, he should fast three days.
Moreover, you should hasten to repent to Allaah The Exalted of that and all other sins. Indeed, sincere repentance expiates all the past sins that have been committed. You should strive against yourself and seek help and aid from Allaah The Exalted so that He Will Protect you from the evils of the devil and the soul, which is a persistent enjoiner of evil. You should also keep in mind that the mercy of Allaah The Exalted is vast and His pardon is great.
Allaah Knows best.
You can search for fatwa through many choices