Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 获取两个日期之间的天数,更改日期时保持天数不变_Vb.net - Fatal编程技术网

Vb.net 获取两个日期之间的天数,更改日期时保持天数不变

Vb.net 获取两个日期之间的天数,更改日期时保持天数不变,vb.net,Vb.net,用户希望编辑开始日期。开始日期和结束日期之间的天数必须始终相同 比如说 开始日期最初为2014年7月28日,结束日期为2014年8月1日 日期相隔4天 用户将开始日期更改为2014年6月1日 截止日期现在必须为2014年6月5日 我很难理解这个逻辑 您只需使用Date.AddDays或更好的DateTime方法:TimeSpan: 这有两个方面: 计算两个日期之间的天数 就我个人而言,我会使用我的API来实现这一点,但您仍然可以使用BCL的DateTime类型—从另一个DateTime中减去一个

用户希望编辑开始日期。开始日期和结束日期之间的天数必须始终相同

比如说

开始日期最初为2014年7月28日,结束日期为2014年8月1日

日期相隔4天

用户将开始日期更改为2014年6月1日

截止日期现在必须为2014年6月5日

我很难理解这个逻辑

您只需使用Date.AddDays或更好的DateTime方法:TimeSpan:


这有两个方面:

计算两个日期之间的天数

就我个人而言,我会使用我的API来实现这一点,但您仍然可以使用BCL的DateTime类型—从另一个DateTime中减去一个DateTime以获得时间跨度,然后使用属性。然后将结果转换为整数。你需要确保他们真的只是约会,以避免得到一天的零头。如果你愿意,你甚至可以保持时间跨度

根据另一个日期调整一个日期

如果您知道要将两者分开多少天,只需适当地使用DateTime.AddDays。例如,如果startDate已更改:

endDate = startDate.AddDays(days)
startDate = endDate.AddDays(-days)
如果endDate已更改:

endDate = startDate.AddDays(days)
startDate = endDate.AddDays(-days)

取两个日期时间选择器dtp\U开始日期和dtp\U结束日期。 取一个数字向上向下表示两天之间的间隔

Public Class Form1
Dim start_date As New Date
Dim end_date As New Date

Dim main_load As Boolean
Private Sub dtp_start_date_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles dtp_start_date.ValueChanged
    If main_load = True Then
        Try
            start_date = dtp_start_date.Value

            end_date = start_date.AddDays(nm_days.Value)
            dtp_end_date.Value = end_date
        Catch ex As Exception

        End Try
    End If

End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    main_load = True
    start_date = dtp_start_date.Value
    end_date = dtp_end_date.Value
End Sub

End Class

谢谢,我将尝试这些解决方案