How to find the number of days between two dates / DateTimePickers

后端 未结 3 2102
再見小時候
再見小時候 2020-12-06 18:59

In my code below, how do I set up arrivaldate and depaturedate so I can get an amount due? I need to set them up as days stayed at the hotel so I can come up with a total. I

相关标签:
3条回答
  • 2020-12-06 19:43

    Maybe you could use

    `DateDiff(DateInterval.Day, DateTimePicker1.Value, DateTimePicker2.Value)
    

    to calculate number of date intervals (days) betveen two dates.

    0 讨论(0)
  • 2020-12-06 20:01

    The DateTimePicker objects have a Value property, which will give you a DateTime for each. You can get the difference two DateTime objects by subtracting one from the other.

    P.S. Don't eat all exceptions like that. It's uncool.

    0 讨论(0)
  • DateTime math can be confusing at first. But it doesn't really matter if they are DateTimePicker controls or variables because myDateTimePicker.Value is a DateTime Type. So, you can mix and match variables and controls such as Arrival as Now and Departure from a picker, and just use subtraction:

    Dim arrivaldate As DateTime = DateTime.Now
    Dim departuredate As DateTime = Me.DeparturePicker.Value
    
    Dim DaysStayed as Int32 = departuredate.Subtract(arrivaldate).Days
    

    The thing to remember is that the result is a TimeSpan object. If you look at the structure, you'll see it provides the time elapsed in units from Days to Ticks.

    The code above plucks the Days value from the TimeSpan without creating a temp TimeSpan var. Another way:

    Dim tsHotelStay = detarturedate.Value - arrivalDate
    wholeDays = tsHotelStay.Days              ' e.g 7
    totalDays = tsHotelStay.TotalDays         . e.g. 7.53
    totalHrs = tsHotelStay.TotalHours         . eg 180.397
    

    This time, the code does create a TimeSpan variable (tsHotelDay). Note that all the properties are available in whole and fractional forms (except Ticks).

    Finally, the 2 subtraction methods shown (DateTime.Subtract(dt) and myTs = dtA - dtB) are functionally identical: both return a TimeSpan object.

    0 讨论(0)
提交回复
热议问题