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
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5