Torna al Thread
protected void btn_anno_Click1(object sender, EventArgs e)
{
//se inserisco una serie di date le splitto e le salvo in un array di stringhe
//chiamato date
char[] separator = { ' ', ',', '.', ':', '\t' };
tb_anno.Text= tb_anno.Text.Trim();
String[] date = tb_anno.Text.Split(separator);
DataTable dt = new DataTable();
for(int data=0; data < date.Length; data ++)
{
String s = date[data];
s = s.Trim();
//prima di tutto, cotnrollo se è effettivamente un numero
DateTime time = new DateTime();
try
{
time = new DateTime(Convert.ToInt32(s), 1, 1);
}
catch
{
//lancio un alert javascript per segnalare il formato errato dell'inserimento
string dd = "<script language='javascript'>";
dd += " alert('ATTENZIONE! Formato dell\\'anno non valido');";
dd += "</script>";
Page.ClientScript.RegisterStartupScript(s.GetType(), "errore", dd);
return;
}
//se il controllo è ok, mi creo una colonna del data table
DataColumn dc = new DataColumn(s);
dt.Columns.Add(dc);
//primo ciclo: per ogni mese dell'anno prescelto mi faccio restituire i giorni
for (int i = 1; i <= 12; i++)
{
int dayForMonth = Convert.ToInt32(((new DateTime(Convert.ToInt32(s), i, 1)).AddMonths(1)).AddDays(-1).Day);//al max s lo rimpiazzo con tb_anno.Text
//secondo ciclo: per i giorni di ogni mese mi creo una nuova data e vado a vedere se il giorno della settimana è un lunedì (=1)
for (int x = 1; x <= dayForMonth; x++)
{
DateTime ndt2 = new DateTime(Convert.ToInt32(s), i, x);
//Se è un lunedì, creo una nuova riga del mio dataTable e ci metto la mia stringa di data
if (Convert.ToInt32(ndt2.DayOfWeek) == 1)//lunedì
{
DataRow drw = dt.NewRow();
//ho scelto la "M", che restituisce tipo: "01 Aprile".
drw[0] = ndt2.ToString("M");
dt.Rows.Add(drw);
dt.AcceptChanges();
}//end if
}//end for
}//end for
}//end for
//dopo avere riassociato la riga al mio dataTable, bindo i dati al mio gridview
gvdati.DataSource = dt;
gvdati.DataBind();
//Se il testo inserito è l'anno di una data, diventa l'intestazione della mia riga
//gvdati.HeaderRow.Cells[0].Text = time.Year.ToString();
}//end btn_click