This is a great question... Sometimes we tend to forget that we learn best from our mistakes. I truly think that's what reminds you of who you really are and stick to those sets of principles and values to which you pay great deal of attention. To answer to the first part of your question, there is no fixed period of time after which you forgive yourself. Even when the people concerned (whom you've hurt, for instance), they have forgiven you. I truly believe that it's something you learn to live with, without trying to be perfect each day. However, at the end of the day it's gone and you have to be grateful for living such things. But the most important key here is to realise what mistakes we made, who has been hurt, and to take responsibility for those acts and their consequences. Second, I think one can differentiate between right action and wrong action when you stick to your true self, reflect on it while having some time alone, or with your family. No one does know better than you what action is right or wrong. And above all, you have to cherish those values and principles, as they are becoming more rare and rare in this generation. To sum up, although it's easier said than done: 1. learn from your mistakes as much as you can, 2. always take responsibility for your own actions and their consequences, 3. spend time alone to have a glimpse into who you are and what are your principles and values that you naturally would like to nurture and cherish.