Zaciekawił mnie Twój problem :D Ogólnie chodzi o to, że ReadLine ma w pamięci pustego stringa, dlatego idzie dalej i przypisuje do time wartość. Musisz zwolnić pamięc z readline.
Brzydki sposób podany niżej :D podejrzewam, że da się to zrobić lepiej
Console.Read();
Console.Read();
string time = Console.ReadLine(); ;