gpt4 book ai didi

.net - 如何查找两个日期/DateTimePicker 之间的天数

转载 作者:行者123 更新时间:2023-12-04 13:07:15 25 4
gpt4 key购买 nike

在我下面的代码中,我如何设置到达日期和出发日期,以便我可以获得应付金额?我需要将它们设置为在酒店入住的天数,以便我可以得出总数。如果这有意义吗?我在 Visual Basic 中使用日期时间选择器。

Public Class RentalForm
'declare constants
Const tax_rate_decimal As Decimal = 12.25D
Const king_price_decimal As Decimal = 110.9D
Const queen_price_decimal As Decimal = 105.9D
Const double_price_decimal As Decimal = 95.9D

'declare variables
Private roomchargesumdecimal, taxamountsumdecimal, amountduesumdecimal As Decimal

Private Sub exitButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles exitButton.Click
Close()
End Sub

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBoxnameofguest.TextChanged

End Sub

Private Sub calculateButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles calculateButton.Click
'dimension local variables
Dim numberofguestsinteger As Integer
Dim roomchargedecimal, taxamountdecimal, amountduedecimal, taxratedecimal As Integer
Dim arrivaldate, departuredate As Date

Try
'dates
arrivaldate = Now

'convert quantity to numeric
numberofguestsinteger = Integer.Parse(TextBoxNumberofguests.Text)

'calculate values for single person
roomchargedecimal = numberofguestsinteger * (arrivaldate + departuredate)
taxratedecimal = roomchargedecimal * tax_rate_decimal

Catch ex As Exception

End Try

End Sub

Private Sub DateTimePickerarrivaldate_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DateTimePickerarrivaldate.ValueChanged

End Sub

Private Sub Label16averagelengthofstay_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label16averagelengthofstay.Click


End Sub

Private Sub RentalForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

End Sub
End Class

最佳答案

DateTime数学起初可能会令人困惑。但它们是否是 DateTimePicker 并不重要控件或变量,因为 myDateTimePicker.Value DateTime类型。因此,您可以混合和匹配变量和控件,例如 Arrival as Now 和 Departure from a picker,只需使用减法:

Dim arrivaldate As DateTime = DateTime.Now
Dim departuredate As DateTime = Me.DeparturePicker.Value

Dim DaysStayed as Int32 = departuredate.Subtract(arrivaldate).Days

要记住的是,结果是 TimeSpan目的。如果您查看结构,您会看到它提供了从 Days 开始的时间单位。至 Ticks .

上面的代码提取了 Days来自 TimeSpan 的值不创建临时文件 TimeSpan变种其它的办法:
Dim tsHotelStay = detarturedate.Value - arrivalDate
wholeDays = tsHotelStay.Days ' e.g 7
totalDays = tsHotelStay.TotalDays . e.g. 7.53
totalHrs = tsHotelStay.TotalHours . eg 180.397

这一次,代码确实创建了一个 TimeSpan变量 ( tsHotelDay )。请注意,所有属性都有整数和小数形式(Ticks 除外)。

最后,所示的 2 个减法方法( DateTime.Subtract(dt)myTs = dtA - dtB )在功能上是相同的:都返回一个 TimeSpan 对象。

关于.net - 如何查找两个日期/DateTimePicker 之间的天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19017466/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com