El visual basic posee una serie de controles (windows common controls), entre ellos se encuentra el datapicker, creo que ese control te ayudaria, y en cuanto a averiguar el dia de la semanam si la hora del sistema esta bien, entoncess puedes usar la funcion format.