各位大牛,想自己做一个日历,使用C#的标准控件。日历有如下功能:
1、正确显示年、月、日、星期,星期和日期要正确对应;
2、能够查看前几个月和后面的日期;
3、有备忘录的功能和定时提醒功能;
暂且就想到了这几点,第1和第3这两点个人觉得比较容易实现;但是关于第二点没有想出合适的解决方案。不知道如何能够将星期下对应的日期排列出。例如:2013年4月1日是星期一,那5月1日星期几?2014年的4月1日又是星期几?这种排列如何去计算,或者有什么函数可以解决这一的问题。恳求各位大牛能够帮忙解决。日历C#万年历

解决方案 »

  1.   

    c#中 DateTime.Now后面有年月日时分秒等的方法,可以通过他去得到信息
      

  2.   

    我也想自己做个但用什么控件还没考虑好,用datagridview?还是其他控件?函数是现成的。
      

  3.   

    用datagridview比较控制起来比较方便一点吧!在往上有一个是用winform GDI 绘制的界面做出来相当好看,但是这块我不太会。可是把连接发给你,你参考下!函数是要自己写的吧!控件就用微软的标准空间,还是有点难度的,呵呵http://www.csharpwin.com/csharpspace/13258r871.shtml
      

  4.   

    如果用datagridview的话第一个就是字符串换行显示问题,还没试过\r\n可行?
      

  5.   

    做了个初步界面和测试代码如下:
            public 浩瀚()
            {
                InitializeComponent();
                string[] 日历列 = new string[] { "周日", "周一", "周二", "周三", "周四", "周五", "周六" };
                foreach (string 元素 in 日历列)
                {
                    DataGridViewTextBoxColumn 列 = new DataGridViewTextBoxColumn();
                    列.HeaderText = 元素;
                    事件日历.Columns.Add(列);
                }            事件日历.Rows.Add(5); int 计数 = 0;
                for (int 行 = 0; 行 < 事件日历.RowCount; 行++)
                {
                    for (int 列 = 0; 列 < 事件日历.ColumnCount; 列++)
                    {
                        计数++; if (计数 > 31) break;
                        事件日历.Rows[行].Cells[列].Value = "      " + 计数.ToString("00") + "                                                           ";
                    }
                }
                //事件日历.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
                事件日历.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCellsExceptHeaders;
                事件日历.RowsDefaultCellStyle.WrapMode = (DataGridViewTriState.True);
            }
    还是那个换行问题,没找到单元格换行怎么写,只有以上设定自动换行.不合我意,自动换行好麻烦.
      

  6.   

    那个Color.AliceBlue不懂什么颜色,一个个去试烦,又没直观色块可看,随便找2颜色运行可以看到我对配色不会.