当前位置:编程学习 > VB >>

求答案



程序代码设计:
Option Explicit
Private Sub Command1_Click()
Dim Year, Month, Day, a As Integer
Year = Val(Text1.Text)
Month = Val(Text2.Text)
Select Case Month
Case 1, 3, 5, 7, 8, 10, 12
Day = 31
Case 4, 6, 9, 11
Day = 30
Case 2

从这一句往后给解释一下呗,重点是这一长句!   If Year Mod 400 = 0 Or Year Mod 4 = 0 And Year Mod 100 <> 0 Then,
Day = 29
Else
Day = 28
End If
End Select
Text3.Text = Str(Day)
End Sub 
--------------------编程问答-------------------- 百度下闰年的定义就明白了。 --------------------编程问答--------------------

'mod是取余,此处是计算闰年,若是则2月为29天,若不是,则是28天
'此处你的代码应有误:闰年能被4整除不可被100整除,或可被400整除的才是
 If Year Mod 400 = 0 Or (Year Mod 4 = 0 And Year Mod 100 <> 0)
'其他都很简单,不用解释了吧
--------------------编程问答-------------------- 闰年的定义方式 --------------------编程问答-------------------- 求某年某个月的最后一天。
写这么多代码,累不?


Private Sub Command1_Click()
    Dim i As Long, d As Long
    For i = 31 To 28 Step -1
        If IsDate(Text1.Text & "-" & Text2.Text & "-" & CStr(i)) Then
            d = i
            Exit For
        End If
    Next
    Text3.Text = CStr(d)
End Sub
--------------------编程问答-------------------- 呵呵,循环也很累。

Private Sub Command1_Click()
    Dim Year, Month As Integer
    Year = Val(Text1.Text)
    Month = Val(Text2.Text)
    
    Text3.Text = Day(DateSerial(Year, Month + 1, 1) - 1)
End Sub

--------------------编程问答-------------------- 被4整除而不能被100整除或被400整除为闰年 请问这方法是怎样得来的 --------------------编程问答-------------------- 这个方法 是 发明闰年的人定的 --------------------编程问答--------------------
引用 6 楼  的回复:
被4整除而不能被100整除或被400整除为闰年 请问这方法是怎样得来的


这个是有关太阳历
1回归年 = 365.24219879日≈365日5小时48分46秒

一年365天,100余出24天,于是4年一润100/4=25比24多一天,所以100年不润,1万年后又回多出约22天,所以400一润,一万年25润,多出3天,所以完整来说3000年左右又得不能润.如此而已,只是现在离3000年还早着,所以没人提出3000年不润

润年由回归年长度所决定 --------------------编程问答--------------------
地球绕太阳运行的周期是 365.24219879 日,比日历平年多出 0.24219879 日。也就是日历平年比回归年短,这就需要置闰,也就是在历法上补偿。

首先进行的是 4 年一闰。

4 年一闰相当于日历年平均为 365.25 天。因此,400 年间以此置闰又会多出 3.120484 天。 所以规定整百的年份,只有被 400 整除才置闰。这样就去掉了会多出的 3 天。

剩下的每 400 年多出 0.120484 天,需要累积 3312 年才会多出一天。那时,大家会选定公元 3312 年不置闰来取得平衡。
--------------------编程问答--------------------
引用 5 楼  的回复:
Text3.Text = Day(DateSerial(Year, Month + 1, 1) - 1)


month是12的时候,不会有问题?
未测试,故有此问。
补充:VB ,  网络编程
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,