请帮忙解释和修改VB代码

来源:百度知道 编辑:UC知道 时间:2024/09/21 20:32:52
请直接解释下面代码就可以了
Option Explicit
Dim date1 As Date
Dim month1 As String, Year1 As String

Private Sub Command2_Click()
Dim M As String
cboyear = Format(CStr(Date), "yyyy")
M = Format(Date, "m")
cbomonth.ListIndex = M - 1
Call cbomonth_Click
End Sub

Private Sub Form_load()
Dim i As Integer, M As String '注意37个按钮的style属性要设为1
For i = 1 To 12
cbomonth.AddItem (MonthName(i))
Next i
For i = 1980 To 2099
cboyear.AddItem i
cboyear = Format(CStr(Date), "yyyy")
Next i
For i = 0 To 36
cmd(i).Visible = False
Next i
M = Format(Date, "m")
cbomonth.ListIndex = M - 1
End Sub

Private Sub cbomonth_Click()
Dim i As Integer, N As Integer, M As Integer, R As String
'For i = 0 To Me.Controls.Count - 1
'If TypeOf Me.Controls(i) Is CommandButton Then
'Me.Controls(i).Visible = True
'

2.
1, 3, 5, 7, 8, 10, 12月有31天
4, 6, 9, 11 月有30天
平年的2月有28天,闰年的2月有29天
就是(和代码中一样)
M=iif(val(year1) mod 100,iif(val(year1)mod 4,28,29),iif(val(year1) mod 400,29,28))

3.
(1)这句的意思是从第N个(星期N,因为N是本月第一天的星期数,所以小于N的cmd就不显示了)到第M+N-1个 (正好M个,代表一个月的M天)显示

(2)有,比如列表法啊,连接到网络服务器读取啊(脱裤子放P)

4
有 例如
For i = 1 To M
cmd(i+N-1).Visible = True
cmd(i+N-1).Caption = i
Next i

5.
有,自定义控件等等(脱裤放P)

For i = N To M - 1 + N ' 共M个,代表M天,从N开始,就是前面的不显示了
cmd(i).Visible = True'使其可见
cmd(i).Caption = i - N + 1'使其显示天数,比如第一天i=N i-N+1=1
Next i
cmd(Day(Now) - 1 + N).BackColor = RGB(255, 0, 0)'设置背景色

2) 如何算出某月分的总天数和最后一天数吗?

上面已经写明白了,Case 1 3 5 7 8 10 12 就是31天 是直接说明的

3) M - 1 + N为何要这么写呢?还有其他写法可以找到某月分的总天数吗?

都是固定不变的 不用算 只有2月是用MOD算出来的

4) 若要在按钮显示 1 - 31 还有其他写法吗?

这个只是更改一个BackColor参数 已经没有其他写法的必要了 难道你要用API?