
正文
vb.net时间统计的简单介绍
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
在vb.net中,如何计算出2000-2100年之间的闰年?输出到文本框,并统计输出闰年的个数?主要是统计个数
这样:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim leapyears() As Integer = GetLeapYears(2000, 2100)
Dim str As String
Try
Dim count As Integer = UBound(leapyears) + 1
str = "闰年个数:" + count.ToString
For i = 0 To UBound(leapyears)
str += " " + leapyears(i).ToString
Next
TextBox1.Text = str
Catch ex As Exception
End Try
End Sub
''' summary
''' 获取指定年份区间中所有闰年组成的数组
''' /summary
''' param name="StartYear"起始年份/param
''' param name="EndYear"结束年份/param
''' returns/returns
''' remarks/remarks
Private Function GetLeapYears(StartYear As Integer, EndYear As Integer) As Integer()
Dim leapyears() As Integer = Nothing
Dim index As Integer = 0
For i = StartYear To EndYear
If (i Mod 400 = 0) Or (i Mod 4 = 0 And i Mod 100 0) Then
ReDim Preserve leapyears(index)
leapyears(index) = i
index += 1
End If
Next
Return leapyears
End Function
扩展资料:
注意事项
DateSerial返回包含指定的年、月、日的 Variant (Date)。
语法:DateSerial(year, month, day)
Private Function MonthToLeapYear(ByVal Yea As Integer) As Boolean
MonthToLeapYear = Day(DateSerial(Yea, 2, 29)) = 29
End Function
Private Sub Command1_Click()
If Len(Text1.Text) = 4 Then
If MonthToLeapYear(Text1.Text) = True Then
Print Text1.Text "年是闰年"
Else
Print Text1.Text "年是平年"
End If
Else
Print "错误:请输入正确的年份!"
End If
End Sub
在VB.NET中进行日期处理时,避免手工判断或计算是个好主意,因为手工计算由于代码的质量问题可能不准确。可以使用.NET提供的类的功能进行日期处理。
例如,如果需要判断给定的某年是否闰年,可以使用VB.NET的IsLeapYear函数。下面是如何使用该函数的一个例子:
Private Sub LeapYearCheck()
Dim bLeapYear AsBoolean
bLeapYear = Date.IsLeapYear(Now.Year)
MessageBox.Show(bLeapYear)
bLeapYear = Date.IsLeapYear(2004)
MessageBox.Show(bLeapYear)
End Sub
相关问答
Q1: 用VB.net做一个时间计时器
'添加一个label标签名字label1 用来显示时间
'再添加一个timer控件 名字timer1 interval属性=1000 用来计时
'窗体添加代码
Dim t As Date '用来记录时间
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles Timer1.Tick
t = t.AddSeconds(1)
Label1.Text = "登录时间:" t.TimeOfDay.ToString
End Sub
Q2: vb.net 统计时间段内数据库字段金额和
加一个按钮,代码如下:
Imports System.Data.OleDb
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim myConn As OleDbConnection = New OleDbConnection '声明并实例化数据库连接对象
Dim myadpt As New OleDbDataAdapter '声明并实例化数据适配器对象
Dim myds As New DataSet '声明并实例化记录集对象
Dim myConnection As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" Application.StartupPath "\DB\SJ.mdb" '数据库连接字符串
myConn.ConnectionString = myConnection '设置数据库连接对象的数据库连接字符串属性
myConn.Open() '启动数据库连接
myadpt.SelectCommand = New OleDbCommand '声明数据适配器的查询命令对象
myadpt.SelectCommand.CommandText = "select sum(支出金额) as 支出金额 from zcb where 支出时间 like '" Text1.Text "%' " '给数据适配器的查询命令属性赋值
myadpt.SelectCommand.Connection = myConn '设置据适配器与数据库连接对象的连接
myadpt.Fill(myds)
Text13.Text = myds.Tables(0).Rows(0)("支出金额")
End Sub
End Class
Q3: VB.NET,如何用TIMER控件计时
这种功能用不到TIMER,TIMER控件用在这种地方也不适合。(假如vb.net时间统计你所统计vb.net时间统计的时间很短,在几分中内话,可以使用,假如你统计vb.net时间统计的时间很长vb.net时间统计:几小时、几天几夜,建议改用以下方式)vb.net时间统计:
在你需要开始计时的地方加入一个记录当前时间,在你想结束的地方也得到一个当前时间。然后将两个时间相减。
希望以上思路可以帮到你。
Q4: vb.net 时间统计问题
一楼风中的奶牛的做法很棒vb.net时间统计,建议楼主采纳他的回答。
只是其中有一个Bugvb.net时间统计,就是“倒数第二次累计分钟数为59,累计秒数达到60的时候,会出现**:60:**”。例如{"10:57:35", "2:02:51"},我这里做vb.net时间统计了修改,供参考。
另外,AddByInts中不需要进行循环和Select判断,可以简化。
同时,为了说明类和结构的关系,这里改用类。
也请一楼风中的奶牛勿怪罪在下啊!
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'Dim str As String() = {"10:30:35", "2:02:51", "17:00:35", "2:02:51"}
Dim str As String() = {"10:57:35", "2:02:51"}
Dim time As TimeSerial = New TimeSerial
For Each dt As String In str
time.Add(dt)
Next
MsgBox(time.ToString)
End Sub
End Class
Public Class TimeSerial
Public Hour As Integer ' 时间的小时部分
Public Minute As Integer ' 时间的分钟部分
Public Second As Integer ' 时间的秒钟部分
' 合并添加新的时间值
' param name="value"文本时间格式(00:00:00)/param
Public Sub Add(ByVal value As String)
Dim arr As String() = Split(value, ":")
Dim dts(arr.Length - 1) As Integer
For i As Integer = 0 To arr.Length - 1
dts(i) = CInt(Val(arr(i)))
Next
AddByInts(dts)
End Sub
' 合并添加新的时间值
' param name="value"时间值(仅计算:时、分、秒)/param
Public Sub Add(ByVal value As Date)
Dim dts(2) As Integer
dts(0) = value.Hour
dts(1) = value.Minute
dts(2) = value.Second
AddByInts(dts)
End Sub
Private Sub AddByInts(ByVal value As Integer())
Second += value(2)
If Second = 60 Then
Minute += Int(Second / 60)
Second = Second Mod 60
End If
Minute += value(1)
If Minute = 60 Then
Hour += Int(Minute / 60)
Minute = Minute Mod 60
End If
Hour += value(0)
End Sub
' 获取时间的文本格式(00:00:00)
Public Overrides Function ToString() As String
Return Hour ":" Minute ":" Second
End Function
End Class
Q5: vb.net时间间隔的计算
Public Class Form1
Private Past As Date
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Past = Now
IO.File.AppendAllText("test.txt", Past.ToString, System.Text.Encoding.Default)
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim Now1 As Date = CDate(IO.File.ReadAllText("test.txt", System.Text.Encoding.Default))
Dim Now2 As Date = Now
MsgBox("从" Now1.ToString "到" Now2.ToString "经过了" CStr(CDate((Now2 - Now1).ToString)))
End Sub
实际情况修改下。
End Class
关于vb.net时间统计和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。








