如何写出风趣的日历(1)--界面设计

需求分析:需要做一款可以通过Winform 自己绘制的月历,原因是可以通过这种方法进行在月历下制作日程,如图所示:

一、制作须知:

1、需要用PictureBox将表格组合起来,并且在PictureBox上面增加Label 

2、Label的作用是为了显示切换月份的时候需要重新对Label赋值

3、需要编写读取每年每月当天有多少天,以及每个月的1号对应的是星期几 

二、制作步骤:

1、新建一个Winform,添加两个Combox用于获取某年某月

2、添加PictureBox ,按照图示所示将控件组合起来

3、在所有的PictureBox(灰色部分)上,新建Label,初始化的时候默认使得 label.text = "",即不显示

4、新增一个测试按钮,注册一个事件

 int currentYear = Convert.ToInt32(comboBox1.Text.ToString());
 int currentMonth = Convert.ToInt32(comboBox2.Text.ToString());
 int X, Y;
 X = WhatDay(currentYear, currentMonth);//得出某年某月的第一天是星期几
 Y = EveryMonthDays(currentYear, currentMonth);//得出某年某月的天数       
 SetValue(currentYear, currentMonth); //将当前的信息传入自定义函数

4、得出星期几

public int WhatDay(int currentYear, int month)
        {
            int num;
            int totalDays = 0;
            for (int i = 1900; i < currentYear; i++)
            {
                if (IsLeapYear(i))
                {
                    totalDays += 366;
                }
                else
                {
                    totalDays += 365;
                }

            }
            for (int j = 1; j < month; j++)
            {
                totalDays += EveryMonthDays(currentYear, j);
            }

            num = totalDays % 7;
            return num + 1;
        }

5、得出天数

public int EveryMonthDays(int year, int month)//判断某年每个月的天数
        {
            int i = month;
            int monthDay;
            if (i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12)
            {
                monthDay = 31;
            }

            else if (i == 4 || i == 6 || i == 9 || i == 11)
            {
                monthDay = 30;
            }

            else if (i == 2 && IsLeapYear(year) == true)
            {
                monthDay = 29;
            }
            else
            {
                monthDay = 28;
            }
            return monthDay;
        }

 6、编写SetValue(参数1,参数2)自定义函数

这个函数主要是为了将得到的4,5 的结果,并通过遍历的方法,将值赋值给Label

以上;需要源码请发信息

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章