如何根据VB.NET中的间隔增加日期中的小时数

时间:2014-10-08 06:10:09

标签: c# vb.net

用户输入:

dateinterval: 100714-10
interval: 2

输出

datefrom: 07/10/2014 08:00
dateto: 07/10/2014 9:59

用户输入:

dateinterval: 100714-10
interval: 4

输出

datefrom: 07/10/2014 06:00
dateto: 07/10/2014 9:59

间隔为2,4,6,8,12, datefromdateto之间的小时数应该有所不同,具体取决于所选的时间间隔。例如,如果选择的间隔为2,则小时之间的差异应为2小时。如果间隔为4,则差异应为4小时。

我在按钮点击中编写的代码

Protected Sub btnSubmitt_Click(sender As Object, e As EventArgs) Handles btnSubmitt.Click
    Dim _DateTimeFormatInfo As New DateTimeFormatInfo()
    _DateTimeFormatInfo.ShortDatePattern = "dd/MM/yyyy"
    _DateTimeFormatInfo.LongDatePattern = "dddd, dd MMMM yyyy"
    _DateTimeFormatInfo.FullDateTimePattern = "dddd, dd MMMM yyyy HH:mm:ss"
    _DateTimeFormatInfo.MonthDayPattern = "MMMM dd"
    _DateTimeFormatInfo.ShortTimePattern = "HH:mm "
    _DateTimeFormatInfo.LongTimePattern = "HH:mm"
    _DateTimeFormatInfo.DateSeparator = "/"
    _DateTimeFormatInfo.DateSeparator = ""

    _DateTimeFormatInfo.ShortDatePattern = "dd/MM/yyyy"
    Dim strA As String = txtDateInterval.Text
    Dim split As String() = New String(strA.Length \ 2 + ((If(strA.Length Mod 2 = 0, 0, 1)) - 1)) {}

    For i As Integer = 0 To split.Length - 1

        split(i) = strA.Substring(i * 2, If(i * 2 + 2 > strA.Length, 1, 2))
    Next

    Dim s As String = split(0) & "/" & split(1) & "/" & split(2) & "" & split(3)
    Dim strIntervaltype As String = txtIntervalType.Text


    txtDateFrom.Text = DateTime.Parse(s, _DateTimeFormatInfo).ToString("MM/dd/yyyy HH:mm")

    txtDateTo.Text = DateTime.Parse(s, _DateTimeFormatInfo).ToString("MM/dd/yyyy HH:mm")      

End Sub
DateInterval  10072014-10      
IntervalType  2     
DateFrom      07/10/2014 08:00     
DateTo        07/10/2014 9:59     

在上面,用户将给出值dateinterval和intervaltype

DateFrom      07/10/2014 08:00     
DateTo        07/10/2014 9:59 

如何获得上述输出

要获得所需的输出,我应该更改什么

1 个答案:

答案 0 :(得分:0)

您可以按照以下步骤进行操作;

首先,将您的 dateinterval 转换为 datefrom ,我认为您做得正确。

然后使用 datefrom ,您只需要添加小时间隔,如

dateto = datefrom.AddHours(interval)

dateto 现在将小时间隔添加到 datefrom 。说,我认为 datefrom 是正确的。 :)