Spot the deliberate mistake:
ReloadCal(dnow.ToString("MM/dd/yyyy")) ''Call the function Reloadcal to dispaly the dates of Month and creating a calendar.
Public Sub ReloadCal(ByVal ldate As Date) 'creating a function to create calendar and display dates on it.
If you have the date as a DateTime, why convert it to a string, to then try to hand it to a function taking a DateTime, which will just try to convert it back to a DateTime using the default culture? Why not just hand over the fully fledged and working DateTime you started with?