"Having played cricket for two years, I am a very good batsman" Is this sentence correct? Can I use It has been with "having"? Like: " It has been 2 years having played cricket/ having watched the TV"
2 Answers
Your first sentence is fine. Having played cricket for two years is a participial clause just like waiting for the bus, or playing on the computer.
Your second sentence is problematic, because instead of using the participal clause as an adjunct to the subject (or the sentence) you are trying to somehow incorporate it into the main predication. This is an odd construction, and the subject of playing cricket is apparently "it" rather than "I", which is not what you want.
"Having played cricket for two years, I am a very good batsman" is a perfect sentence. (Though two years is not enough!)
Alternatively, you could say,
After playing cricket for two years, ...
or
Now that I have played cricket for two years, ...
And no: "has been" and "having" aren't used like that.
"has been" is commonly used in sentences like these:
It has been 2 years since I played cricket (I haven't played for two years)
It has been 2 years since I watched TV (I haven't watched TV for two years)