in parte ho risolto il problema in questo modo
if (Convert.ToInt32(ndt2.DayOfWeek) == 1)//lunedì
{
DataRow drw = dt.NewRow();
//ho scelto la "M", che restituisce tipo: "01 Aprile".
drw[s] = ndt2.ToString("M");
dt.Rows.Add(drw);
dt.AcceptChanges();
}
ora il problema è che i risultati vengano visualizzati non uno accanto all altro come vorrei bensì nelle prime 52 righe elenca i lunedì del primo anno poi dalla riga 53 alla 105 elenca i lunedì del secondo anno lasciando le prime 52 righe vuote e così via per i successivi anni