简易日历设计报告
学院                班级      学号         姓名        成绩       
一、设计思路
1.要达到的目的
①能够窗体加载自动提取并显示当前日期。
②能够选择1960-2060之间的任一年份。
③选择某一日期后,添加边框。
④在窗体下方显示所选择的日期及其星期。
⑤单击确定或“Enter”后显示所选日期。
⑥单击“退出”或单击“Esc”键退出关闭窗。
⑦根据所选年份和月份,确定显示天数的个数。
⑧日期和星期对齐。
⑨在日历提示一些固定节假日。
⑩判断生肖,并用图片的形式显示出来。
2.关键问题的解决
①利用数组向下拉列表框中填充项目,调整标签显示数据。
②利用时间函数取得当前日期和星期,并显示在文本框中,根据日期调整列表框种显示的项目。
③选择某一标签后,改变其边框,其他标签无边框。
④单击项目时从下拉列表框中取得与月份和年份对应的值储存在变量中,单击标签取得日期数值,按下确定。按钮将其合并为日期,利用函数计算星期,调整格式显示在文本框中。
⑤选择月份和年份后,于28,29,30,31组合并调整为日期格式,与日期型匹配,看是否存在。
⑥根据某天是否存在更改标签隐藏属性。
⑦根据星期数移动数组调整标签caption属性,使星期与日期对齐。
⑧将节日与其提示信息存在文本中,当当前日期与文件中相同时,用消息提示框显示提示信息。
⑨利用图片加载,实现生肖判断。
二、模块之间的调用关系,或程序流程图
三、部分程序关键源代码及注释
Dim day1 As Integer
Private Sub Cbomonth_Click()
    Labeldate.Caption = ""
    Labeljr.Caption = ""
    Labelweek = ""
    注释:仅有月份的变化不足以计算出星期,故使labelweek为空
Call setday
Call lblnumber_Click(selectedate - 1)
End Sub
Private Sub Cboyear_Click()
    Labeldate.Caption = ""
    Labelweek.Caption = ""
    Labeljr.Caption = ""
注释:仅有年份的变化不足以计算出星期,故使labelweek为空
Call Cbomonth_Click
End Sub
Private Sub Command1_Click()
Dim month1 As Integer, year1 As Integer, date1 As String
month1 = cbomonth.ListIndex + 1
year1 = Cboyear.ListIndex + 1960
day1 = CInt(Format(Now, "dd"))
date1 = (Str(month1) + "/" + Str(day1) + "/" + Str(year1))
yanzheng = Str(year1) + "年" + Str$(month1) + "月" + Str(day1) + "日"
If yanzheng <> Labeldate.Caption Then
Labeldate.Caption = ""
Labeljr.Caption = ""
End If
Dim r As Integer
r = Weekday(date1)
Call makesurecaption(r)
注释:makesurecaption是确定星期的用户定义函数(250行)
Dim selected As Boolean
Dim q As Integer
    注释:selected表示是否选择具体日期,若没有则通过massagebox通知
    selected = False
    Labeljr.Caption = ""
    For i = 0 To 30
        If lblnumber(i).BorderStyle = 1 Then
            day1 = i + 1
            selected = True
        End If
    Next i
    注释:风格框
    If Not (selected) Then
        MsgBox ("请选择具体日期!")
        GoTo line1
        注释:line1在本模块的末尾,即不继续执行本模块,令用户选择具体日期
    End If
    month1 = cbomonth.ListIndex + 1
    year1 = Cboyear.ListIndex + 1960
    q = year1 Mod 12
    If q = 4 Then
    Image1.Picture = LoadPicture(App.Path & "图片\生肖图片\鼠.jpg")
    ElseIf q = 5 Then
    Image1.Picture = LoadPicture(App.Path & "\图片\生肖图片/牛.jpg")自学vb推荐书籍
    ElseIf q = 6 Then
    Image1.Picture = LoadPicture(App.Path & "\图片\生肖图片\虎.jpg")
    ElseIf q = 7 Then
    Image1.Picture = LoadPicture(App.Path & "\图片\生肖图片\兔.jpg")
    ElseIf q = 8 Then
    Image1.Picture = LoadPicture(App.Path & "\图片\生肖图片\龙.jpg")
    ElseIf q = 9 Then
    Image1.Picture = LoadPicture(App.Path & "\图片\生肖图片\蛇.jpg")
    ElseIf q = 10 Then
    Image1.Picture = LoadPicture(App.Path & "\图片\生肖图片\马.jpg")
    ElseIf q = 11 Then
    Image1.Picture = LoadPicture(App.Path & "\图片\生肖图片\羊.jpg")
    ElseIf q = 0 Then
    Image1.Picture = LoadPicture(App.Path & "\图片\生肖图片\猴.jpg")
    ElseIf q = 1 Then
    Image1.Picture = LoadPicture(App.Path & "\图片\生肖图片\鸡.jpg")
    ElseIf q = 2 Then
    Image1.Picture = LoadPicture(App.Path & "\图片\生肖图片\狗.jpg")
    ElseIf q = 3 Then
    Image1.Picture = LoadPicture(App.Path & "\图片\生肖图片\猪.jpg")
    End If
    Labeldate = year1 & "年" & month1 & "月" & day1 & "日"
    If month1 = 1 And day1 = 1 Then
        Labeljr.Caption = "新年"
    ElseIf month1 = 5 And day1 = 4 Then
        Labeljr.Caption = "青年节"
    ElseIf month1 = 6 And day1 = 1 Then
        Labeljr.Caption = "儿童节"
    ElseIf month1 = 7 And day1 = 1 Then
        Labeljr.Caption = "建党节"
    ElseIf month1 = 8 And day1 = 1 Then
        Labeljr.Caption = "建军节"
    ElseIf month1 = 10 And day1 = 1 Then
        Labeljr.Caption = "国庆节"
    ElseIf month1 = 5 And day1 = 1 Then
        Labeljr.Caption = "劳动节"
    ElseIf month1 = 9 And day1 = 10 Then
        Labeljr.Caption = "教师节"
    ElseIf month1 = 12 And day1 = 25 Then
        Labeljr.Caption = "圣诞节"
    ElseIf month1 = 8 And day1 = 12 Then
        Labeljr.Caption = "我的生日"
    ElseIf month1 = 3 And day1 = 12 Then
        Labeljr.Caption = "植树节"
    ElseIf month1 = 4 And day1 = 1 Then
        Labeljr.Caption = "愚人节"
    Else
    Labeljr.Caption = "开心就好"
    End If
    注释:确定所选日期对应的节日
line1:
End Sub
Private Sub Command2_Click()
End
注释:退出
End Sub
Private Sub Form_Load()
Call fillcbomonth
注释:以上为初始化月份列表
Call fillcboyear
注释:初始化年份列表
selectedate = CInt(Format(Now, "dd"))

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。