Vb.net 两个日期之间的周/月差异
我需要找出两个日期之间有一些限制的差异Vb.net 两个日期之间的周/月差异,vb.net,date,Vb.net,Date,我需要找出两个日期之间有一些限制的差异 如果月差大于6,则显示月差 如果少于6个月,则以周为单位显示 最后,始终将整数四舍五入到下一个整数(6.2周-->7周) 我试过这个 Dim startDate As Date = txtStartDate.DateValue Dim endDate As Date = txtEndDate.DateValue Dim dateDiff As TimeSpan = endDate - startDate Dim tot
- 如果月差大于6,则显示月差
- 如果少于6个月,则以周为单位显示
- 最后,始终将整数四舍五入到下一个整数(6.2周-->7周)
Dim startDate As Date = txtStartDate.DateValue
Dim endDate As Date = txtEndDate.DateValue
Dim dateDiff As TimeSpan = endDate - startDate
Dim totalDays As Double = dateDiff.TotalDays
'Divide by 7 to get the number of weeks
Dim weeks As Double = totalDays / 7
'6 months, average of 4.34812 weeks per month
If (weeks >= 26.08872) Then
txtDuration.Text = Math.Ceiling((weeks / 4.34812)).ToString() + " Months"
Else
txtDuration.Text = Math.Ceiling(weeks).ToString() + " Weeks"
End If
它适用于某些日期,但并非适用于所有情况
- 2014/09/01->2015/03/01给了我26周,应该是6个月
diff = dateDiff(DateInterval.Month, startDate, endDate)
If (diff > 6) Then
TxtDuration.Text = diff
Else
TxtDuration.Text = dateDiff(DateInterval.WeekOfYear, startDate, endDate)
End If
您必须重命名TimeSpan变量dateDiff,因为它将与dateDiff方法冲突
我希望这有帮助这些日期之间有181天,即25.857142857周。我修改了周部分,以便能够将其四舍五入到下一个整数。Dim days As Long=DateDiff(DateInterval.Day,startDate1,endDate1)txtFirstDuration.Text=Math.天花板(天/7)。ToString