It depends, excuse me, it's not a question. your question should be can I learn C# but the long time can't be determined.
Let me know when this question will be solved? when I say after 3 months :)
So, the answer is 3 months.
As you know C++ already, learning C# will not be so difficult. Although both languages have much in common there are differences. I suppose you want to work in a .NET environment. Now THAT will be the hardest part to learn I guess. .NET is HUGE!
About 12 months ago I started, still learning every day...
First I want to learn the language itself. so that I can write any simple console programs.
I tried to write some programs. I could not use pointers because the compiler said they are not safe.
the keyword "array" I don't know what it is.
are there a lot of new things in the language itself?
but I think the main problem is that there's no any standard header files. instead I think I have to use .NET. I know nothing about it.
another problem is APIs. can I use API functions in C#?
You can still use pointers in C# if you mark the part of the code with the unsafe keyword. But why use pointers when you don't have to?
C# has no header files. A program gets access to classes and methods to dll-files using the using keyword at the beginning of a code file.
Suggest you download Visual Studio C# Express edition if you not already done that(It's free) It contains lots of help to get you on the way. Also an introductory book might be of help.
Like this one