The distance from Hanoi to Halong Bay is about 170 km. It takes around 3.5 hours by shuttle bus, including haft-hour for break time. If you go to a private car, it takes around 3 hours. Alternatively, there is another route which only takes you about 2.5 hours. You can hire a car or buy a ticket for a VIP bus to travel from Hanoi city center to Halong Bay using the new Hanoi - Hai Phong highway. The distance between Hanoi - Halong shortens to 150km. There will be a fee of 6.5 USD/turn/car for the new highway, making the price a little bit higher than the other. You can read more detail how to travel from hanoi to Halong Bay
The best time to visit Halong Bay is between Mar to Apr and Oct to Dec when the Halong Bay weather is cool with temperature between 20 to 30 degree and dry. This also a high season tourist so you should plan to book your Halong Cruise very soon.
You might want to read more: best time to visit Halong Bay for great weather and best deals.