怎么用vb6.0制作一个简易日历
要求如下:①能够窗体加载自动提取并显示当前日期。②能够选择1960-2060之间的任一年份。③选择某一日期后,应有特殊显示,比如添加方框。④在窗体下方显示所选择的日期及其...
要求如下:
①能够窗体加载自动提取并显示当前日期。
②能够选择1960-2060之间的任一年份。
③选择某一日期后,应有特殊显示,比如添加方框。
④在窗体下方显示所选择的日期及其星期。
⑤单击确认后显示所选日期。
⑥单击退出关闭窗体。
⑦根据所选年份和月份,确定显示天数的个数,如:2000年2月只有29天。
3.创新要求
在基本要求达到后,可以参考普通日历,进行创新设计,创新方向提示如下:
①日期和星期对齐。
②在日历中提示一些固定节假日。
三、设计内容及其基本原理和设计方法
1.问题描述:
程序界面见图。
2.解决方案:
①设计程序界面
因为全是基本控件,界面设计无难度。注意同类控件使用控件数组。
②编写代码
代码包括事件处理过程和功能函数,还有必要的声明。变量声明部分声明本程序所需的变量和数组,主要是日期变量。事件处理包括下面的主要事件:
Form_Load()
作一些初始化工作。主要是设定当前日期,在下拉列表框添加年份和月份。
Private Sub lblnumber_click(index as integer )
选择不同的日期。
Cmdxxx_click()
显示选择结果。
其它功能的处理不再一一描述了。
四、主要技术问题的描述
虽然界面有些复杂,但难点显然并不在于此。读懂并使用下面几个子程序和函数,那么这道题就非常简单了:
Private Sub checkdate(month1 As Integer, year1 As Integer) ’检测并设置当月天数
Dim i As Integer, value As Integer, date1 As String
For i = 28 To 32
date1 = (Str$(month1) + "/" + Str$(i) + "/" + Str$(year1))
If IsDate(date1) Then
value = i
Else
Call displaynumbers(value)
Exit Sub
End If
Next i
End Sub
Private Sub displaynumbers(number%)
Dim i%
For i% = 28 To 30
lblnumber(i%).Visible = False
Next i%
For i% = 28 To number% - 1
lblnumber(i%).Visible = True
Next i%
End Sub
Private Sub setdate()
Dim r As Integer, i As Integer
r = CInt(Format$(Now, "yyyy")) ’年份
i = r - 1960
cboyear.ListIndex = i
r = CInt(Format$(Now, "mm")) ’月份
cbomonth.ListIndex = (r - 1)
r = CInt(Format$(Now, "dd")) ’日期
lblnumber(r - 1).BorderStyle = 1
selectdate = r
End Sub
Private Sub setday()
Dim month1 As Integer, year1 As Integer
month1 = determinemonth()
year1 = determineyear()
Call checkdate(month1, year1)
End Sub 展开
①能够窗体加载自动提取并显示当前日期。
②能够选择1960-2060之间的任一年份。
③选择某一日期后,应有特殊显示,比如添加方框。
④在窗体下方显示所选择的日期及其星期。
⑤单击确认后显示所选日期。
⑥单击退出关闭窗体。
⑦根据所选年份和月份,确定显示天数的个数,如:2000年2月只有29天。
3.创新要求
在基本要求达到后,可以参考普通日历,进行创新设计,创新方向提示如下:
①日期和星期对齐。
②在日历中提示一些固定节假日。
三、设计内容及其基本原理和设计方法
1.问题描述:
程序界面见图。
2.解决方案:
①设计程序界面
因为全是基本控件,界面设计无难度。注意同类控件使用控件数组。
②编写代码
代码包括事件处理过程和功能函数,还有必要的声明。变量声明部分声明本程序所需的变量和数组,主要是日期变量。事件处理包括下面的主要事件:
Form_Load()
作一些初始化工作。主要是设定当前日期,在下拉列表框添加年份和月份。
Private Sub lblnumber_click(index as integer )
选择不同的日期。
Cmdxxx_click()
显示选择结果。
其它功能的处理不再一一描述了。
四、主要技术问题的描述
虽然界面有些复杂,但难点显然并不在于此。读懂并使用下面几个子程序和函数,那么这道题就非常简单了:
Private Sub checkdate(month1 As Integer, year1 As Integer) ’检测并设置当月天数
Dim i As Integer, value As Integer, date1 As String
For i = 28 To 32
date1 = (Str$(month1) + "/" + Str$(i) + "/" + Str$(year1))
If IsDate(date1) Then
value = i
Else
Call displaynumbers(value)
Exit Sub
End If
Next i
End Sub
Private Sub displaynumbers(number%)
Dim i%
For i% = 28 To 30
lblnumber(i%).Visible = False
Next i%
For i% = 28 To number% - 1
lblnumber(i%).Visible = True
Next i%
End Sub
Private Sub setdate()
Dim r As Integer, i As Integer
r = CInt(Format$(Now, "yyyy")) ’年份
i = r - 1960
cboyear.ListIndex = i
r = CInt(Format$(Now, "mm")) ’月份
cbomonth.ListIndex = (r - 1)
r = CInt(Format$(Now, "dd")) ’日期
lblnumber(r - 1).BorderStyle = 1
selectdate = r
End Sub
Private Sub setday()
Dim month1 As Integer, year1 As Integer
month1 = determinemonth()
year1 = determineyear()
Call checkdate(month1, year1)
End Sub 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询