如何写成月历的样式?主要是怎么把他们排到相应的星期下?一  二  三  四  五  六  日
30  31  1   2   3   4   5
……
……
……
26  27  28  29  30  1   2    
用什么思路可以生成以上的格式呢??

解决方案 »

  1.   

    演示地址: http://www.my97.net/dp/demo/
    下载1: http://www.cnblogs.com/Files/my97/My97DatePicker.rar
    下载2: http://my97.net/dp/down/My97DatePicker.rar技术支持: http://www.my97.net/dp/support.asp
    皮肤中心: http://www.my97.net/dp/skin.asp把别人的先下载下来看下吧!
      

  2.   

    Winform的 思路有 转成web的就可以了。 
    private void setKalendar(DateTime day)
            {
                DataTable dtDate = new DataTable();            dtDate.Columns.Add("星期日");
                dtDate.Columns.Add("星期一");
                dtDate.Columns.Add("星期二");
                dtDate.Columns.Add("星期三");
                dtDate.Columns.Add("星期四");
                dtDate.Columns.Add("星期五");
                dtDate.Columns.Add("星期六");            //号
                int number = 0;
                //第一行元素个数
                int firstRowNumber = 0;
                //满元素行数
                int intRowNumber = 0;
                //最后一行元素个数
                int lastRowNumber = 0;
                //月总天数
                int days = DateTime.DaysInMonth(day.Year, day.Month);
                DateTime date = Convert.ToDateTime(day.Year + "-" + day.Month + "-" + 1);            switch (date.DayOfWeek)
                {
                    case System.DayOfWeek.Sunday:
                        firstRowNumber = 7;
                        break;
                    case System.DayOfWeek.Monday:
                        firstRowNumber = 6;
                        break;
                    case System.DayOfWeek.Tuesday:
                        firstRowNumber = 5;
                        break;
                    case System.DayOfWeek.Wednesday:
                        firstRowNumber = 4;
                        break;
                    case System.DayOfWeek.Thursday:
                        firstRowNumber = 3;
                        break;
                    case System.DayOfWeek.Friday:
                        firstRowNumber = 2;
                        break;
                    case System.DayOfWeek.Saturday:
                        firstRowNumber = 1;
                        break;
                }
                intRowNumber = (days - firstRowNumber) / 7;
                lastRowNumber = (days - firstRowNumber) % 7;
                string showStr = string.Empty;
                //第一行数
                DataRow drFirst = dtDate.NewRow();
                for (int i = 0; i < firstRowNumber; i++)
                {
                    number++;
                    drFirst[7 - firstRowNumber + i] = number;
                }
                dtDate.Rows.Add(drFirst);            //中间行数
                DataRow drMiddle;
                for (int n = 0; n < intRowNumber; n++)
                {
                    drMiddle = dtDate.NewRow();
                    int number1 = 0;
                    for (int i = 0; i < 7; i++)
                    {
                        number++;
                        drMiddle[number1] = number;
                        number1++;
                    }
                    dtDate.Rows.Add(drMiddle);
                }            DataRow drLast = dtDate.NewRow();
                //最后一行数
                if (lastRowNumber != 0)
                {
                    int number1 = 0;                for (int i = intRowNumber * 7 + firstRowNumber; i < days; i++)
                    {
                        number++;
                        drLast[number1] = number;
                        number1++;
                    }
                    dtDate.Rows.Add(drLast);
                }            dataGridView1.DataSource = dtDate;            dataGridView1.Columns["星期日"].SortMode = DataGridViewColumnSortMode.NotSortable;
                dataGridView1.Columns["星期一"].SortMode = DataGridViewColumnSortMode.NotSortable;
                dataGridView1.Columns["星期二"].SortMode = DataGridViewColumnSortMode.NotSortable;
                dataGridView1.Columns["星期三"].SortMode = DataGridViewColumnSortMode.NotSortable;
                dataGridView1.Columns["星期四"].SortMode = DataGridViewColumnSortMode.NotSortable;
                dataGridView1.Columns["星期五"].SortMode = DataGridViewColumnSortMode.NotSortable;
                dataGridView1.Columns["星期六"].SortMode = DataGridViewColumnSortMode.NotSortable;            //双休日变色
                dataGridView1.Columns[0].DefaultCellStyle.ForeColor = Color.Red;
                dataGridView1.Columns[6].DefaultCellStyle.ForeColor = Color.Red;
            }