VB:1给定一个四位数的年份,判断它是否为闰年。

用basic语言做个程序,2、打印某年某月有多少天。

Private Sub Command1_Click()
x = InputBox("输入年份")
If IsLeapYearB(x) = True Then
Print x & "是闰年"
Else
Print x & "不是"
End If
a = InputBox("输入年份")
b = InputBox("输入月份")
Print LastDay(a, b) & "天"
End Sub
Public Function IsLeapYearB(ByVal yr As Integer) As Boolean
IsLeapYearB = Day(DateSerial(yr, 2, 29)) = 29
End Function

Public Function LastDay(ByVal testYear As Integer, ByVal testMonth As Integer) As Integer
LastDay = Day(DateSerial(testYear, testMonth + 1, 0))
End Function
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-05-27
'这两个问题实际可以归结为一个问题,即求某年某月有多少天,调用下面仅 1 条语句的简单函数就可以实现:
'窗体添加控件 Command1、Command2 就可以查看 GetDays 的用法
Private Function GetDays(nYear As Long, nMonth As Long) As Long
GetDays = Day(DateSerial(nYear, nMonth + 1, 0))
End Function

'问题1,通过判断 2 月份是否有 29 天确定是否闰年
Private Sub Command1_Click()
Dim nYear As Long
nYear = Val(InputBox("请输入年分,例如:", "闰年判断", "2009"))
If nYear < 1 Then Exit Sub
If GetDays(nYear, 2) = 29 Then MsgBox nYear & " 闰年" Else MsgBox nYear & " 不闰年"
End Sub
'问题2,某年某月有多少天
Private Sub Command2_Click()
Dim nStr As String, nYear As Long, nMonth As Long, S As Long
nStr = InputBox("请输入年月,例如:", "某年某月有多少天", "2009-5")
If nStr = "" Then Exit Sub
S = InStr(nStr, "-")
nYear = Left(nStr, S - 1): nMonth = Val(Mid(nStr, S + 1))
S = GetDays(nYear, nMonth)
MsgBox nStr & ":有 " & S & " 天"
End Sub
Private Sub Form_Load()
Command1.Caption = "闰年": Command2.Caption = "天数"
End Sub
第2个回答  2009-05-27
Dim x%
Private Sub Command1_Click()
x = Text1.Text
If (x Mod 4 = 0 And x Mod 100 <> 0) Or x Mod 400 = 0 Then Print "是闰年" Else Print "不是闰年"
End Sub
相似回答